20 #ifndef GEOS_MESH_GENERATORS_MESHGENERATORBASE_HPP
21 #define GEOS_MESH_GENERATORS_MESHGENERATORBASE_HPP
23 #include "mesh/mpiCommunications/SpatialPartition.hpp"
27 #include "codingUtilities/Utilities.hpp"
35 class CellBlockManager;
39 class ElementRegionManager;
73 Group *
const parent );
87 virtual Group *
createChild(
string const & childKey,
string const & childName )
override;
121 string const & blockName,
122 string const & meshFieldName,
123 bool isMaterialField,
172 virtual void fillCellBlockManager(
CellBlockManager & cellBlockManager, SpatialPartition & partition )
176 GEOS_ERROR(
"Cell mesh generation not implemented for generator of this type" );
192 GEOS_ERROR(
"Particle mesh generation not implemented for generator of this type" );
#define GEOS_UNUSED_VAR(...)
Mark an unused variable and silence compiler warnings.
#define GEOS_ERROR(...)
Raise a hard error and terminate the program.
The CellBlockManager class provides an interface to ObjectManagerBase in order to manage CellBlock da...
This class provides an interface to ObjectManagerBase in order to manage edge data.
The ElementRegionManager class provides an interface to ObjectManagerBase in order to manage ElementR...
The FaceManager class provides an interface to ObjectManagerBase in order to manage face data.
The MeshGeneratorBase class provides an abstract base class implementation for different mesh types....
static CatalogInterface::CatalogType & getCatalog()
Accessor for the singleton Catalog object.
stdMap< string, string > const & getSurfacicFieldsMapping() const
Get the name mapping between mesh surfacic field names and internal GEOS surfacic field names.
stdMap< string, string > m_volumicFields
Mapping from volumic field source to GEOS field.
virtual void freeResources()
Free internal resources associated with mesh/data import.
stdMap< string, string > const & getVolumicFieldsMapping() const
Get the name mapping between mesh volumic field names and internal GEOS volumic field names.
stdMap< string, string > m_surfacicFields
Mapping from surfacic field source to GEOS field.
integer m_checkEulerCharacteristic
When non-zero, compute χ = V − E + F − C after mesh loading and warn if χ ≠ 1.
virtual void expandObjectCatalogs() override
This function is used to expand any catalogs in the data structure.
Block
Describe which kind of block must be considered.
void generateMesh(Group &parent, SpatialPartition &partition)
Generate the mesh object the input mesh object.
virtual void importFieldOnArray(Block block, string const &blockName, string const &meshFieldName, bool isMaterialField, dataRepository::WrapperBase &wrapper) const =0
import field from the mesh on the array accessible via the given wrapper.
MeshGeneratorBase(string const &name, Group *const parent)
Main constructor for MeshGenerator base class.
virtual Group * createChild(string const &childKey, string const &childName) override
Create a new geometric object (box, plane, etc) as a child of this group.
The NodeManager class provides an interface to ObjectManagerBase in order to manage node data.
The ParticleBlockManager class provides an interface to ObjectManagerBase in order to manage Particle...
The ParticleManager class provides an interface to ObjectManagerBase in order to manage ParticleRegio...
This class provides the base class/interface for the catalog value objects.
std::unordered_map< std::string, std::unique_ptr< CatalogInterface< BASETYPE, ARGS... > > > CatalogType
This is the type that will be used for the catalog. The catalog is actually instantiated in the BASET...
Base class for all wrappers containing common operations.
internal::StdMapWrapper< std::map< Key, T, Compare, Allocator >, USE_STD_CONTAINER_BOUNDS_CHECKING > stdMap
integer computeEulerCharacteristic(NodeManager const &nodeManager, EdgeManager const &edgeManager, FaceManager const &faceManager, ElementRegionManager const &elemManager)
Compute the Euler-Poincaré characteristic χ = V − E + F − C for the bulk mesh.
int integer
Signed integer type.
Key for the checkEulerCharacteristic XML attribute.
constexpr static char const * checkEulerCharacteristicString()
Get the XML attribute name for the Euler characteristic check flag.