v0.10.0
MoFEM.hpp
Go to the documentation of this file.
1 /* This file is part of MoFEM.
2  * MoFEM is free software: you can redistribute it and/or modify it under
3  * the terms of the GNU Lesser General Public License as published by the
4  * Free Software Foundation, either version 3 of the License, or (at your
5  * option) any later version.
6  *
7  * MoFEM is distributed in the hope that it will be useful, but WITHOUT
8  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
10  * License for more details.
11  *
12  * You should have received a copy of the GNU Lesser General Public
13  * License along with MoFEM. If not, see <http://www.gnu.org/licenses/>. */
14 
15 // #define BOOST_DISABLE_ASSERTS
16 
17 #ifndef __MOFEM_HPP__
18 #define __MOFEM_HPP__
19 
20 //Include system and libraries files
21 #include <Includes.hpp>
22 
23 //SRC APPROXIMATION
24 #include <config.h>
25 #include <definitions.h>
26 
27 //FTensor
28 #include <FTensor.hpp>
29 #include <Common.hpp>
30 #include <UnknownInterface.hpp>
31 #include <DeprecatedPetsc.hpp>
32 
33 //SRC/APPROXIMATION
34 #include <base_functions.h>
35 #include <h1_hdiv_hcurl_l2.h>
36 #include <Hdiv.hpp>
37 #include <Hcurl.hpp>
38 #include <BernsteinBezier.hpp>
39 #include <fem_tools.h>
40 #include <BaseFunction.hpp>
41 #include <LegendrePolynomial.hpp>
42 #include <LobattoPolynomial.hpp>
43 #include <JacobiPolynomial.hpp>
44 #include <EntPolynomialBaseCtx.hpp>
45 #include <EdgePolynomialBase.hpp>
46 #include <TriPolynomialBase.hpp>
47 #include <TetPolynomialBase.hpp>
51 
52 //SRC/MULTI-INDICES
53 #include <MaterialBlocks.hpp>
54 #include <BCData.hpp>
55 #include <TagMultiIndices.hpp>
56 #include <CoordSysMultiIndices.hpp>
57 #include <RefEntsMultiIndices.hpp>
58 #include <FieldMultiIndices.hpp>
60 #include <DofsMultiIndices.hpp>
62 #include <FEMultiIndices.hpp>
63 #include <ProblemsMultiIndices.hpp>
65 #include <BCMultiIndices.hpp>
66 #include <SeriesMultiIndices.hpp>
67 
68 //SRC/INTERFACES
69 #include <LoopMethods.hpp>
70 #include <Interface.hpp>
71 #include <Core.hpp>
72 
73 #include <AuxPETSc.hpp>
74 
75 #include <LogManager.hpp>
77 
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 #include <CoordSystemsManager.hpp>
92 #ifdef WITH_TETGEN
93  #include <TetGenInterface.hpp>
94 #endif //WITH_TETGEN
95 #ifdef WITH_MED
96  #include <MedInterface.hpp>
97 #endif //WITH_MED
98 #include <CutMeshInterface.hpp>
99 #include <BitLevelCoupler.hpp>
100 #include <NodeMerger.hpp>
102 
103 //SRC/PETSC
104 #include <KspCtx.hpp>
105 #include <SnesCtx.hpp>
106 #include <TsCtx.hpp>
107 #include <DMMoFEM.hpp>
108 
109 //SRC/FINITE_ELEMENTS
110 #include <DataStructures.hpp>
111 #include <EntPolynomialBaseCtx.hpp>
112 #include <TetPolynomialBase.hpp> // Base functions on tet
113 #include <TriPolynomialBase.hpp> // Base functions on tri
114 #include <QuadPolynomialBase.hpp> // Base functions on quad
115 #include <EdgePolynomialBase.hpp> // Base functions on edge
116 #include <FlatPrismPolynomialBase.hpp> // Base functions on prism
117 #include <DataOperators.hpp>
118 #include <ForcesAndSourcesCore.hpp>
130 #include <UserDataOperators.hpp>
131 #include <FormsIntegrators.hpp>
134 
135 // More interfaces
136 
137 #include <PipelineManager.hpp>
138 #include <FieldEvaluator.hpp>
139 
140 #endif //MOFEM_HPP__
CutMeshInterface.hpp
Cut mesh interface.
FTensor.hpp
Tensors class implemented by Walter Landry.
FaceElementForcesAndSourcesCoreOnSide.hpp
Implementation of face element.
Core.hpp
Core interface class for user interface.
EdgeElementForcesAndSourcesCore.hpp
Implementation of elements on entities.
Common.hpp
Basic structures and data.
BernsteinBezier.hpp
Bernstein-Bezier polynomials for H1 space.
UserDataOperators.hpp
User data Operators.
BaseFunction.hpp
General implementation of base function.
ForcesAndSourcesCore.hpp
Implementation of elements on entities.
BCData.hpp
Data structure with Cubit native blocks/meshet with boundary conditions.
FatPrismElementForcesAndSourcesCore.hpp
Includes.hpp
ContactPrismElementForcesAndSourcesCore.hpp
Implementation of the contact prism element.
RefEntsMultiIndices.hpp
Multi-index contains, for mofem entities data structures and other low-level functions.
AdjacencyMultiIndices.hpp
Myltindex containes, data structures for mofem adjacencies and other low-level functions.
Interface.hpp
MoFEM interface.
LinearFormsIntegrators.hpp
Linear forms inteegrators.
VolumeElementForcesAndSourcesCore.hpp
Volume element.
base_functions.h
ProblemsMultiIndices.hpp
Multi-index containers, data structures for problems and other low-level functions.
PipelineManager.hpp
Header file for basic interface.
PrismInterface.hpp
MoFEM interface.
SeriesRecorder.hpp
MoFEM interface.
EdgePolynomialBase.hpp
Implementation of base on tetrahedral for H1 bases.
TagMultiIndices.hpp
Tags for Multi-index containers.
PrismsFromSurfaceInterface.hpp
FieldEntsMultiIndices.hpp
Multi-index contains, for mofem entities data structures and other low-level functions.
MedInterface.hpp
Med file interface interface.
Hcurl.hpp
Implementation of H-curl base function.
FlatPrismPolynomialBase.hpp
Implementation of Ainsworth-Cole H1 base on tetrahedral.
MeshsetsManager.hpp
MeshsetsManager interface.
ISManager.hpp
Interface managing IS.
Tools.hpp
Tools interface.
FaceElementForcesAndSourcesCore.hpp
Implementation of face element.
EdgeQuadHexPolynomials.hpp
Implementation of base functions on 1D segment (Edge), .
LoopMethods.hpp
MoFEM interface.
TriPolynomialBase.hpp
Implementation of H1, Hcurl base on triangle.
MeshRefinement.hpp
Interface for mesh refinement.
UnknownInterface.hpp
MoFEM interface.
BiLinearFormsIntegrators.hpp
Bilinear forms integrators.
FieldBlas.hpp
Field basic algebra.
CoordSystemsManager.hpp
Interface managing coordinate systems set to fields.
FieldEvaluator.hpp
Field Evaluator.
BitRefManager.hpp
Interface managing BitRefLevels.
Hdiv.hpp
Implementation of H-curl base function.
Simple.hpp
Header file for simple interface.
TetPolynomialBase.hpp
Implementation of Ainsworth-Coyle / Demkowicz or any other H1, Hcurl, Hdiv and L2 base on tetrahedral...
FatPrismPolynomialBase.hpp
Implementation of Ainsworth-Cole H1 base on tetrahedral.
ProblemsManager.hpp
Interface managing problems.
LegendrePolynomial.hpp
Implementation of Legendre polynomial.
VertexElementForcesAndSourcesCore.hpp
NodeMerger.hpp
NodeMerger interface.
CommInterface.hpp
Interface for communication functions.
QuadPolynomialBase.hpp
Implementation of H1 base on a quad face.
FormsIntegrators.hpp
Forms inteegrators.
MoFEM::LogManager::SeverityLevel
SeverityLevel
Severity levels.
Definition: LogManager.hpp:46
definitions.h
useful compiler directives and definitions
KspCtx.hpp
Context for PETSc KSP, i.e. nonlinear solver.
MaterialBlocks.hpp
Data structures for Meshset/Blocsk with material data.
FEMultiIndices.hpp
Multi-index contains, data structures for mofem finite elements and other low-level functions.
DMMoFEM.hpp
Discrete manager interface for MoFEM.
BCMultiIndices.hpp
Multi-index containers, data boundary data structures and other low-level functions.
LogManager.hpp
Log and register warnings.
TsCtx.hpp
Context for PETSc Time Stepping.
VecManager.hpp
Interface managing vectors.
Projection10NodeCoordsOnField.hpp
DeprecatedPetsc.hpp
Deprecated PETSc functions.
FieldMultiIndices.hpp
Field data structure storing information about space, approximation base, coordinate systems,...
EntPolynomialBaseCtx.hpp
Implementation of Ainsworth-Cole H1 base on tetrahedral.
RefElementMultiIndices.hpp
Multi-index contains, data structures for mofem finite elements and other low-level functions.
CoordSysMultiIndices.hpp
Coordinate systems attached to DOFs.
DofsMultiIndices.hpp
Multi-Index contains, data structures for mofem dofs and other low-level functions.
fem_tools.h
Loose implementation of some useful functions.
DataOperators.hpp
LobattoPolynomial.hpp
Implementation of Lobatto polynomial.
h1_hdiv_hcurl_l2.h
Functions to approximate hierarchical spaces.
SeriesMultiIndices.hpp
Multindex containers, for mofem fields data structures and other low-level functions.
AuxPETSc.hpp
Auxiliary MoFEM-PETSc structures.
DataStructures.hpp
Data structures for accessing information about finite element and its degrees of freedom.
FlatPrismElementForcesAndSourcesCore.hpp
JacobiPolynomial.hpp
Implementation of Legendre polynomial.
BitLevelCoupler.hpp
BitLevelCoupler interface.
MatrixManager.hpp
Interface for creating matrices and managing matrices.
SnesCtx.hpp
Context for PETSc SNES, i.e. nonlinear solver.
VolumeElementForcesAndSourcesCoreOnContactPrismSide.hpp
Volume element.
TetGenInterface.hpp
TetGen interface.
VolumeElementForcesAndSourcesCoreOnSide.hpp
Volume element.