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"
38 class CellBlockManager;
55 Group *
const parent );
69 virtual Group *
createChild(
string const & childKey,
string const & childName )
override;
103 string const & blockName,
104 string const & meshFieldName,
105 bool isMaterialField,
141 virtual void fillCellBlockManager(
CellBlockManager & cellBlockManager, SpatialPartition & partition )
145 GEOS_ERROR(
"Cell mesh generation not implemented for generator of this type" );
161 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(msg)
Raise a hard error and terminate the program.
The CellBlockManager class provides an interface to ObjectManagerBase in order to manage CellBlock da...
The MeshGeneratorBase class provides an abstract base class implementation for different mesh types....
std::map< string, string > m_volumicFields
Mapping from volumic field source to GEOS field.
static CatalogInterface::CatalogType & getCatalog()
Accessor for the singleton Catalog object.
std::map< string, string > const & getVolumicFieldsMapping() const
Get the name mapping between mesh volumic field names and internal GEOS volumic field names.
std::map< string, string > const & getSurfacicFieldsMapping() const
Get the name mapping between mesh surfacic field names and internal GEOS surfacic field names.
virtual void freeResources()
Free internal resources associated with mesh/data import.
virtual void expandObjectCatalogs() override
This function is used to expand any catalogs in the data structure.
std::map< string, string > m_surfacicFields
Mapping from surfacic field source to GEOS field.
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 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.