v0.9.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 #ifndef __MOFEM_HPP__
16 #define __MOFEM_HPP__
17 
18 //Include system and libraries files
19 #include <Includes.hpp>
20 
21 //SRC APPROXIMATION
22 #include <version.h>
23 #include <config.h>
24 #include <definitions.h>
25 
26 //FTensor
27 #include <FTensor.hpp>
28 #include <Common.hpp>
29 #include <UnknownInterface.hpp>
30 #include <DeprecatedPetsc.hpp>
31 
32 //SRC/APPROXIMATION
33 #include <base_functions.h>
34 #include <h1_hdiv_hcurl_l2.h>
35 #include <Hdiv.hpp>
36 #include <Hcurl.hpp>
37 #include <BernsteinBezier.hpp>
38 #include <fem_tools.h>
39 #include <BaseFunction.hpp>
40 #include <LegendrePolynomial.hpp>
41 #include <LobattoPolynomial.hpp>
42 #include <JacobiPolynomial.hpp>
43 #include <EntPolynomialBaseCtx.hpp>
44 #include <EdgePolynomialBase.hpp>
45 #include <TriPolynomialBase.hpp>
46 #include <TetPolynomialBase.hpp>
49 
50 //SRC/MULTI-INDICES
51 #include <MaterialBlocks.hpp>
52 #include <BCData.hpp>
53 #include <TagMultiIndices.hpp>
54 #include <CoordSysMultiIndices.hpp>
55 #include <FieldMultiIndices.hpp>
56 #include <EntsMultiIndices.hpp>
57 #include <DofsMultiIndices.hpp>
58 #include <FEMultiIndices.hpp>
59 #include <ProblemsMultiIndices.hpp>
61 #include <BCMultiIndices.hpp>
62 #include <SeriesMultiIndices.hpp>
63 
64 //SRC/INTERFACES
65 #include <LoopMethods.hpp>
66 #include <Interface.hpp>
67 #include <Core.hpp>
68 
69 #include <AuxPETSc.hpp>
70 
71 #include <BitRefManager.hpp>
72 #include <Tools.hpp>
73 #include <CommInterface.hpp>
74 #include <ISManager.hpp>
75 #include <VecManager.hpp>
76 #include <FieldBlas.hpp>
77 #include <ProblemsManager.hpp>
78 #include <MatrixManager.hpp>
79 #include <Simple.hpp>
80 #include <MeshRefinement.hpp>
81 #include <SeriesRecorder.hpp>
82 #include <PrismInterface.hpp>
83 #include <MeshsetsManager.hpp>
84 #include <CoordSystemsManager.hpp>
85 #ifdef WITH_TETGEN
86  #include <TetGenInterface.hpp>
87 #endif //WITH_TETGEN
88 #ifdef WITH_MED
89  #include <MedInterface.hpp>
90 #endif //WITH_MED
91 #include <CutMeshInterface.hpp>
92 #include <BitLevelCoupler.hpp>
93 #include <NodeMerger.hpp>
95 
96 //SRC/PETSC
97 #include <KspCtx.hpp>
98 #include <SnesCtx.hpp>
99 #include <TsCtx.hpp>
100 #include <DMMoFEM.hpp>
101 
102 //SRC/FINITE_ELEMENTS
103 #include <DataStructures.hpp>
104 #include <EntPolynomialBaseCtx.hpp>
105 #include <TetPolynomialBase.hpp> // Base functions on tet
106 #include <TriPolynomialBase.hpp> // Base functions on tri
107 #include <QuadPolynomialBase.hpp> // Base functions on quad
108 #include <EdgePolynomialBase.hpp> // Base functions on edge
109 #include <FlatPrismPolynomialBase.hpp> // Base functions on prism
110 #include <DataOperators.hpp>
111 #include <ForcesAndSourcesCore.hpp>
122 #include <UserDataOperators.hpp>
123 
124 // More interfaces
125 
126 #include <FieldEvaluator.hpp>
127 
128 
129 #endif //MOFEM_HPP__
MeshsetsManager interface.
Interface for mesh refinement.
Field Evaluator.
Implementation of Legendre polynomial.
Multi-index containers, data structures for problems and other low-level functions.
Implementation of elements on entities.
Multi-index contains, for mofem entities data structures and other low-level functions.
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.
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.
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.
Med file interface interface.
Implementation of face element.
MoFEM interface.
Implementation of H-curl base function.
Implementation of Ainsworth-Coyle / Demkowicz or any other H1, Hcurl, Hdiv and L2 base on tetrahedral...
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.