19 #ifndef GEOSX_MESH_ELEMENTSUBREGIONBASE_HPP_ 20 #define GEOSX_MESH_ELEMENTSUBREGIONBASE_HPP_ 29 class DomainPartition;
30 namespace constitutive
32 class ConstitutiveBase;
76 virtual void CalculateElementGeometricQuantities(
NodeManager const & nodeManager,
87 virtual void setupRelatedObjectsInRelations(
MeshLevel const *
const mesh ) = 0;
122 m_numNodesPerElement = numNodes;
141 m_numIndependentNodesPerElement = numNodes;
156 m_numEdgesPerElement = numEdges;
170 { m_numFacesPerElement = numFaces; }
177 {
return m_elementCenter; }
183 {
return m_elementCenter; }
190 {
return m_elementVolume; }
197 {
return &m_constitutiveModels; }
203 {
return &m_constitutiveModels; }
211 template<
typename T = constitutive::ConstitutiveBase >
214 return m_constitutiveModels.GetGroup< T >( name );
220 template<
typename T = constitutive::ConstitutiveBase >
223 return m_constitutiveModels.GetGroup< T >( name );
239 virtual void SetElementType(
string const & elementType );
245 std::vector< int > getVTKNodeOrdering()
const;
257 static constexpr
auto numNodesPerElementString =
"numNodesPerElement";
259 static constexpr
auto nodeListString =
"nodeList";
261 static constexpr
auto numEdgesPerElementString =
"numEdgesPerElement";
263 static constexpr
auto edgeListString =
"edgeList";
265 static constexpr
auto numFacesPerElementString =
"numFacesPerElement";
267 static constexpr
auto faceListString =
"faceList";
269 static constexpr
auto elementCenterString =
"elementCenter";
271 static constexpr
auto elementVolumeString =
"elementVolume";
281 static constexpr
auto constitutiveModelsString =
"ConstitutiveModels";
arrayView1d< real64 const > getElementVolume() const
Get the volume of each element in this subregion.
virtual void FixUpDownMaps(bool const clearIfUnmapped)
Call ObjectManagerBase::FixUpDownMaps for the connectivity maps needed by the derived class (i...
struct to serve as a container for group strings and keys
localIndex m_numNodesPerElement
Number of nodes per element in this subregion.
Class facilitating the representation of a multi-level discretization of a MeshBody.
void setNumNodesPerElement(localIndex numNodes)
Set the number of nodes per element.
virtual localIndex numNodesPerElement(localIndex const k) const
Get the number of nodes per element.
The NodeManager class provides an interface to ObjectManagerBase in order to manage node data...
localIndex const & numEdgesPerElement() const
Get the number of edges per element.
This class serves to provide a "view" of a multidimensional array.
void setNumIndependentNodesPerElement(localIndex const numNodes)
Set the number of independent nodes per element.
A struct to serve as a container for variable strings and keys.
localIndex const & numFacesPerElement() const
Get the number of faces per element.
The ObjectManagerBase is the base object of all object managers in the mesh data hierachy.
localIndex m_numIndependentNodesPerElement
Number of independent nodes per element in this subregion.
localIndex const & numIndependentNodesPerElement() const
Get the number of independent nodes per element.
T * getConstitutiveModel(string const &name)
Get a pointer to the constitutive model.
array2d< real64 > m_elementCenter
Member level field for the element center.
void setNumEdgesPerElement(localIndex const numEdges)
Set the number of edges per element.
localIndex const & numNodesPerElement() const
Get the number of nodes per element.
struct to serve as a container for group strings and keys
#define GEOSX_UNUSED_VAR(...)
Mark an unused variable and silence compiler warnings.
localIndex m_numEdgesPerElement
Number of edges per element in this subregion.
void setNumFacesPerElement(localIndex const numFaces)
Set the number of faces per element.
std::ptrdiff_t localIndex
Local index type (for indexing objects within an MPI partition).
array1d< real64 > m_elementVolume
Member level field for the element volume.
arrayView2d< real64 const > getElementCenter() const
Get the center of each element in this subregion.
string m_elementTypeString
Type of element in this subregion.
dataRepository::Group const * GetConstitutiveModels() const
Get the group in which the constitutive models of this subregion are registered.
arrayView2d< real64 > getElementCenter()
Get the center of each element in this subregion.
The FaceManager class provides an interface to ObjectManagerBase in order to manage face data...
T const * getConstitutiveModel(string const &name) const
Get a pointer to the constitutive model.
localIndex m_numFacesPerElement
Number of faces per element in this subregion.
dataRepository::Group * GetConstitutiveModels()
Get the group in which the constitutive models of this subregion are registered.
This class provides a fixed dimensional resizeable array interface in addition to an interface simila...
virtual string GetElementTypeString() const
Get the type of element in this subregion.
struct to serve as a container for variable strings and keys