v0.14.0
Natural.hpp
Go to the documentation of this file.
1 /**
2  * @file Natural.hpp
3  * @brief Setting natural boundary conditions
4  * @version 0.13.1
5  * @date 2022-08-12
6  *
7  * @copyright Copyright (c) 2022a
8  *
9  */
10 
11 #ifndef _NATURAL_BC_
12 #define _NATURAL_BC_
13 
14 namespace MoFEM {
15 
16 /**
17  * @brief Vector of time scaling methods
18  *
19  */
20 using VecOfTimeScalingMethods = std::vector<boost::shared_ptr<ScalingMethod>>;
21 
22 /**
23  * @brief Vector of time vector scaling methods
24  *
25  */
26 template <int FIELD_DIM>
28  std::vector<boost::shared_ptr<TimeScaleVector<FIELD_DIM>>>;
29 
30 /**
31  * @brief Wrapper to generate natural b.c. specialisation based on operator type
32  *
33  * @tparam OP
34  */
35 template <typename OP> struct FluxOpType {};
36 
37 template <typename T, int BASE_DIM, int FIELD_DIM, AssemblyType A,
38  IntegrationType I, typename OpBase>
40 
41 template <typename T, int BASE_DIM, int FIELD_DIM, AssemblyType A,
42  IntegrationType I, typename OpBase>
44 
45 template <typename T, AssemblyType A, IntegrationType I, typename OpBase>
47 
48 template <typename T, AssemblyType A, IntegrationType I, typename OpBase>
50 
51 /**
52  * @brief Natural boundary conditions
53  * @ingroup mofem_forms
54  *
55  * @tparam EleOp
56  */
57 template <typename EleOp> struct NaturalBC {
58 
59  /**
60  * @brief Assembly methods
61  * @ingroup mofem_forms
62  *
63  * @tparam A
64  */
65  template <AssemblyType A> struct Assembly {
66 
67  template <IntegrationType I> struct LinearForm {
68  template <typename T, int BASE_DIM, int FIELD_DIM>
70  template <typename T>
72  };
73 
74  template <IntegrationType I> struct BiLinearForm {
75 
76  template <typename T, int BASE_DIM, int FIELD_DIM>
78  template <typename T>
80  };
81 
82  }; // Assembly
83 };
84 
85 } // namespace MoFEM
86 
87 #endif //_NATURAL_BC_
MoFEM::NaturalBC::Assembly::LinearForm
Definition: Natural.hpp:67
MoFEM::OpFluxRhsImpl
Definition: Natural.hpp:39
MoFEM::NaturalBC::Assembly::BiLinearForm
Definition: Natural.hpp:74
MoFEM::NaturalBC
Natural boundary conditions.
Definition: Natural.hpp:57
A
constexpr AssemblyType A
Definition: operators_tests.cpp:30
BASE_DIM
constexpr int BASE_DIM
Definition: dg_projection.cpp:15
FIELD_DIM
constexpr int FIELD_DIM
Definition: child_and_parent.cpp:15
MoFEM::OpFluxLhsImpl
Definition: Natural.hpp:43
I
constexpr IntegrationType I
Definition: operators_tests.cpp:31
MoFEM::OpBaseImpl
Definition: FormsIntegrators.hpp:178
MoFEM
implementation of Data Operators for Forces and Sources
Definition: Common.hpp:10
MoFEM::FluxOpType
Wrapper to generate natural b.c. specialisation based on operator type.
Definition: Natural.hpp:35
MoFEM::AddFluxToLhsPipelineImpl
Definition: Natural.hpp:49
MoFEM::AddFluxToRhsPipelineImpl
Definition: Natural.hpp:46
MoFEM::IntegrationType
IntegrationType
Form integrator integration types.
Definition: FormsIntegrators.hpp:136
MoFEM::NaturalBC::Assembly
Assembly methods.
Definition: Natural.hpp:65
MoFEM::AssemblyType
AssemblyType
[Storage and set boundary conditions]
Definition: FormsIntegrators.hpp:104
MoFEM::VecOfTimeScalingMethods
std::vector< boost::shared_ptr< ScalingMethod > > VecOfTimeScalingMethods
Vector of time scaling methods.
Definition: Natural.hpp:20
MoFEM::VecOfTimeVectorScalingMethods
std::vector< boost::shared_ptr< TimeScaleVector< FIELD_DIM > >> VecOfTimeVectorScalingMethods
Vector of time vector scaling methods.
Definition: Natural.hpp:28