![]() |
v0.15.0 |
Simple interface for fast problem set-up. More...
#include "src/interfaces/Simple.hpp"
Public Types | |
| typedef boost::function< MoFEMErrorCode(Interface &, const char *, const char *)> | LoadFileFunc |
Public Member Functions | |
| MoFEMErrorCode | query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const |
| Simple (const MoFEM::Core &core) | |
| virtual | ~Simple ()=default |
| MoFEMErrorCode | getOptions () |
| get options | |
| MoFEMErrorCode | loadFile (const std::string options, const std::string mesh_file_name, LoadFileFunc loadFunc=defaultLoadFileFunc) |
| Load mesh file. | |
| MoFEMErrorCode | loadFile (const std::string mesh_file_name="") |
| Load mesh file with parallel options if number of cores > 1. | |
| 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. | |
| MoFEMErrorCode | addDomainBrokenField (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 broken field on domain. | |
| 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 | 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 | 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 data field. | |
| MoFEMErrorCode | addMeshsetField (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 meshset field. | |
| MoFEMErrorCode | removeDomainField (const std::string name) |
| Remove field from domain. | |
| MoFEMErrorCode | removeBoundaryField (const std::string name) |
| Remove field from boundary. | |
| MoFEMErrorCode | removeSkeletonField (const std::string name) |
| Remove field from skeleton. | |
| MoFEMErrorCode | defineFiniteElements () |
| Define finite elements. | |
| MoFEMErrorCode | defineProblem (const PetscBool is_partitioned=PETSC_TRUE) |
| define problem | |
| MoFEMErrorCode | setFieldOrder (const std::string field_name, const int order, const Range *ents=NULL) |
| Set field order. | |
| MoFEMErrorCode | buildFields () |
| Build fields. | |
| MoFEMErrorCode | buildFiniteElements () |
| Build finite elements. | |
| MoFEMErrorCode | setSkeletonAdjacency (int dim=-1, std::string fe_name="") |
| Set the skeleton adjacency object. | |
| MoFEMErrorCode | buildProblem () |
| Build problem. | |
| MoFEMErrorCode | setUp (const PetscBool is_partitioned=PETSC_TRUE) |
| Setup problem. | |
| MoFEMErrorCode | reSetUp (bool only_dm=false) |
| Rebuild internal MoFEM data structures. | |
| MoFEMErrorCode | getDM (DM *dm) |
| Get DM. | |
| SmartPetscObj< DM > | getDM () |
| Return smart DM object. | |
| int | getDim () const |
| Get the problem dimension. | |
| void | setDim (int dim) |
| Set the problem dimension. | |
| DEPRECATED EntityHandle & | getMeshSet () |
| EntityHandle & | getMeshset () |
| Get the MeshSet object. | |
| EntityHandle & | getBoundaryMeshSet () |
| Get the BoundaryMeshSet object. | |
| EntityHandle & | getSkeletonMeshSet () |
| Get the SkeletonMeshSet object. | |
| BitRefLevel & | getBitRefLevel () |
| Get the BitRefLevel. | |
| BitRefLevel & | getBitRefLevelMask () |
| Get the BitRefLevelMask. | |
| const std::string | getDomainFEName () const |
| Get the Domain FE Name. | |
| const std::string | getBoundaryFEName () const |
| Get the Boundary FE Name. | |
| const std::string | getSkeletonFEName () const |
| Get the Skeleton FE Name. | |
| const std::string | getProblemName () const |
| Get the Problem Name. | |
| std::string & | getDomainFEName () |
| Get the Domain FE Name. | |
| std::string & | getBoundaryFEName () |
| Get the Boundary FE Name. | |
| std::string & | getSkeletonFEName () |
| Get the Skeleton FE Name. | |
| std::string & | getMeshsetFEName () |
| Get the Skeleton FE Name. | |
| auto & | getMeshsetFiniteElementEntities () |
| Range of entities added to meshset finite element. | |
| std::string & | getProblemName () |
| Get the Problem Name. | |
| std::vector< std::string > & | getOtherFiniteElements () |
| Get the Other Finite Elements. | |
| MoFEMErrorCode | deleteDM () |
| Delete dm. | |
| MoFEMErrorCode | deleteFiniteElements () |
| Delete finite elements. | |
| bool & | getAddSkeletonFE () |
| Get the addSkeletonFE flag. | |
| bool & | getAddBoundaryFE () |
| Get the addBoundaryFE flag. | |
| bool & | getParentAdjacencies () |
| Get the addParentAdjacencies flag. | |
| auto & | getBitAdjParent () |
| Get bit ref level for parent. | |
| auto & | getBitAdjParentMask () |
| Get bit ref level mask for parent. | |
| auto & | getBitAdjEnt () |
| Get bit ref level for entities. | |
| auto & | getBitAdjEntMask () |
| Get bit ref level mask for entities. | |
| MoFEMErrorCode | addFieldToEmptyFieldBlocks (const std::string row_field, const std::string col_field) const |
| Add empty block to problem. | |
Public Member Functions inherited from MoFEM::UnknownInterface | |
| template<class IFACE > | |
| MoFEMErrorCode | registerInterface (bool error_if_registration_failed=true) |
| Register interface. | |
| template<class IFACE > | |
| MoFEMErrorCode | getInterface (IFACE *&iface) const |
| Get interface reference to pointer of interface. | |
| template<class IFACE > | |
| MoFEMErrorCode | getInterface (IFACE **const iface) const |
| Get interface pointer to pointer of interface. | |
| template<class IFACE , typename boost::enable_if< boost::is_pointer< IFACE >, int >::type = 0> | |
| IFACE | getInterface () const |
| Get interface pointer to pointer of interface. | |
| template<class IFACE , typename boost::enable_if< boost::is_reference< IFACE >, int >::type = 0> | |
| IFACE | getInterface () const |
| Get reference to interface. | |
| template<class IFACE > | |
| IFACE * | getInterface () const |
| Function returning pointer to interface. | |
| virtual | ~UnknownInterface ()=default |
Static Public Member Functions | |
| static MoFEMErrorCode | defaultLoadFileFunc (Interface &m_field, const char *file_name, const char *options) |
| Set function for loading mesh file. | |
Static Public Member Functions inherited from MoFEM::UnknownInterface | |
| static MoFEMErrorCode | getLibVersion (Version &version) |
| Get library version. | |
| static MoFEMErrorCode | getFileVersion (moab::Interface &moab, Version &version) |
| Get database major version. | |
| static MoFEMErrorCode | setFileVersion (moab::Interface &moab, Version version=Version(MoFEM_VERSION_MAJOR, MoFEM_VERSION_MINOR, MoFEM_VERSION_BUILD)) |
| Get database major version. | |
| static MoFEMErrorCode | getInterfaceVersion (Version &version) |
| Get database major version. | |
Private Member Functions | |
| MoFEMErrorCode | createBoundaryMeshset () |
| MoFEMErrorCode | createSkeletonMeshset () |
| MoFEMErrorCode | exchangeGhostCells () |
| template<int DIM = -1> | |
| MoFEMErrorCode | setSkeletonAdjacency (std::string fe_name) |
| template<int DIM = -1> | |
| MoFEMErrorCode | setParentAdjacency () |
| template<> | |
| MoFEMErrorCode | setSkeletonAdjacency (std::string fe_name) |
| template<> | |
| MoFEMErrorCode | setSkeletonAdjacency (std::string fe_name) |
| template<> | |
| MoFEMErrorCode | setSkeletonAdjacency (std::string fe_name) |
| template<> | |
| MoFEMErrorCode | setParentAdjacency () |
| template<> | |
| MoFEMErrorCode | setParentAdjacency () |
| template<> | |
| MoFEMErrorCode | setParentAdjacency () |
Private Attributes | |
| MoFEM::Core & | cOre |
| BitRefLevel | bitLevel |
| BitRefLevel of the problem. | |
| BitRefLevel | bitLevelMask |
| BitRefLevel of the problem. | |
| PetscLogEvent | MOFEM_EVENT_SimpleSetUP |
| PetscLogEvent | MOFEM_EVENT_SimpleLoadMesh |
| PetscLogEvent | MOFEM_EVENT_SimpleBuildFields |
| PetscLogEvent | MOFEM_EVENT_SimpleBuildFiniteElements |
| PetscLogEvent | MOFEM_EVENT_SimpleBuildProblem |
| PetscLogEvent | MOFEM_EVENT_SimpleKSPSolve |
| EntityHandle | meshSet |
| domain meshset | |
| EntityHandle | boundaryMeshset |
| meshset with boundary | |
| EntityHandle | skeletonMeshset |
| skeleton meshset with boundary | |
| bool | addSkeletonFE |
| Add skeleton FE. | |
| bool | addBoundaryFE |
| Add boundary FE. | |
| bool | addParentAdjacencies |
| If set to true parent adjacencies are build. | |
| BitRefLevel | bitAdjParent |
| bit ref level for parent | |
| BitRefLevel | bitAdjParentMask |
| bit ref level for parent parent | |
| BitRefLevel | bitAdjEnt |
| bit ref level for parent | |
| BitRefLevel | bitAdjEntMask |
| bit ref level for parent parent | |
| std::vector< std::string > | domainFields |
| domain fields | |
| std::vector< std::string > | boundaryFields |
| boundary fields | |
| std::vector< std::string > | skeletonFields |
| fields on the skeleton | |
| std::vector< std::string > | dataFields |
| Data fields. | |
| std::vector< std::string > | meshsetFields |
| meshset fields | |
| std::vector< std::string > | noFieldFields |
| NOFIELD field name. | |
| std::vector< std::string > | noFieldDataFields |
| NOFIELD field name. | |
| std::list< std::tuple< std::string, int, Range, bool > > | fieldsOrder |
| std::string | nameOfProblem = "SimpleProblem" |
| problem name | |
| std::string | domainFE = "dFE" |
| domain finite element | |
| std::string | boundaryFE = "bFE" |
| boundary finite element | |
| std::string | skeletonFE = "sFE" |
| skeleton finite element | |
| std::string | meshsetFE = "mFE" |
| meshset finite element | |
| std::vector< std::string > | otherFEs |
| Other finite elements. | |
| std::vector< Range > | meshsetFiniteElementEntities |
| Meshset element entities. | |
| char | meshFileName [255] |
| mesh file name | |
| int | dIm |
| dimension of problem | |
| SmartPetscObj< DM > | dM |
| Discrete manager (interface to PETSc/MoFEM functions) | |
| boost::shared_ptr< ParentFiniteElementAdjacencyFunction< 3 > > | parentAdjFunctionDim3 |
| boost::shared_ptr< ParentFiniteElementAdjacencyFunction< 2 > > | parentAdjFunctionDim2 |
| boost::shared_ptr< ParentFiniteElementAdjacencyFunction< 1 > > | parentAdjFunctionDim1 |
| boost::shared_ptr< ParentFiniteElementAdjacencyFunctionSkeleton< 2 > > | parentAdjSkeletonFunctionDim2 |
| boost::shared_ptr< ParentFiniteElementAdjacencyFunctionSkeleton< 1 > > | parentAdjSkeletonFunctionDim1 |
Simple interface for fast problem set-up.
Definition at line 27 of file Simple.hpp.
| typedef boost::function<MoFEMErrorCode(Interface &, const char *, const char *)> MoFEM::Simple::LoadFileFunc |
Definition at line 46 of file Simple.hpp.
| MoFEM::Simple::Simple | ( | const MoFEM::Core & | core | ) |
Definition at line 162 of file Simple.cpp.
|
virtualdefault |
| MoFEMErrorCode MoFEM::Simple::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.
Adds a field to the boundary entities (entities on the mesh boundary)
| name | Name of the field |
| space | Function space (L2, H1, Hdiv, Hcurl) |
| base | Approximation base (see FieldApproximationBase) |
| nb_of_coefficients | Number of field coefficients per DOF |
| tag_type | Tag storage type (MB_TAG_DENSE is faster, MB_TAG_SPARSE more flexible) |
| bh | Behavior if field exists (MF_EXCL throws error, MF_ZERO ignores) |
| verb | Verbosity level (-1 for default) |
Definition at line 355 of file Simple.cpp.
| MoFEMErrorCode MoFEM::Simple::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 data field.
Adds a field for storing data values (typically for material properties or constants)
| name | Name of the field |
| space | Function space (L2, H1, Hdiv, Hcurl) |
| base | Approximation base (see FieldApproximationBase) |
| nb_of_coefficients | Number of field coefficients per DOF |
| tag_type | Tag storage type (MB_TAG_DENSE is faster, MB_TAG_SPARSE more flexible) |
| bh | Behavior if field exists (MF_EXCL throws error, MF_ZERO ignores) |
| verb | Verbosity level (-1 for default) |
Definition at line 393 of file Simple.cpp.
| MoFEMErrorCode MoFEM::Simple::addDomainBrokenField | ( | 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 broken field on domain.
Adds a discontinuous field to the domain entities with element-wise DOF mapping
| name | Name of the field |
| space | Function space (L2, H1, Hdiv, Hcurl) |
| base | Approximation base (see FieldApproximationBase) |
| nb_of_coefficients | Number of field coefficients per DOF |
| tag_type | Tag storage type (MB_TAG_DENSE is faster, MB_TAG_SPARSE more flexible) |
| bh | Behavior if field exists (MF_EXCL throws error, MF_ZERO ignores) |
| verb | Verbosity level (-1 for default) |
Definition at line 282 of file Simple.cpp.
| MoFEMErrorCode MoFEM::Simple::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.
Adds a field to the domain entities (highest dimension entities in the mesh)
| name | Name of the field |
| space | Function space (L2, H1, Hdiv, Hcurl) |
| base | Approximation base (see FieldApproximationBase) |
| nb_of_coefficients | Number of field coefficients per DOF |
| tag_type | Tag storage type (MB_TAG_DENSE is faster, MB_TAG_SPARSE more flexible) |
| bh | Behavior if field exists (MF_EXCL throws error, MF_ZERO ignores) |
| verb | Verbosity level (-1 for default) |
Definition at line 261 of file Simple.cpp.
| MoFEMErrorCode MoFEM::Simple::addFieldToEmptyFieldBlocks | ( | const std::string | row_field, |
| const std::string | col_field | ||
| ) | const |
Add empty block to problem.
MatrixManager assumes that all blocks, i.e. all field combinations are non-zero. This is not always the case, to optimize code and reduce memory usage user can specify which blocks are empty.
| row_field | Name of the row field |
| col_field | Name of the column field |
Definition at line 835 of file Simple.cpp.
| MoFEMErrorCode MoFEM::Simple::addMeshsetField | ( | 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 meshset field.
Add fields managed by meshset finite element for global DOFs
| name | Name of the field |
| space | Function space (L2, H1, Hdiv, Hcurl) |
| base | Approximation base (see FieldApproximationBase) |
| nb_of_coefficients | Number of field coefficients per DOF |
| tag_type | Tag storage type (MB_TAG_DENSE is faster, MB_TAG_SPARSE more flexible) |
| bh | Behavior if field exists (MF_EXCL throws error, MF_ZERO ignores) |
| verb | Verbosity level (-1 for default) |
Definition at line 411 of file Simple.cpp.
| MoFEMErrorCode MoFEM::Simple::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.
Adds a field to the skeleton entities (internal interfaces between domain elements)
| name | Name of the field |
| space | Function space (L2, H1, Hdiv, Hcurl) |
| base | Approximation base (see FieldApproximationBase) |
| nb_of_coefficients | Number of field coefficients per DOF |
| tag_type | Tag storage type (MB_TAG_DENSE is faster, MB_TAG_SPARSE more flexible) |
| bh | Behavior if field exists (MF_EXCL throws error, MF_ZERO ignores) |
| verb | Verbosity level (-1 for default) |
Definition at line 373 of file Simple.cpp.
| MoFEMErrorCode MoFEM::Simple::buildFields | ( | ) |
Build fields.
Builds the field data structures and creates DOFs
Definition at line 584 of file Simple.cpp.
| MoFEMErrorCode MoFEM::Simple::buildFiniteElements | ( | ) |
Build finite elements.
Builds the finite element data structures and adjacencies
Definition at line 660 of file Simple.cpp.
| MoFEMErrorCode MoFEM::Simple::buildProblem | ( | ) |
Build problem.
Builds the problem data structures and sets up DOF numbering
Definition at line 722 of file Simple.cpp.
|
private |
Definition at line 844 of file Simple.cpp.
|
private |
Definition at line 891 of file Simple.cpp.
|
inlinestatic |
Set function for loading mesh file.
Default function for loading mesh files using MOAB interface
| m_field | MoFEM interface object |
| file_name | Name of the mesh file to load |
| options | Loader options string for MOAB |
Definition at line 57 of file Simple.hpp.
| MoFEMErrorCode MoFEM::Simple::defineFiniteElements | ( | ) |
Define finite elements.
Creates and defines domain, boundary, and skeleton finite elements based on added fields
Definition at line 471 of file Simple.cpp.
| MoFEMErrorCode MoFEM::Simple::defineProblem | ( | const PetscBool | is_partitioned = PETSC_TRUE | ) |
define problem
Creates the problem and associates finite elements with it
| is_partitioned | Whether the mesh should be partitioned for parallel execution |
Definition at line 551 of file Simple.cpp.
| MoFEMErrorCode MoFEM::Simple::deleteDM | ( | ) |
Delete dm.
Destroys the PETSc DM object and cleans up resources
Definition at line 812 of file Simple.cpp.
| MoFEMErrorCode MoFEM::Simple::deleteFiniteElements | ( | ) |
Delete finite elements.
Removes all finite elements created by the Simple interface
Definition at line 823 of file Simple.cpp.
|
private |
get all adjacent ghosted entities
Definition at line 925 of file Simple.cpp.
|
inline |
Get the addBoundaryFE flag.
If variable set to true, boundary element is created regardless of whether a field on boundary is added or not.
Definition at line 546 of file Simple.hpp.
|
inline |
Get the addSkeletonFE flag.
If variable set to true, skeleton element is created regardless of whether a field on skeleton is added or not.
Definition at line 536 of file Simple.hpp.
|
inline |
Get bit ref level for entities.
Definition at line 576 of file Simple.hpp.
|
inline |
Get bit ref level mask for entities.
Definition at line 583 of file Simple.hpp.
|
inline |
Get bit ref level for parent.
Definition at line 562 of file Simple.hpp.
|
inline |
Get bit ref level mask for parent.
Definition at line 569 of file Simple.hpp.
|
inline |
Get the BitRefLevel.
Definition at line 415 of file Simple.hpp.
|
inline |
Get the BitRefLevelMask.
Definition at line 422 of file Simple.hpp.
|
inline |
|
inline |
|
inline |
Get the BoundaryMeshSet object.
Definition at line 401 of file Simple.hpp.
|
inline |
Get the problem dimension.
Problem dimension is determined by highest dimension of entities on the mesh.
Definition at line 373 of file Simple.hpp.
|
inline |
Return smart DM object.
Returns a smart pointer to the DM object that handles automatic cleanup
Definition at line 363 of file Simple.hpp.
| MoFEMErrorCode MoFEM::Simple::getDM | ( | DM * | dm | ) |
Get DM.
Retrieves the PETSc Discrete Manager (DM) object
| dm | Pointer to store the DM object |
Definition at line 800 of file Simple.cpp.
|
inline |
|
inline |
Get the Domain FE Name.
Definition at line 429 of file Simple.hpp.
|
inline |
Definition at line 387 of file Simple.hpp.
|
inline |
Get the MeshSet object.
Definition at line 394 of file Simple.hpp.
|
inline |
|
inline |
Range of entities added to meshset finite element.
Meshset element have not defined integration rule, if you like to integrate you have to add mesh entity to meshset finite element. In principle meshset element become standard FE.
Definition at line 489 of file Simple.hpp.
| MoFEMErrorCode MoFEM::Simple::getOptions | ( | ) |
get options
Retrieves command-line options and configuration settings for the Simple interface
Definition at line 180 of file Simple.cpp.
|
inline |
Get the Other Finite Elements.
User can create finite elements using directly core interface and and them to simple problem by this function
Definition at line 508 of file Simple.hpp.
|
inline |
Get the addParentAdjacencies flag.
If set true, parent adjacencies are added to finite elements
Definition at line 555 of file Simple.hpp.
|
inline |
|
inline |
Get the Problem Name.
Definition at line 450 of file Simple.hpp.
|
inline |
|
inline |
Get the Skeleton FE Name.
Definition at line 443 of file Simple.hpp.
|
inline |
Get the SkeletonMeshSet object.
Definition at line 408 of file Simple.hpp.
| MoFEMErrorCode MoFEM::Simple::loadFile | ( | const std::string | mesh_file_name = "" | ) |
Load mesh file with parallel options if number of cores > 1.
Automatically selects appropriate loading options for parallel execution
| mesh_file_name | Name of mesh file to load (if empty, uses default or command line value) |
Definition at line 247 of file Simple.cpp.
| MoFEMErrorCode MoFEM::Simple::loadFile | ( | const std::string | options, |
| const std::string | mesh_file_name, | ||
| LoadFileFunc | loadFunc = defaultLoadFileFunc |
||
| ) |
Load mesh file.
Loads mesh file with specified options and custom loading function
| options | File load options string passed to the loader |
| mesh_file_name | Name of mesh file to load (if empty, uses default or command line) |
| loadFunc | Function for loading mesh file (default: defaultLoadFileFunc) |
Definition at line 191 of file Simple.cpp.
|
virtual |
| MoFEMErrorCode MoFEM::Simple::removeBoundaryField | ( | const std::string | name | ) |
Remove field from boundary.
| name | Name of the field to remove from boundary |
Definition at line 443 of file Simple.cpp.
| MoFEMErrorCode MoFEM::Simple::removeDomainField | ( | const std::string | name | ) |
Remove field from domain.
| name | Name of the field to remove from domain |
Definition at line 429 of file Simple.cpp.
| MoFEMErrorCode MoFEM::Simple::removeSkeletonField | ( | const std::string | name | ) |
Remove field from skeleton.
| name | Name of the field to remove from skeleton |
Definition at line 457 of file Simple.cpp.
| MoFEMErrorCode MoFEM::Simple::reSetUp | ( | bool | only_dm = false | ) |
Rebuild internal MoFEM data structures.
Call this function after you add field or remove it.
| only_dm | If true, only rebuild DM without rebuilding fields and finite elements |
Definition at line 762 of file Simple.cpp.
|
inline |
Set the problem dimension.
| dim | Problem dimension to set (1, 2, or 3) |
Definition at line 380 of file Simple.hpp.
| MoFEMErrorCode MoFEM::Simple::setFieldOrder | ( | const std::string | field_name, |
| const int | order, | ||
| const Range * | ents = NULL |
||
| ) |
Set field order.
Sets the approximation order for a field on specified entities
| field_name | Name of the field |
| order | Approximation order to set |
| ents | Range of entities to apply order to (NULL for all entities) |
Definition at line 575 of file Simple.cpp.
|
private |
Definition at line 72 of file Simple.cpp.
|
private |
Definition at line 103 of file Simple.cpp.
|
private |
Definition at line 128 of file Simple.cpp.
|
private |
Definition at line 67 of file Simple.cpp.
| MoFEMErrorCode MoFEM::Simple::setSkeletonAdjacency | ( | int | dim = -1, |
| std::string | fe_name = "" |
||
| ) |
Set the skeleton adjacency object.
Sets up adjacency relationships for skeleton finite elements
| dim | Dimension for skeleton adjacency (-1 for automatic detection) |
| fe_name | Name of finite element to set adjacency for (empty for default) |
Definition at line 143 of file Simple.cpp.
|
private |
Definition at line 21 of file Simple.cpp.
|
private |
Definition at line 35 of file Simple.cpp.
|
private |
Definition at line 52 of file Simple.cpp.
|
private |
Definition at line 15 of file Simple.cpp.
| MoFEMErrorCode MoFEM::Simple::setUp | ( | const PetscBool | is_partitioned = PETSC_TRUE | ) |
Setup problem.
Complete setup of the problem including fields, finite elements, and problem definition
| is_partitioned | Whether the mesh should be partitioned for parallel execution |
Definition at line 736 of file Simple.cpp.
|
private |
Add boundary FE.
Definition at line 617 of file Simple.hpp.
|
private |
If set to true parent adjacencies are build.
Definition at line 618 of file Simple.hpp.
|
private |
Add skeleton FE.
Definition at line 616 of file Simple.hpp.
|
private |
bit ref level for parent
Definition at line 622 of file Simple.hpp.
|
private |
bit ref level for parent parent
Definition at line 623 of file Simple.hpp.
|
private |
bit ref level for parent
Definition at line 620 of file Simple.hpp.
|
private |
bit ref level for parent parent
Definition at line 621 of file Simple.hpp.
|
private |
BitRefLevel of the problem.
Definition at line 602 of file Simple.hpp.
|
private |
BitRefLevel of the problem.
Definition at line 603 of file Simple.hpp.
|
private |
boundary finite element
Definition at line 639 of file Simple.hpp.
|
private |
boundary fields
Definition at line 626 of file Simple.hpp.
|
private |
meshset with boundary
Definition at line 613 of file Simple.hpp.
|
private |
Definition at line 600 of file Simple.hpp.
|
private |
Data fields.
Definition at line 628 of file Simple.hpp.
|
private |
dimension of problem
Definition at line 648 of file Simple.hpp.
|
private |
Discrete manager (interface to PETSc/MoFEM functions)
Definition at line 651 of file Simple.hpp.
|
private |
domain finite element
Definition at line 638 of file Simple.hpp.
|
private |
domain fields
Definition at line 625 of file Simple.hpp.
fields order. 1: field name, order, range, set by range if true
Definition at line 634 of file Simple.hpp.
|
private |
mesh file name
Definition at line 647 of file Simple.hpp.
|
private |
domain meshset
Definition at line 612 of file Simple.hpp.
|
private |
meshset finite element
Definition at line 641 of file Simple.hpp.
|
private |
meshset fields
Definition at line 629 of file Simple.hpp.
|
private |
Meshset element entities.
Definition at line 645 of file Simple.hpp.
|
private |
Definition at line 607 of file Simple.hpp.
|
private |
Definition at line 608 of file Simple.hpp.
|
private |
Definition at line 609 of file Simple.hpp.
|
private |
Definition at line 610 of file Simple.hpp.
|
private |
Definition at line 606 of file Simple.hpp.
|
private |
Definition at line 605 of file Simple.hpp.
|
private |
problem name
Definition at line 637 of file Simple.hpp.
|
private |
NOFIELD field name.
Definition at line 631 of file Simple.hpp.
|
private |
NOFIELD field name.
Definition at line 630 of file Simple.hpp.
|
private |
Other finite elements.
Definition at line 643 of file Simple.hpp.
|
private |
Definition at line 667 of file Simple.hpp.
|
private |
Definition at line 665 of file Simple.hpp.
|
private |
Definition at line 663 of file Simple.hpp.
|
private |
Definition at line 672 of file Simple.hpp.
|
private |
Definition at line 670 of file Simple.hpp.
|
private |
skeleton finite element
Definition at line 640 of file Simple.hpp.
|
private |
fields on the skeleton
Definition at line 627 of file Simple.hpp.
|
private |
skeleton meshset with boundary
Definition at line 614 of file Simple.hpp.