v0.13.2
Loading...
Searching...
No Matches
NaturalForceMeshsets.hpp
Go to the documentation of this file.
1/**
2 * @file NaturalForceMeshsets.hpp
3 * @brief Specialization for NaturalForceMeshsets
4 * @version 0.13.2
5 * @date 2022-09-18
6 *
7 * @copyright Copyright (c) 2022
8 *
9 */
10
11#ifndef _NATURAL_FORCE_MESHSETS_HPP_
12#define _NATURAL_FORCE_MESHSETS_HPP_
13
14namespace MoFEM {
15
16/**
17 * @brief Type generating specialisation for force meshsets
18 *
19 */
21
22template <int FIELD_DIM, AssemblyType A, IntegrationType I, typename OpBase>
24
26 typename OpBase>
28
30 I, OpBase
31
32 > {
33
35
37
38 boost::ptr_deque<ForcesAndSourcesCore::UserDataOperator> &pipeline,
39 MoFEM::Interface &m_field, const std::string field_name,
40 std::vector<boost::shared_ptr<ScalingMethod>> smv,
41 const std::string block_name, Sev sev
42
43 ) {
45
46 using OpFluxForceset =
47 typename NaturalBC<OpBase>::template Assembly<A>::template LinearForm<
49 FIELD_DIM>;
50 using OpFluxPressureset =
51 typename NaturalBC<OpBase>::template Assembly<A>::template LinearForm<
53 FIELD_DIM>;
54 using OpFluxBlockset =
55 typename NaturalBC<OpBase>::template Assembly<A>::template LinearForm<
57 FIELD_DIM>;
58
59 CHKERR
60 NaturalBC<OpBase>::template Assembly<A>::template LinearForm<
61 I>::template AddFluxToPipeline<OpFluxForceset>::add(pipeline, m_field,
62 field_name, smv,
63 block_name, sev);
64 CHKERR
65 NaturalBC<OpBase>::template Assembly<A>::template LinearForm<
66 I>::template AddFluxToPipeline<OpFluxPressureset>::add(pipeline,
67 m_field,
68 field_name, smv,
69 block_name, sev);
70 CHKERR
71 NaturalBC<OpBase>::template Assembly<A>::template LinearForm<
72 I>::template AddFluxToPipeline<OpFluxBlockset>::add(pipeline, m_field,
73 field_name, smv,
74 block_name, sev);
75
77 }
78};
79
80} // namespace MoFEM
81
82#endif //_NATURAL_FORCE_MESHSETS_HPP_
constexpr int FIELD_DIM
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:346
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:416
#define CHKERR
Inline error check.
Definition: definitions.h:535
IntegrationType
Form integrator integration types.
AssemblyType
[Storage and set boundary conditions]
SeverityLevel
Severity levels.
Definition: LogManager.hpp:33
constexpr int BASE_DIM
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
Definition: Exceptions.hpp:56
implementation of Data Operators for Forces and Sources
Definition: Common.hpp:10
constexpr IntegrationType I
constexpr AssemblyType A
constexpr auto field_name
static MoFEMErrorCode add(boost::ptr_deque< ForcesAndSourcesCore::UserDataOperator > &pipeline, MoFEM::Interface &m_field, const std::string field_name, std::vector< boost::shared_ptr< ScalingMethod > > smv, const std::string block_name, Sev sev)
Deprecated interface functions.
Natural boundary conditions.
Definition: Natural.hpp:49
Type generating specialisation for force meshsets.