v0.13.1
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
24namespace MoFEM {
25// FIXME: All operators in FTensor move to FTensor namespace.
26using FTensor::operator<<;
27using FTensor::operator>>;
28} // namespace MoFEM
29
30#include <Common.hpp>
31#include <UnknownInterface.hpp>
32#include <DeprecatedPetsc.hpp>
33
34// SRC/APPROXIMATION
35#include <base_functions.h>
36#include <h1_hdiv_hcurl_l2.h>
37#include <Hdiv.hpp>
38#include <Hcurl.hpp>
39#include <BernsteinBezier.hpp>
40#include <fem_tools.h>
41#include <BaseFunction.hpp>
43#include <LobattoPolynomial.hpp>
44#include <JacobiPolynomial.hpp>
46#include <QuadPolynomialBase.hpp> // Base functions on quad
48#include <TriPolynomialBase.hpp>
49#include <TetPolynomialBase.hpp>
50#include <HexPolynomialBase.hpp>
54
55// SRC/MULTI-INDICES
56#include <MaterialBlocks.hpp>
57#include <BCData.hpp>
58#include <TagMultiIndices.hpp>
60#include <FieldMultiIndices.hpp>
62#include <DofsMultiIndices.hpp>
64#include <FEMultiIndices.hpp>
67#include <BCMultiIndices.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>
106
107// SRC/FINITE_ELEMENTS
108#include <EntitiesFieldData.hpp>
109#include <DataOperators.hpp>
124#include <UserDataOperators.hpp>
125#include <HODataOperators.hpp> // Manage HO order geometry
126#include <MeshProjectionDataOperators.hpp> // Operators for projections between bit ref levels
127#include <BaseDerivativesDataOperators.hpp> // Operators to calculate HO direcarives
128#include <FormsIntegrators.hpp>
131
132// More interfaces
133
134#include <PipelineManager.hpp>
135#include <FieldEvaluator.hpp>
136#include <BcManager.hpp>
137
138// Post-processing and boundary condition
139#include <PostProc.hpp>
140#include <ScalingMethod.hpp>
141#include <Natural.hpp>
142#include <NaturalMeshsetType.hpp>
145#include <Essential.hpp>
149
150#endif // MOFEM_HPP__
Myltindex containes, data structures for mofem adjacencies and other low-level functions.
Auxiliary MoFEM-PETSc structures.
Data structure with Cubit native blocks/meshset with boundary conditions.
Multi-index containers, data boundary data structures and other low-level functions.
Base derivatives data operators.
General implementation of base function.
Manage boundary conditions set to the problem.
Bernstein-Bezier polynomials for H1 space.
Bilinear forms integrators.
Interface managing BitRefLevels.
Interface for communication functions.
Basic structures and data.
Implementation of the contact prism element.
Core interface class for user interface.
Cut mesh interface.
Discrete manager interface for MoFEM.
Deprecated PETSc functions.
Multi-Index contains, data structures for mofem dofs and other low-level functions.
Implementation of elements on entities.
Implementation of edge element integrating parent.
Implementation of base on tetrahedral for H1 bases.
Implementation of base Demkowicz functions on quad and hex.
Implementation of Ainsworth-Cole H1 base on tetrahedral.
Data structures for accessing information about finite element and its degrees of freedom.
Setting essential boundary conditions.
Implementations specialisation for DisplacementCubitBcData.
Specialization for essential b.c. with HeatFluxCubitBcData.
Specialization for essential b.c. with TemperatureCubitBcData.
Multi-index contains, data structures for mofem finite elements and other low-level functions.
Tensors class implemented by Walter Landry.
Implementation of face element.
Implementation of face element integrating parent.
Implementation of face element.
Implementation of Ainsworth-Cole H1 base on tetrahedral.
Field basic algebra.
Multi-index contains, for mofem entities data structures and other low-level functions.
Field Evaluator.
Field data structure storing information about space, approximation base, coordinate systems,...
Implementation of Ainsworth-Cole H1 base on tetrahedral.
Implementation of elements on entities.
Forms inteegrators.
Operators managing HO geometry.
Implementation of H-curl base function.
Implementation of H-curl base function.
Implementation of Ainsworth-Coyle / Demkowicz or any other H1, Hcurl, Hdiv and L2 base on tetrahedral...
Interface managing IS.
MoFEM interface.
Implementation of Legendre polynomial.
Context for PETSc KSP, i.e. nonlinear solver.
Implementation of Legendre polynomial.
Linear forms integrators.
Implementation of Lobatto polynomial.
Log and register warnings.
MoFEM interface.
Data structures for Meshset/Blocsk with material data.
Interface for creating matrices and managing matrices.
Med file interface interface.
Mesh projection operators.
Interface for mesh refinement.
MeshsetsManager interface.
Setting natural boundary conditions.
Specialization for NaturalForceMeshsets.
Specialisation for NaturalMeshsetType.
NodeMerger interface.
Header file for basic interface.
Post-process fields on refined mesh.
MoFEM interface.
Interface managing problems.
Multi-index containers, data structures for problems and other low-level functions.
Implementation of H1 base on a quad face.
Multi-index contains, data structures for mofem finite elements and other low-level functions.
Multi-index contains, for mofem entities data structures and other low-level functions.
Multindex containers, for mofem fields data structures and other low-level functions.
MoFEM interface.
Header file for simple interface.
Context for PETSc SNES, i.e. nonlinear solver.
Tags for Multi-index containers.
TetGen interface.
Implementation of Ainsworth-Coyle / Demkowicz or any other H1, Hcurl, Hdiv and L2 base on tetrahedral...
Tools interface.
Implementation of H1, Hcurl base on triangle.
Context for PETSc Time Stepping.
MoFEM interface.
User data Operators.
Interface managing vectors.
useful compiler directives and definitions
Loose implementation of some useful functions.
Functions to approximate hierarchical spaces.
implementation of Data Operators for Forces and Sources
Definition: MoFEM.hpp:24