20 #ifndef GEOS_MESH_MESHLEVEL_HPP_
21 #define GEOS_MESH_MESHLEVEL_HPP_
32 class ElementRegionManager;
51 Group *
const parent );
112 struct viewStructKeys
119 struct groupStructKeys
124 static constexpr
char const * nodeManagerString() {
return "nodeManager"; }
125 static constexpr
char const * edgeManagerString() {
return "edgeManager"; }
126 static constexpr
char const * faceManagerString() {
return "faceManager"; }
129 static constexpr
char const * elemManagerString() {
return "ElementRegions"; }
130 static constexpr
char const * particleManagerString() {
return "ParticleRegions"; }
132 static constexpr
auto embSurfNodeManagerString =
"embeddedSurfacesNodeManager";
133 static constexpr
auto embSurfEdgeManagerString =
"embeddedSurfacesEdgeManager";
156 {
return *m_nodeManager; }
162 {
return *m_nodeManager; }
169 {
return *m_particleManager; }
175 {
return *m_particleManager; }
182 {
return *m_edgeManager; }
188 {
return *m_edgeManager; }
195 {
return *m_faceManager; }
201 {
return *m_faceManager; }
208 {
return *m_elementManager; }
214 {
return *m_elementManager; }
221 {
return *m_embSurfNodeManager; }
227 {
return *m_embSurfNodeManager; }
234 {
return *m_embSurfEdgeManager; }
240 {
return *m_embSurfEdgeManager; }
247 {
return m_modificationTimestamp; }
253 { m_modificationTimestamp++; }
259 {
return m_isShallowCopy; }
306 bool const m_isShallowCopy =
false;
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...
array1d< array1d< VIEWTYPE > > ElementViewAccessor
The ElementViewAccessor at the ElementRegionManager level is an array of array of VIEWTYPE.
The EmbeddedSurfaceNodeManager class provides an interface to ObjectManagerBase in order to manage no...
The FaceManager class provides an interface to ObjectManagerBase in order to manage face data.
Class facilitating the representation of a multi-level discretization of a MeshBody.
EdgeManager const & getEmbSurfEdgeManager() const
Get the edge Manager related to the embedded surfaces grid.
virtual void initializePostInitialConditionsPostSubGroups() override
Called by InitializePostInitialConditions() after to initializing sub-Groups.
EdgeManager & getEdgeManager()
Get the edge manager.
EmbeddedSurfaceNodeManager & getEmbSurfNodeManager()
Get the node Manager of the embedded surfaces grid.
NodeManager const & getNodeManager() const
Get the node manager.
NodeManager & getNodeManager()
Get the node manager.
FaceManager const & getFaceManager() const
Get the face manager.
ParticleManager const & getParticleManager() const
Get the particle manager.
bool isShallowCopyOf(MeshLevel const &comparisonLevel) const
Determines if this->MeshLevel is a shallow copy of the input.
ElementRegionManager const & getElemManager() const
Get the element region manager.
EmbeddedSurfaceNodeManager const & getEmbSurfNodeManager() const
Get the node Manager of the embedded surfaces grid.
EdgeManager & getEmbSurfEdgeManager()
Get the edge Manager related to the embedded surfaces grid.
FaceManager & getFaceManager()
Get the face manager.
void generateAdjacencyLists(arrayView1d< localIndex const > const &seedNodeList, localIndex_array &nodeAdjacencyList, localIndex_array &edgeAdjacencyList, localIndex_array &faceAdjacencyList, ElementRegionManager::ElementViewAccessor< ReferenceWrapper< localIndex_array > > &elementAdjacencyList, integer const depth)
Collects the nodes, edges, faces, and elements that are adjacent to a given list of nodes.
void modified()
Increment the modification timestamp if the mesh has been modified.
ParticleManager & getParticleManager()
Get the particle manager.
MeshLevel & getShallowParent()
If this is a shallow clone of another MeshLevel, then return the source MeshLevel.
MeshLevel(string const &name, Group *const parent, MeshLevel const &source, int const order)
Constructor for the MeshLevel object.
Timestamp getModificationTimestamp() const
Getter for the modification timestamp.
ElementRegionManager & getElemManager()
Get the element region manager.
EdgeManager const & getEdgeManager() const
Get the edge manager.
MeshLevel(string const &name, Group *const parent)
Constructor for the MeshLevel object.
MeshLevel(string const &name, Group *const parent, MeshLevel &source)
Constructor to create a shallow MeshLevel.
MeshLevel const & getShallowParent() const
If this is a shallow clone of another MeshLevel, then return the source MeshLevel.
bool isShallowCopy() const
void generateSets()
Generate the sets for the objects within a MeshLevel.
The NodeManager class provides an interface to ObjectManagerBase in order to manage node data.
The ParticleManager class provides an interface to ObjectManagerBase in order to manage ParticleRegio...
Group::wrapperMap::KeyIndex ViewKey
Type alias for KeyIndexT type used for wrapper lookups.
Group::subGroupMap::KeyIndex GroupKey
Type alias for KeyIndexT type used for sub-group lookups.
ArrayView< T, 1 > arrayView1d
Alias for 1D array view.
array1d< localIndex > localIndex_array
A 1-dimensional array of geos::localIndex types.
unsigned long long int Timestamp
Timestamp type (used to perform actions such a sparsity pattern computation after mesh modifications)
std::int32_t integer
Signed integer type.