20 #ifndef GEOS_MESH_DOMAINPARTITION_HPP_
21 #define GEOS_MESH_DOMAINPARTITION_HPP_
24 #include "constitutive/ConstitutiveManager.hpp"
28 #include "mesh/mpiCommunications/NeighborCommunicator.hpp"
34 namespace dataRepository
61 Group *
const parent );
195 template<
typename KEY_TYPE >
205 template<
typename KEY_TYPE >
218 template<
typename KEY_TYPE >
230 template<
typename FUNCTION >
239 template<
typename FUNCTION >
248 template<
typename FUNCTION >
257 template<
typename FUNCTION >
268 {
return m_neighbors; }
275 {
return m_neighbors; };
282 std::vector< NeighborCommunicator > m_neighbors;
string const partitionManager("partitionManager")
Partition of the decomposed physical domain. It also manages the connexion information to its neighbo...
struct geos::DomainPartition::groupKeysStruct groupKeys
groupKey struct for the DomainPartition class
void forMeshBodies(FUNCTION &&function)
Apply the given functor to all meshBodies.
void initializationOrder(string_array &order) override final
Sets the initialization order for sub-Groups.
MeshBody const & getMeshBody(KEY_TYPE const &key) const
Get a MeshBody by name, const version.
void forMeshBodiesIndex(FUNCTION &&function)
Apply the given functor to all meshBodies.
void setupBaseLevelMeshGlobalInfo()
Constructs the global information of this DomainPartition, needed to set up ghosting.
constitutive::ConstitutiveManager & getConstitutiveManager()
Get the constitutive manager.
Group const & getMeshBodies() const
Get the mesh bodies, const version.
NumericalMethodsManager & getNumericalMethodManager()
std::vector< NeighborCommunicator > & getNeighbors()
Get the neighbor communicators.
void addNeighbors(const unsigned int idim, MPI_Comm &cartcomm, int *ncoords)
Recursively builds neighbors if an MPI cartesian topology is used (i.e. not metis).
bool hasMeshBody(KEY_TYPE const &key) const
Check if a MeshBody is present given a name.
~DomainPartition() override
Destructor.
void outputPartitionInformation() const
Outputs information about the partitioning of the domain.
void forMeshBodies(FUNCTION &&function) const
Apply the given functor to all meshBodies.
constitutive::ConstitutiveManager const & getConstitutiveManager() const
Get the constitutive manager, const version.
NumericalMethodsManager const & getNumericalMethodManager() const
DomainPartition(string const &name, Group *const parent)
Constructor.
void setupCommunications(bool use_nonblocking)
Constructs the communications between this DomainPartition and its neighbors.
Group & getMeshBodies()
Get the mesh bodies.
std::vector< NeighborCommunicator > const & getNeighbors() const
Get the neighbor communicators, const version.
MeshBody & getMeshBody(KEY_TYPE const &key)
Get a MeshBody by name.
void forMeshBodiesIndex(FUNCTION &&function) const
Apply the given functor to all meshBodies.
The class is used to manage mesh body.
The ObjectManagerBase is the base object of all object managers in the mesh data hierachy.
void forSubGroupsIndex(LAMBDA &&lambda)
Apply the given functor to subgroups that can be casted to one of specified types.
T & getGroup(KEY const &key)
Return a reference to a sub-group of the current Group.
Group & getParent()
Access the group's parent.
bool hasGroup(string const &name) const
Check whether a sub-group exists.
void forSubGroups(LAMBDA &&lambda)
Apply the given functor to subgroups that can be casted to one of specified types.
Group & operator=(Group const &)=delete
Deleted copy assignment operator.
array1d< string > string_array
A 1-dimensional array of geos::string types.
struct to serve as a container for group strings and keys
dataRepository::GroupKey constitutiveManager
View key to the Group holding the ConstitutiveManager.
static constexpr char const * constitutiveManagerString()
dataRepository::GroupKey meshBodies
View key to the Group holding the MeshBodies.
static constexpr char const * meshBodiesString()
dataRepository::GroupKey communicationManager
View key to the Group holding the CommunicationManager.