v0.13.2
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 * @brief Wrapper on user dtat (element) operator used to select specialization
18 * of essential bc.
19 *
20 * @tparam T
21 */
22template <typename T> struct EssentialOpType {};
23
24/**
25 * @brief Specialisation for b.c. applied by different types of meshsets
26 *
27 * @tparam BC
28 */
29template <CubitBC BC> struct EssentialMeshsetType {};
30
31/**
32 * @brief Class (Function) to enforce essential constrains
33 *
34 * Class (Function) to enforce essential constrains for DOFs which were
35 * removed from the system
36 *
37 * @tparam T
38 */
39template <typename T> struct EssentialPreProc {};
40
41/**
42 * @brief Enforce essential constrains on rhs.
43 *
44 * This class is used when constrains are enforced by least square method.
45 *
46 * @tparam T
47 * @tparam BASE_DIM
48 * @tparam FIELD_DIM
49 * @tparam A
50 * @tparam I
51 * @tparam OpBase
52 */
53template <typename T, int BASE_DIM, int FIELD_DIM, AssemblyType A,
54 IntegrationType I, typename OpBase>
56
57/**
58 * @brief Enforce essential constrains on lhs
59 *
60 * This class is used when constrains are enforced by least square method.
61 *
62 * @tparam T
63 * @tparam BASE_DIM
64 * @tparam FIELD_DIM
65 * @tparam A
66 * @tparam I
67 * @tparam OpBase
68 */
69template <typename T, int BASE_DIM, int FIELD_DIM, AssemblyType A,
70 IntegrationType I, typename OpBase>
72
73/**
74 * @brief Function (factory) for setting operators for rhs pipeline
75 *
76 * @tparam T
77 * @tparam A
78 * @tparam I
79 * @tparam OpBase
80 */
81template <typename T, AssemblyType A, IntegrationType I, typename OpBase>
83
84/**
85 * @brief Function (factory) for setting operators for lhs pipeline
86 *
87 * @tparam T
88 * @tparam A
89 * @tparam I
90 * @tparam OpBase
91 */
92template <typename T, AssemblyType A, IntegrationType I, typename OpBase>
94
95/**
96 * @brief Essential boundary conditions
97 * @ingroup mofem_forms
98 *
99 * @tparam EleOp
100 */
101template <typename EleOp> struct EssentialBC {
102
103 /**
104 * @brief Assembly methods
105 * @ingroup mofem_forms
106 *
107 * @tparam A
108 */
109 template <AssemblyType A> struct Assembly {
110
111 template <IntegrationType I> struct LinearForm {
112 template <typename T, int BASE_DIM, int FIELD_DIM>
115 template <typename T>
118 };
119
120 template <IntegrationType I> struct BiLinearForm {
121 template <typename T, int BASE_DIM, int FIELD_DIM>
124 template <typename T>
127 };
128 };
129};
130
131} // namespace MoFEM
132
133#endif //_ESSENTIAL_BC_
constexpr int FIELD_DIM
IntegrationType
Form integrator integration types.
AssemblyType
[Storage and set boundary conditions]
constexpr int BASE_DIM
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:93
Function (factory) for setting operators for rhs pipeline.
Definition: Essential.hpp:82
Essential boundary conditions.
Definition: Essential.hpp:101
Specialisation for b.c. applied by different types of meshsets.
Definition: Essential.hpp:29
Wrapper on user dtat (element) operator used to select specialization of essential bc.
Definition: Essential.hpp:22
Class (Function) to enforce essential constrains.
Definition: Essential.hpp:39
Enforce essential constrains on lhs.
Definition: Essential.hpp:71
Enforce essential constrains on rhs.
Definition: Essential.hpp:55