v0.14.0
Loading...
Searching...
No Matches
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
14namespace MoFEM {
15
16/**
17 * @brief Vector of time scaling methods
18 *
19 */
20using VecOfTimeScalingMethods = std::vector<boost::shared_ptr<ScalingMethod>>;
21
22/**
23 * @brief Vector of time vector scaling methods
24 *
25 */
26template <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 */
35template <typename OP> struct FluxOpType {};
36
37template <typename T, int BASE_DIM, int FIELD_DIM, AssemblyType A,
38 IntegrationType I, typename OpBase>
40
41template <typename T, int BASE_DIM, int FIELD_DIM, AssemblyType A,
42 IntegrationType I, typename OpBase>
44
45template <typename T, AssemblyType A, IntegrationType I, typename OpBase>
47
48template <typename T, AssemblyType A, IntegrationType I, typename OpBase>
50
51/**
52 * @brief Natural boundary conditions
53 * @ingroup mofem_forms
54 *
55 * @tparam EleOp
56 */
57template <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_
constexpr int FIELD_DIM
constexpr int BASE_DIM
IntegrationType
Form integrator integration types.
AssemblyType
[Storage and set boundary conditions]
const double T
implementation of Data Operators for Forces and Sources
Definition: Common.hpp:10
std::vector< boost::shared_ptr< TimeScaleVector< FIELD_DIM > > > VecOfTimeVectorScalingMethods
Vector of time vector scaling methods.
Definition: Natural.hpp:28
std::vector< boost::shared_ptr< ScalingMethod > > VecOfTimeScalingMethods
Vector of time scaling methods.
Definition: Natural.hpp:20
constexpr IntegrationType I
constexpr AssemblyType A
Wrapper to generate natural b.c. specialisation based on operator type.
Definition: Natural.hpp:35
Assembly methods.
Definition: Natural.hpp:65
Natural boundary conditions.
Definition: Natural.hpp:57