v0.14.0
MoFEM.hpp
Go to the documentation of this file.
1 
2 
3 #ifndef NDEBUG
4 #define BOOST_DISABLE_ASSERTS ///< If not set makes BOOST freezing, check what
5  ///< happen fi boost recompiled with cxx17
6  ///< standard
7 #define BOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING
8 #define BOOST_MULTI_INDEX_ENABLE_SAFE_MODE
9 #endif
10 
11 #ifndef __MOFEM_HPP__
12 #define __MOFEM_HPP__
13 
14 // Include system and libraries files
15 #include <Includes.hpp>
16 
17 // SRC APPROXIMATION
18 #include <config.h>
19 #include <definitions.h>
20 
21 // FTensor
22 #include <FTensor.hpp>
23 
24 namespace MoFEM {
25 // FIXME: All operators in FTensor move to FTensor namespace.
26 using FTensor::operator<<;
27 using FTensor::operator>>;
28 } // namespace MoFEM
29 
30 #include <Common.hpp>
31 #include <UnknownInterface.hpp>
32 #include <DeprecatedPetsc.hpp>
33 #include <TagMultiIndices.hpp>
34 
35 // SRC/APPROXIMATION
36 #include <base_functions.h>
37 #include <h1_hdiv_hcurl_l2.h>
38 #include <Hdiv.hpp>
39 #include <Hcurl.hpp>
40 #include <BernsteinBezier.hpp>
41 #include <fem_tools.h>
42 #include <BaseFunction.hpp>
43 #include <LegendrePolynomial.hpp>
44 #include <LobattoPolynomial.hpp>
45 #include <JacobiPolynomial.hpp>
46 #include <EntPolynomialBaseCtx.hpp>
47 #include <QuadPolynomialBase.hpp> // Base functions on quad
48 #include <EdgePolynomialBase.hpp>
49 #include <TriPolynomialBase.hpp>
50 #include <TetPolynomialBase.hpp>
51 #include <HexPolynomialBase.hpp>
55 
56 // SRC/MULTI-INDICES
57 #include <MaterialBlocks.hpp>
58 #include <BCData.hpp>
59 #include <RefEntsMultiIndices.hpp>
60 #include <FieldMultiIndices.hpp>
62 #include <DofsMultiIndices.hpp>
64 #include <FEMultiIndices.hpp>
65 #include <ProblemsMultiIndices.hpp>
67 #include <BCMultiIndices.hpp>
68 #include <SeriesMultiIndices.hpp>
69 
70 // SRC/INTERFACES
71 #include <LoopMethods.hpp>
72 #include <Interface.hpp>
73 #include <Core.hpp>
74 
75 #include <AuxPETSc.hpp>
76 
77 #include <LogManager.hpp>
78 #include <BitRefManager.hpp>
79 #include <Tools.hpp>
80 #include <CommInterface.hpp>
81 #include <ISManager.hpp>
82 #include <VecManager.hpp>
83 #include <FieldBlas.hpp>
84 #include <ProblemsManager.hpp>
85 #include <MatrixManager.hpp>
86 #include <Simple.hpp>
87 #include <MeshRefinement.hpp>
88 #include <SeriesRecorder.hpp>
89 #include <PrismInterface.hpp>
90 #include <MeshsetsManager.hpp>
91 #ifdef WITH_TETGEN
92 #include <TetGenInterface.hpp>
93 #endif // WITH_TETGEN
94 #ifdef WITH_MED
95 #include <MedInterface.hpp>
96 #endif // WITH_MED
97 #include <CutMeshInterface.hpp>
98 #include <NodeMerger.hpp>
100 
101 // SRC/PETSC
102 #include <KspCtx.hpp>
103 #include <SnesCtx.hpp>
104 #include <TsCtx.hpp>
105 #include <DMMoFEM.hpp>
107 
108 // SRC/FINITE_ELEMENTS
109 #include <EntitiesFieldData.hpp>
110 #include <DataOperators.hpp>
111 #include <ForcesAndSourcesCore.hpp>
125 #include <UserDataOperators.hpp>
126 #include <HODataOperators.hpp> // Manage HO order geometry
127 #include <MeshProjectionDataOperators.hpp> // Operators for projections between bit ref levels
128 #include <BaseDerivativesDataOperators.hpp> // Operators to calculate HO direcarives
129 #include <DGProjection.hpp> // Operators to calculate DG projection
130 #include <FormsIntegrators.hpp>
137 #include <NormsOperators.hpp>
138 #include <Schur.hpp>
139 #include <OperatorsTester.hpp>
140 
141 
142 // More interfaces
143 
144 #include <PipelineManager.hpp>
145 #include <FieldEvaluator.hpp>
146 #include <BcManager.hpp>
147 
148 // Post-processing and boundary condition
149 #include <PostProc.hpp>
150 #include <ScalingMethod.hpp>
151 #include <Natural.hpp>
152 #include <NaturalMeshsetType.hpp>
153 #include <NaturalForceMeshsets.hpp>
155 #include <Essential.hpp>
159 #include <EssentialMPCsData.hpp>
160 
161 #endif // MOFEM_HPP__
MeshProjectionDataOperators.hpp
Mesh projection operators.
ISManager.hpp
Interface managing IS.
ScalingMethod.hpp
FormsBrokenSpaceConstraintImpl.hpp
Integrator for broken space constraints.
EdgeElementForcesAndSourcesCore.hpp
Implementation of elements on entities.
EntitiesFieldData.hpp
Data structures for accessing information about finite element and its degrees of freedom.
FormsIntegrators.hpp
Forms integrators.
EdgePolynomialBase.hpp
Implementation of base on tetrahedral for H1 bases.
NodeMerger.hpp
NodeMerger interface.
CutMeshInterface.hpp
Cut mesh interface.
NaturalTemperatureMeshsets.hpp
PrismInterface.hpp
MoFEM interface.
DataOperators.hpp
JacobiPolynomial.hpp
Implementation of Legendre polynomial.
NaturalMeshsetType.hpp
Specialisation for NaturalMeshsetType.
EssentialDisplacementCubitBcData.hpp
Implementations specialisation for DisplacementCubitBcData.
SnesCtx.hpp
Context for PETSc SNES, i.e. nonlinear solver.
DofsMultiIndices.hpp
Multi-Index contains, data structures for mofem dofs and other low-level functions.
HODataOperators.hpp
Operators managing HO geometry.
DGProjection.hpp
FEMultiIndices.hpp
Multi-index contains, data structures for mofem finite elements and other low-level functions.
RefEntsMultiIndices.hpp
Multi-index contains, for mofem entities data structures and other low-level functions.
DMMoFEM.hpp
Discrete manager interface for MoFEM.
ProblemsManager.hpp
Interface managing problems.
LinearFormsIntegratorsImpl.hpp
Linear forms integrators (implementation)
BCData.hpp
Data structure with Cubit native blocks/meshset with boundary conditions.
base_functions.h
LinearFormsIntegrators.hpp
Linear forms integrators.
LogManager.hpp
Log and register warnings.
PCMGSetUpViaApproxOrders.hpp
header of multi-grid solver for p- adaptivity
Common.hpp
Basic structures and data.
VertexElementForcesAndSourcesCore.hpp
TriLinearFormsIntegrators.hpp
Trilinear forms integrators.
Natural.hpp
Setting natural boundary conditions.
BaseDerivativesDataOperators.hpp
Base derivatives data operators.
Includes.hpp
FaceElementForcesAndSourcesCore.hpp
Implementation of face element.
TriPolynomialBase.hpp
Implementation of H1, Hcurl base on triangle.
EssentialHeatFluxCubitBcData.hpp
Specialization for essential b.c. with HeatFluxCubitBcData.
BitRefManager.hpp
Interface managing BitRefLevels.
PostProc.hpp
Post-process fields on refined mesh.
ContactPrismElementForcesAndSourcesCore.hpp
Implementation of the contact prism element.
MoFEM
implementation of Data Operators for Forces and Sources
Definition: Common.hpp:10
SeriesRecorder.hpp
MoFEM interface.
FlatPrismPolynomialBase.hpp
Implementation of Ainsworth-Cole H1 base on tetrahedral.
VecManager.hpp
Interface managing vectors.
Tools.hpp
Tools interface.
CommInterface.hpp
Interface for communication functions.
FlatPrismElementForcesAndSourcesCore.hpp
FieldEvaluator.hpp
Field Evaluator.
EssentialMPCsData.hpp
Specialisation for MPCsTypes.
FatPrismPolynomialBase.hpp
Implementation of Ainsworth-Cole H1 base on tetrahedral.
FaceElementForcesAndSourcesCoreOnParent.hpp
Implementation of face element integrating parent.
OperatorsTester.hpp
Used to calculate derivatives and testing tangent matrix, i.e. hessian.
BCMultiIndices.hpp
Multi-index containers, data boundary data structures and other low-level functions.
VolumeElementForcesAndSourcesCoreOnSide.hpp
Volume element.
HexPolynomialBase.hpp
Implementation of Ainsworth-Coyle / Demkowicz or any other H1, Hcurl, Hdiv and L2 base on tetrahedral...
EntPolynomialBaseCtx.hpp
Implementation of Ainsworth-Cole H1 base on tetrahedral.
NormsOperators.hpp
User data Operators for calculating norms.
UnknownInterface.hpp
MoFEM interface.
VolumeElementForcesAndSourcesCoreOnContactPrismSide.hpp
Volume element.
TagMultiIndices.hpp
Tags for Multi-index containers.
BernsteinBezier.hpp
Bernstein-Bezier polynomials for H1 space.
Projection10NodeCoordsOnField.hpp
TetGenInterface.hpp
TetGen interface.
FieldMultiIndices.hpp
Field data structure storing information about space, approximation base, coordinate systems,...
definitions.h
useful compiler derivatives and definitions
UserDataOperators.hpp
User data Operators.
LegendrePolynomial.hpp
Implementation of Legendre polynomial.
NaturalForceMeshsets.hpp
Specialization for NaturalForceMeshsets.
ProblemsMultiIndices.hpp
Multi-index containers, data structures for problems and other low-level functions.
BaseFunction.hpp
General implementation of base function.
RefElementMultiIndices.hpp
Multi-index contains, data structures for mofem finite elements and other low-level functions.
DeprecatedPetsc.hpp
Deprecated PETSc functions.
AdjacencyMultiIndices.hpp
Myltindex containes, data structures for mofem adjacencies and other low-level functions.
MatrixManager.hpp
Interface for creating matrices and managing matrices.
KspCtx.hpp
Context for PETSc KSP, i.e. nonlinear solver.
MedInterface.hpp
Med file interface interface.
MeshRefinement.hpp
Interface for mesh refinement.
FieldEntsMultiIndices.hpp
Multi-index contains, for mofem entities data structures and other low-level functions.
FieldBlas.hpp
Field basic algebra.
SeriesMultiIndices.hpp
Multindex containers, for mofem fields data structures and other low-level functions.
LobattoPolynomial.hpp
Implementation of Lobatto polynomial.
FaceElementForcesAndSourcesCoreOnSide.hpp
Implementation of face element.
Interface.hpp
MoFEM interface.
QuadPolynomialBase.hpp
Implementation of H1 base on a quad face.
TsCtx.hpp
Context for PETSc Time Stepping.
Core.hpp
Core interface class for user interface.
fem_tools.h
Loose implementation of some useful functions.
Hdiv.hpp
Implementation of H-curl base function.
h1_hdiv_hcurl_l2.h
Functions to approximate hierarchical spaces.
EssentialTemperatureCubitBcData.hpp
Specialization for essential b.c. with TemperatureCubitBcData.
FatPrismElementForcesAndSourcesCore.hpp
VolumeElementForcesAndSourcesCore.hpp
Volume element.
BiLinearFormsIntegratorsImpl.hpp
Bilinear forms integrators (implementation)
Essential.hpp
Setting essential boundary conditions.
EdgeElementForcesAndSourcesCoreOnParent.hpp
Implementation of edge element integrating parent.
TetPolynomialBase.hpp
Implementation of Ainsworth-Coyle / Demkowicz or any other H1, Hcurl, Hdiv and L2 base on tetrahedral...
BiLinearFormsIntegrators.hpp
Bilinear forms integrators.
FTensor.hpp
Tensors class implemented by Walter Landry.
EdgeQuadHexPolynomials.hpp
Implementation of base Demkowicz functions on quad and hex.
LoopMethods.hpp
MoFEM interface.
MaterialBlocks.hpp
Data structures for Meshset/Blocsk with material data.
MeshsetsManager.hpp
MeshsetsManager interface.
PipelineManager.hpp
Header file for basic interface.
PrismsFromSurfaceInterface.hpp
BcManager.hpp
Manage boundary conditions set to the problem.
ForcesAndSourcesCore.hpp
Implementation of elements on entities.
Hcurl.hpp
Implementation of H-curl base function.
Schur.hpp
Assemble Schur complement.
Simple.hpp
Header file for simple interface.
AuxPETSc.hpp
Auxiliary MoFEM-PETSc structures.