v0.9.1
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 <config.h>
23 #include <definitions.h>
24 
25 //FTensor
26 #include <FTensor.hpp>
27 #include <Common.hpp>
28 #include <UnknownInterface.hpp>
29 #include <DeprecatedPetsc.hpp>
30 
31 //SRC/APPROXIMATION
32 #include <base_functions.h>
33 #include <h1_hdiv_hcurl_l2.h>
34 #include <Hdiv.hpp>
35 #include <Hcurl.hpp>
36 #include <BernsteinBezier.hpp>
37 #include <fem_tools.h>
38 #include <BaseFunction.hpp>
39 #include <LegendrePolynomial.hpp>
40 #include <LobattoPolynomial.hpp>
41 #include <JacobiPolynomial.hpp>
42 #include <EntPolynomialBaseCtx.hpp>
43 #include <EdgePolynomialBase.hpp>
44 #include <TriPolynomialBase.hpp>
45 #include <TetPolynomialBase.hpp>
48 
49 //SRC/MULTI-INDICES
50 #include <MaterialBlocks.hpp>
51 #include <BCData.hpp>
52 #include <TagMultiIndices.hpp>
53 #include <CoordSysMultiIndices.hpp>
54 #include <FieldMultiIndices.hpp>
55 #include <EntsMultiIndices.hpp>
56 #include <DofsMultiIndices.hpp>
57 #include <FEMultiIndices.hpp>
58 #include <ProblemsMultiIndices.hpp>
60 #include <BCMultiIndices.hpp>
61 #include <SeriesMultiIndices.hpp>
62 
63 //SRC/INTERFACES
64 #include <LoopMethods.hpp>
65 #include <Interface.hpp>
66 #include <Core.hpp>
67 
68 #include <AuxPETSc.hpp>
69 
70 #include <BitRefManager.hpp>
71 #include <Tools.hpp>
72 #include <CommInterface.hpp>
73 #include <ISManager.hpp>
74 #include <VecManager.hpp>
75 #include <FieldBlas.hpp>
76 #include <ProblemsManager.hpp>
77 #include <MatrixManager.hpp>
78 #include <Simple.hpp>
79 #include <MeshRefinement.hpp>
80 #include <SeriesRecorder.hpp>
81 #include <PrismInterface.hpp>
82 #include <MeshsetsManager.hpp>
83 #include <CoordSystemsManager.hpp>
84 #ifdef WITH_TETGEN
85  #include <TetGenInterface.hpp>
86 #endif //WITH_TETGEN
87 #ifdef WITH_MED
88  #include <MedInterface.hpp>
89 #endif //WITH_MED
90 #include <CutMeshInterface.hpp>
91 #include <BitLevelCoupler.hpp>
92 #include <NodeMerger.hpp>
94 
95 //SRC/PETSC
96 #include <KspCtx.hpp>
97 #include <SnesCtx.hpp>
98 #include <TsCtx.hpp>
99 #include <DMMoFEM.hpp>
100 
101 //SRC/FINITE_ELEMENTS
102 #include <DataStructures.hpp>
103 #include <EntPolynomialBaseCtx.hpp>
104 #include <TetPolynomialBase.hpp> // Base functions on tet
105 #include <TriPolynomialBase.hpp> // Base functions on tri
106 #include <QuadPolynomialBase.hpp> // Base functions on quad
107 #include <EdgePolynomialBase.hpp> // Base functions on edge
108 #include <FlatPrismPolynomialBase.hpp> // Base functions on prism
109 #include <DataOperators.hpp>
110 #include <ForcesAndSourcesCore.hpp>
121 #include <UserDataOperators.hpp>
122 
123 // More interfaces
124 
125 #include <Basic.hpp>
126 #include <FieldEvaluator.hpp>
127 
128 #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.
Header file for basic interfaceMake basic interface, to speedup problem setup and analysts....
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.