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>
50 
51 //SRC/MULTI-INDICES
52 #include <MaterialBlocks.hpp>
53 #include <BCData.hpp>
54 #include <TagMultiIndices.hpp>
55 #include <CoordSysMultiIndices.hpp>
56 #include <RefEntsMultiIndices.hpp>
57 #include <FieldMultiIndices.hpp>
59 #include <DofsMultiIndices.hpp>
61 #include <FEMultiIndices.hpp>
62 #include <ProblemsMultiIndices.hpp>
64 #include <BCMultiIndices.hpp>
65 #include <SeriesMultiIndices.hpp>
66 
67 //SRC/INTERFACES
68 #include <LoopMethods.hpp>
69 #include <Interface.hpp>
70 #include <Core.hpp>
71 
72 #include <AuxPETSc.hpp>
73 
74 #include <LogManager.hpp>
76 
77 #include <BitRefManager.hpp>
78 #include <Tools.hpp>
79 #include <CommInterface.hpp>
80 #include <ISManager.hpp>
81 #include <VecManager.hpp>
82 #include <FieldBlas.hpp>
83 #include <ProblemsManager.hpp>
84 #include <MatrixManager.hpp>
85 #include <Simple.hpp>
86 #include <MeshRefinement.hpp>
87 #include <SeriesRecorder.hpp>
88 #include <PrismInterface.hpp>
89 #include <MeshsetsManager.hpp>
90 #include <CoordSystemsManager.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 <BitLevelCoupler.hpp>
99 #include <NodeMerger.hpp>
101 
102 //SRC/PETSC
103 #include <KspCtx.hpp>
104 #include <SnesCtx.hpp>
105 #include <TsCtx.hpp>
106 #include <DMMoFEM.hpp>
107 
108 //SRC/FINITE_ELEMENTS
109 #include <DataStructures.hpp>
110 #include <EntPolynomialBaseCtx.hpp>
111 #include <TetPolynomialBase.hpp> // Base functions on tet
112 #include <TriPolynomialBase.hpp> // Base functions on tri
113 #include <QuadPolynomialBase.hpp> // Base functions on quad
114 #include <EdgePolynomialBase.hpp> // Base functions on edge
115 #include <FlatPrismPolynomialBase.hpp> // Base functions on prism
116 #include <DataOperators.hpp>
117 #include <ForcesAndSourcesCore.hpp>
129 #include <UserDataOperators.hpp>
130 #include <FormsIntegrators.hpp>
133 
134 // More interfaces
135 
136 #include <PipelineManager.hpp>
137 #include <FieldEvaluator.hpp>
138 
139 #endif //MOFEM_HPP__
MeshsetsManager interface.
Interface for mesh refinement.
Field Evaluator.
SeverityLevel
Severity levels.
Definition: LogManager.hpp:46
Implementation of Legendre polynomial.
Header file for basic interfaceMake basic interface, to speedup problem setup and analysts....
Linear forms inteegrators.
Multi-index containers, data structures for problems and other low-level functions.
Implementation of elements on entities.
Data structures for Meshset/Blocsk with material data.
Cut mesh interface.
Context for PETSc KSP, i.e. nonlinear solver.
Interface managing coordinate systems set to fields.
Implementation of the contact prism element.
Implementation of Ainsworth-Cole H1 base on tetrahedral.
Implementation of Lobatto polynomial.
Basic structures and data.
Tags for Multi-index containers.
Multi-index contains, for mofem entities data structures and other low-level functions.
MoFEM interface.
Discrete manager interface for MoFEM.
Implementation of face element.
Data structures for accessing information about finite element and its degrees of freedom.
MoFEM interface.
Loose implementation of some useful functions.
Implementation of Ainsworth-Cole H1 base on tetrahedral.
Field basic algebraManaging problems, build and partitioning.
Tools interface.
Implementation of elements on entities.
Myltindex containes, data structures for mofem adjacencies and other low-level functions.
Implementation of Legendre polynomial.
Coordinate systems attached to DOFs.
Interface managing BitRefLevelsManaging BitRef levels.
NodeMerger interface.
useful compiler directives and definitions
User data Operators.
Interface managing problemsManaging problems, build and partitioning.
Multi-index contains, data structures for mofem finite elements and other low-level functions.
Implementation of H1 base on a quad face.
Auxiliary MoFEM-PETSc structures.
Multi-index contains, data structures for mofem finite elements and other low-level functions.
Multi-index containers, data boundary data structures and other low-level functions.
Interface managing ISManaging problems, build and partitioning.
General implementation of base function.
Implementation of Ainsworth-Cole H1 base on tetrahedral.
MoFEM interface.
Field data structure storing information about space, approximation base, coordinate systems,...
Interface for creating matrices and managing matricesCreating and managing matrices.
Functions to approximate hierarchical spaces.
Interface for communication functionsFunctions used to communicate, share entities,...
MoFEM interface.
Multindex containers, for mofem fields data structures and other low-level functions.
TetGen interface.
Core interface class for user interface.
Implementation of H-curl base function.
Implementation of base on tetrahedral for H1 bases.
Deprecated PETSc functions.
Bernstein-Bezier polynomials for H1 space.
Implementation of H1, Hcurl base on triangle.
Bilinear forms integrators.
Med file interface interface.
Implementation of face element.
Multi-index contains, for mofem entities data structures and other low-level functions.
MoFEM interface.
Implementation of H-curl base function.
Implementation of Ainsworth-Coyle / Demkowicz or any other H1, Hcurl, Hdiv and L2 base on tetrahedral...
Forms inteegrators.
Log and register warnings.
Context for PETSc Time Stepping.
Interface managing vectorsManaging problems, build and partitioning.
Header file for simple interfaceMake simplified interface, to speedup problem setup and analysts....
Context for PETSc SNES, i.e. nonlinear solver.
BitLevelCoupler interface.
Tensors class implemented by Walter Landry.
Data structure with Cubit native blocks/meshet with boundary conditions.
Multi-Index contains, data structures for mofem dofs and other low-level functions.