22 #ifndef __SIMPLE_HPP__
23 #define __SIMPLE_HPP__
81 const TagType tag_type = MB_TAG_SPARSE,
102 const TagType tag_type = MB_TAG_SPARSE,
123 const TagType tag_type = MB_TAG_SPARSE,
143 const TagType tag_type = MB_TAG_SPARSE,
192 const Range *ents = NULL);
428 const std::string col_field)
const;
457 std::multimap<std::string, std::pair<int, Range>>
MoFEMTypes
Those types control how functions respond on arguments, f.e. error handling.
FieldApproximationBase
approximation base
FieldSpace
approximation spaces
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
int FieldCoefficientsNumber
Number of field coefficients.
std::bitset< BITREFLEVEL_SIZE > BitRefLevel
Bit structure attached to each entity identifying to what mesh entity is attached.
implementation of Data Operators for Forces and Sources
Simple interface for fast problem set-up.
EntityHandle boundaryMeshset
meshset with boundary
MoFEMErrorCode buildProblem()
Build problem.
EntityHandle & getMeshSet()
Get the MeshSet object.
std::string & getSkeletonFEName()
Get the Skeleton FE Name.
const std::string getBoundaryFEName() const
Get the Boundary FE Name.
std::vector< std::string > dataFields
Data fields.
std::vector< std::string > domainFields
domain fields
EntityHandle & getSkeletonMeshSet()
Get the SkeletonMeshSet object.
MoFEMErrorCode removeDomainField(const std::string &name)
Remove field form domain.
MoFEMErrorCode defineFiniteElements()
Define finite elements.
char meshFileName[255]
mesh file name
EntityHandle meshSet
domain meshset
bool & getAddBoundaryFE()
Get the Add Boundary F E object.
int getDim() const
Get the problem dimension.
std::vector< std::string > otherFEs
Other finite elements.
MoFEMErrorCode setSkeletonAdjacency()
MoFEMErrorCode buildFiniteElements()
Build finite elements.
MoFEMErrorCode addDataField(const std::string &name, const FieldSpace space, const FieldApproximationBase base, const FieldCoefficientsNumber nb_of_coefficients, const TagType tag_type=MB_TAG_SPARSE, const enum MoFEMTypes bh=MF_ZERO, int verb=-1)
Add field on domain.
MoFEMErrorCode exchangeGhostCells()
std::multimap< std::string, std::pair< int, Range > > fieldsOrder
fields order
PetscLogEvent MOFEM_EVENT_SimpleBuildFields
const std::string getSkeletonFEName() const
Get the Skeleton FE Name.
PetscLogEvent MOFEM_EVENT_SimpleLoadMesh
MoFEMErrorCode addDomainField(const std::string &name, const FieldSpace space, const FieldApproximationBase base, const FieldCoefficientsNumber nb_of_coefficients, const TagType tag_type=MB_TAG_SPARSE, const enum MoFEMTypes bh=MF_ZERO, int verb=-1)
Add field on domain.
BitRefLevel & getBitRefLevel()
Get the BitRefLevel.
std::vector< std::string > noFieldFields
NOFIELD field name.
bool addSkeletonFE
Add skeleton FE.
bool addBoundaryFE
Add boundary FE.
MoFEMErrorCode addFieldToEmptyFieldBlocks(const std::string row_field, const std::string col_field) const
add empty block to problem
std::string skeletonFE
skeleton finite element
std::vector< std::string > noFieldDataFields
NOFIELD field name.
std::string boundaryFE
boundary finite element
std::string nameOfProblem
problem name
SmartPetscObj< DM > getDM()
Return smart DM object.
void setDim(int dim)
Set the problem dimension.
MoFEMErrorCode getOptions()
get options
virtual ~Simple()=default
std::string domainFE
domain finite element
std::vector< std::string > boundaryFields
boundary fields
MoFEMErrorCode reSetUp()
Rebuild internal MoFEM data structures.
std::string & getDomainFEName()
Get the Domain FE Name.
SmartPetscObj< DM > dM
Discrete manager (interface to PETSc/MoFEM functions)
MoFEMErrorCode buildFields()
Build fields.
MoFEMErrorCode loadFile(const std::string options, const std::string mesh_file_name)
Load mesh file.
BitRefLevel bitLevel
BitRefLevel of the probelm.
MoFEMErrorCode setFieldOrder(const std::string field_name, const int order, const Range *ents=NULL)
Set field order.
MoFEMErrorCode addBoundaryField(const std::string &name, const FieldSpace space, const FieldApproximationBase base, const FieldCoefficientsNumber nb_of_coefficients, const TagType tag_type=MB_TAG_SPARSE, const enum MoFEMTypes bh=MF_ZERO, int verb=-1)
Add field on boundary.
MoFEMErrorCode defineProblem(const PetscBool is_partitioned=PETSC_TRUE)
define problem
std::vector< std::string > skeletonFields
fields on the skeleton
MoFEMErrorCode addSkeletonField(const std::string &name, const FieldSpace space, const FieldApproximationBase base, const FieldCoefficientsNumber nb_of_coefficients, const TagType tag_type=MB_TAG_SPARSE, const enum MoFEMTypes bh=MF_ZERO, int verb=-1)
Add field on skeleton.
MoFEMErrorCode removeSkeletonField(const std::string &name)
Remove field form skeleton.
MoFEMErrorCode query_interface(boost::typeindex::type_index type_index, UnknownInterface **iface) const
MoFEMErrorCode setUp(const PetscBool is_partitioned=PETSC_TRUE)
Setup problem.
EntityHandle & getBoundaryMeshSet()
Get the BoundaryMeshSet object.
MoFEMErrorCode removeBoundaryField(const std::string &name)
Remove field form boundary.
std::vector< std::string > & getOtherFiniteElements()
Get the Other Finite Elements.
const std::string getProblemName() const
Get the Problem Name.
const std::string getDomainFEName() const
Get the Domain FE Name.
int dIm
dimension of problem
MoFEMErrorCode deleteDM()
Delete dm.
PetscLogEvent MOFEM_EVENT_SimpleSetUP
PetscLogEvent MOFEM_EVENT_SimpleKSPSolve
MoFEMErrorCode createBoundaryMeshset()
PetscLogEvent MOFEM_EVENT_SimpleBuildFiniteElements
BitRefLevel bitLevelMask
BitRefLevel of the probelm.
std::string & getBoundaryFEName()
Get the Boundary FE Name.
PetscLogEvent MOFEM_EVENT_SimpleBuildProblem
MoFEMErrorCode deleteFiniteElements()
Delete finite elements.
Simple(const MoFEM::Core &core)
BitRefLevel & getBitRefLevelMask()
Get the BitRefLevel.
EntityHandle skeletonMeshset
skeleton meshset with boundary
MoFEMErrorCode createSkeletonMeshset()
std::string & getProblemName()
Get the Problem Name.
bool & getAddSkeletonFE()
Get the Add Skeleton F E object.
base class for all interface classes