v0.14.0
src
boundary_conditions
Essential.hpp
Go to the documentation of this file.
1
/**
2
* @file Essential.hpp
3
* @brief Setting essential boundary conditions
4
* @version 0.13.1
5
* @date 2022-08-12
6
*
7
* @copyright Copyright (c) 2022
8
*
9
*/
10
11
#ifndef _ESSENTIAL_BC_
12
#define _ESSENTIAL_BC_
13
14
namespace
MoFEM
{
15
16
17
/**
18
* @brief Class (Function) to enforce essential constrains
19
*
20
* Class (Function) to enforce essential constrains for DOFs which were
21
* removed from the system
22
*
23
* @tparam T
24
*/
25
template
<
typename
T>
struct
EssentialPreProc
;
26
27
/**
28
* @brief Class (Function) to enforce essential constrains on the left hand side
29
* diagonal
30
*
31
* @tparam T
32
*/
33
template
<
typename
T>
struct
EssentialPostProcLhs
;
34
35
/**
36
* @brief Class (Function) to enforce essential constrains on the right hand
37
* side diagonal
38
*
39
* @tparam T
40
*/
41
template
<
typename
T>
struct
EssentialPostProcRhs
;
42
43
/**
44
* @brief Class (Function) to calculate residual
45
* side diagonal
46
*
47
* @tparam T
48
*/
49
template
<
typename
T>
struct
EssentialPreProcReaction
;
50
51
/**
52
* @brief Enforce essential constrains on rhs.
53
*
54
* This class is used when constrains are enforced by least square method.
55
*
56
* @tparam T
57
* @tparam BASE_DIM
58
* @tparam FIELD_DIM
59
* @tparam A
60
* @tparam I
61
* @tparam OpBase
62
*/
63
template
<
typename
T,
int
BASE_DIM
,
int
FIELD_DIM
,
AssemblyType
A
,
64
IntegrationType
I
,
typename
OpBase
>
65
struct
OpEssentialRhsImpl
;
66
67
/**
68
* @brief Enforce essential constrains on lhs
69
*
70
* This class is used when constrains are enforced by least square method.
71
*
72
* @tparam T
73
* @tparam BASE_DIM
74
* @tparam FIELD_DIM
75
* @tparam A
76
* @tparam I
77
* @tparam OpBase
78
*/
79
template
<
typename
T,
int
BASE_DIM
,
int
FIELD_DIM
,
AssemblyType
A
,
80
IntegrationType
I
,
typename
OpBase
>
81
struct
OpEssentialLhsImpl
;
82
83
/**
84
* @brief Function (factory) for setting operators for rhs pipeline
85
*
86
* @tparam T
87
* @tparam A
88
* @tparam I
89
* @tparam OpBase
90
*/
91
template
<
typename
T, AssemblyType A, IntegrationType I,
typename
OpBase>
92
struct
AddEssentialToRhsPipelineImpl
;
93
94
/**
95
* @brief Function (factory) for setting operators for lhs pipeline
96
*
97
* @tparam T
98
* @tparam A
99
* @tparam I
100
* @tparam OpBase
101
*/
102
template
<
typename
T, AssemblyType A, IntegrationType I,
typename
OpBase>
103
struct
AddEssentialToLhsPipelineImpl
;
104
105
/**
106
* @brief Essential boundary conditions
107
* @ingroup mofem_forms
108
*
109
* @tparam EleOp
110
*/
111
template
<
typename
EleOp>
struct
EssentialBC
{
112
113
/**
114
* @brief Assembly methods
115
* @ingroup mofem_forms
116
*
117
* @tparam A
118
*/
119
template
<AssemblyType A>
struct
Assembly
{
120
121
template
<IntegrationType I>
struct
LinearForm
{
122
template
<
typename
T,
int
BASE_DIM,
int
FIELD_DIM>
123
using
OpEssentialRhs
=
124
OpEssentialRhsImpl<T, BASE_DIM, FIELD_DIM, A, I, EleOp>
;
125
template
<
typename
T>
126
using
AddEssentialToPipeline
=
127
AddEssentialToRhsPipelineImpl<T, A, I, EleOp>
;
128
};
129
130
template
<IntegrationType I>
struct
BiLinearForm
{
131
template
<
typename
T,
int
BASE_DIM,
int
FIELD_DIM>
132
using
OpEssentialLhs
=
133
OpEssentialLhsImpl<T, BASE_DIM, FIELD_DIM, A, I, EleOp>
;
134
template
<
typename
T>
135
using
AddEssentialToPipeline
=
136
AddEssentialToLhsPipelineImpl<T, A, I, EleOp>
;
137
};
138
};
139
};
140
141
}
// namespace MoFEM
142
143
#endif //_ESSENTIAL_BC_
MoFEM::EssentialBC
Essential boundary conditions.
Definition:
Essential.hpp:111
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
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::OpEssentialLhsImpl
Enforce essential constrains on lhs.
Definition:
Essential.hpp:81
MoFEM::AddEssentialToRhsPipelineImpl
Function (factory) for setting operators for rhs pipeline.
Definition:
Essential.hpp:92
MoFEM::EssentialPostProcLhs
Class (Function) to enforce essential constrains on the left hand side diagonal.
Definition:
Essential.hpp:33
MoFEM::AddEssentialToLhsPipelineImpl
Function (factory) for setting operators for lhs pipeline.
Definition:
Essential.hpp:103
MoFEM::EssentialBC::Assembly::LinearForm
Definition:
Essential.hpp:121
MoFEM::EssentialPreProcReaction
Class (Function) to calculate residual side diagonal.
Definition:
Essential.hpp:49
MoFEM::EssentialPostProcRhs
Class (Function) to enforce essential constrains on the right hand side diagonal.
Definition:
Essential.hpp:41
MoFEM::IntegrationType
IntegrationType
Form integrator integration types.
Definition:
FormsIntegrators.hpp:136
MoFEM::OpEssentialRhsImpl
Enforce essential constrains on rhs.
Definition:
Essential.hpp:65
MoFEM::AssemblyType
AssemblyType
[Storage and set boundary conditions]
Definition:
FormsIntegrators.hpp:104
MoFEM::EssentialBC::Assembly::BiLinearForm
Definition:
Essential.hpp:130
MoFEM::EssentialBC::Assembly
Assembly methods.
Definition:
Essential.hpp:119
MoFEM::EssentialPreProc
Class (Function) to enforce essential constrains.
Definition:
Essential.hpp:25
Generated by
Doxygen
1.8.17 and hosted at