v0.14.0
Loading...
Searching...
No Matches
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
14namespace 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 */
25template <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 */
33template <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 */
41template <typename T> struct EssentialPostProcRhs;
42
43/**
44 * @brief Class (Function) to calculate residual
45 * side diagonal
46 *
47 * @tparam T
48 */
49template <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 */
63template <typename T, int BASE_DIM, int FIELD_DIM, AssemblyType A,
64 IntegrationType I, typename OpBase>
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 */
79template <typename T, int BASE_DIM, int FIELD_DIM, AssemblyType A,
80 IntegrationType I, typename OpBase>
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 */
91template <typename T, AssemblyType A, IntegrationType I, typename OpBase>
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 */
102template <typename T, AssemblyType A, IntegrationType I, typename OpBase>
104
105/**
106 * @brief Essential boundary conditions
107 * @ingroup mofem_forms
108 *
109 * @tparam EleOp
110 */
111template <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>
125 template <typename T>
128 };
129
130 template <IntegrationType I> struct BiLinearForm {
131 template <typename T, int BASE_DIM, int FIELD_DIM>
134 template <typename T>
137 };
138 };
139};
140
141} // namespace MoFEM
142
143#endif //_ESSENTIAL_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
constexpr IntegrationType I
constexpr AssemblyType A
Function (factory) for setting operators for lhs pipeline.
Definition: Essential.hpp:103
Function (factory) for setting operators for rhs pipeline.
Definition: Essential.hpp:92
Essential boundary conditions.
Definition: Essential.hpp:111
Class (Function) to enforce essential constrains on the left hand side diagonal.
Definition: Essential.hpp:33
Class (Function) to enforce essential constrains on the right hand side diagonal.
Definition: Essential.hpp:41
Class (Function) to enforce essential constrains.
Definition: Essential.hpp:25
Class (Function) to calculate residual side diagonal.
Definition: Essential.hpp:49
Enforce essential constrains on lhs.
Definition: Essential.hpp:81
Enforce essential constrains on rhs.
Definition: Essential.hpp:65