v0.15.0
Loading...
Searching...
No Matches
MoFEM.hpp
Go to the documentation of this file.
1/**
2 * @file MoFEM.hpp
3 * @author Anonymous author(s) committing under MIT license
4 */
5
6#ifndef NDEBUG
7#define BOOST_DISABLE_ASSERTS ///< If not set makes BOOST freezing, check what
8 ///< happen fi boost recompiled with cxx17
9 ///< standard
10#define BOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING
11#define BOOST_MULTI_INDEX_ENABLE_SAFE_MODE
12#endif
13
14#ifndef __MOFEM_HPP__
15#define __MOFEM_HPP__
16
17// Include system and libraries files
18#include <Includes.hpp>
19
20// SRC APPROXIMATION
21#include <config.h>
22#include <definitions.h>
23
24// FTensor
25#include <FTensor.hpp>
26
27namespace MoFEM {
28// FIXME: All operators in FTensor move to FTensor namespace.
29using FTensor::operator<<;
30using FTensor::operator>>;
31} // namespace MoFEM
32
33#include <Common.hpp>
34#include <UnknownInterface.hpp>
35#include <TagMultiIndices.hpp>
36
37// SRC/APPROXIMATION
38#include <base_functions.h>
39#include <h1_hdiv_hcurl_l2.h>
40#include <Hdiv.hpp>
41#include <Hcurl.hpp>
42#include <BernsteinBezier.hpp>
43#include <fem_tools.h>
44#include <BaseFunction.hpp>
46#include <LobattoPolynomial.hpp>
47#include <JacobiPolynomial.hpp>
49#include <QuadPolynomialBase.hpp> // Base functions on quad
51#include <TriPolynomialBase.hpp>
52#include <TetPolynomialBase.hpp>
53#include <HexPolynomialBase.hpp>
57
58// SRC/MULTI-INDICES
59#include <MaterialBlocks.hpp>
60#include <BCData.hpp>
62#include <FieldMultiIndices.hpp>
64#include <DofsMultiIndices.hpp>
66#include <FEMultiIndices.hpp>
69#include <BCMultiIndices.hpp>
71
72// SRC/INTERFACES
73#include <LoopMethods.hpp>
74#include <Interface.hpp>
75#include <Core.hpp>
76
77#include <AuxPETSc.hpp>
78
79#include <LogManager.hpp>
80#include <BitRefManager.hpp>
81#include <Tools.hpp>
82#include <CommInterface.hpp>
83#include <ISManager.hpp>
84#include <VecManager.hpp>
85#include <FieldBlas.hpp>
86#include <ProblemsManager.hpp>
87#include <MatrixManager.hpp>
88#include <Simple.hpp>
89#include <MeshRefinement.hpp>
90#include <SeriesRecorder.hpp>
91#include <PrismInterface.hpp>
92#include <MeshsetsManager.hpp>
93#ifdef WITH_TETGEN
94#include <TetGenInterface.hpp>
95#endif // WITH_TETGEN
96#ifdef WITH_MED
97#include <MedInterface.hpp>
98#endif // WITH_MED
99#include <CutMeshInterface.hpp>
100#include <NodeMerger.hpp>
102
103// SRC/PETSC
104#include <KspCtx.hpp>
105#include <SnesCtx.hpp>
106#include <TaoCtx.hpp>
107#include <TsCtx.hpp>
108#include <DMMoFEM.hpp>
110
111// SRC/FINITE_ELEMENTS
112#include <EntitiesFieldData.hpp>
113#include <DataOperators.hpp>
128#include <UserDataOperators.hpp>
129#include <HODataOperators.hpp> // Manage HO order geometry
130#include <MeshProjectionDataOperators.hpp> // Operators for projections between bit ref levels
131#include <BaseDerivativesDataOperators.hpp> // Operators to calculate HO direcarives
132#include <DGProjection.hpp> // Operators to calculate DG projection
133#include <FormsIntegrators.hpp>
140#include <adJointImpl.hpp>
141#include <adJoint.hpp>
142#include <NormsOperators.hpp>
143#include <Schur.hpp>
144#include <OperatorsTester.hpp>
145#include <ConstrainMatrixCtx.hpp>
146
147
148// More interfaces
149
150#include <PipelineManager.hpp>
151#include <FieldEvaluator.hpp>
152#include <BcManager.hpp>
153
154// Post-processing and boundary condition
155#include <PostProc.hpp>
156#include <ScalingMethod.hpp>
157#include <Natural.hpp>
158#include <NaturalMeshsetType.hpp>
161#include <Essential.hpp>
165
166
167#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 (implementation)
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.
Multi-Index contains, data structures for mofem dofs and other low-level functions.
Implementation of edge element integrating parent.
Implementation of elements on entities.
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.
Implementations specialisation for DisplacementCubitBcData.
Specialization for essential b.c. with HeatFluxCubitBcData.
Specialization for essential b.c. with TemperatureCubitBcData.
Setting essential boundary conditions.
Multi-index contains, data structures for mofem finite elements and other low-level functions.
Tensors class implemented by Walter Landry.
Implementation of face element integrating parent.
Implementation of face element.
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.
Integrator for broken space constraints.
Forms integrators.
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)
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.
Specialization for NaturalForceMeshsets.
Specialisation for NaturalMeshsetType.
Setting natural boundary conditions.
NodeMerger interface.
User data Operators for calculating norms.
Used to calculate derivatives and testing tangent matrix, i.e. hessian.
header of multi-grid solver for p- adaptivity
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.
Assemble Schur complement.
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.
Context for PETSc TAO, i.e. optimization solver.
TetGen interface.
Implementation of Ainsworth-Coyle / Demkowicz or any other H1, Hcurl, Hdiv and L2 base on tetrahedral...
Tools interface.
Trilinear forms integrators.
Implementation of H1, Hcurl base on triangle.
Context for PETSc Time Stepping.
MoFEM interface.
User data Operators.
Interface managing vectors.
useful compiler derivatives and definitions
Loose implementation of some useful functions.
Functions to approximate hierarchical spaces.
implementation of Data Operators for Forces and Sources
Definition Common.hpp:10