20 #ifndef GEOS_MESH_SURFACEELEMENTSUBREGION_HPP_
21 #define GEOS_MESH_SURFACEELEMENTSUBREGION_HPP_
27 #include "CellElementSubRegion.hpp"
58 {
return "SurfaceElementSubRegion"; }
localIndex const & numNodesPerElement() const
Get the number of nodes per element.
void calculateElementCenters(NODE_MAP const &toNodesRelation, arrayView2d< real64 const, nodes::REFERENCE_POSITION_USD > const &X) const
Compute the center of each element in the subregion.
void calculateElementCenters(arrayView2d< real64 const, nodes::REFERENCE_POSITION_USD > const &X) const
Compute the center of each element in the subregion.
arrayView2d< real64 const > getNormalVector() const
Const accessor to the normal vectors.
arrayView1d< real64 > getElementArea()
Get face element surface area.
EdgeMapType const & edgeList() const
Get the surface element to edges map.
array1d< real64 > m_elementAperture
Member level field for the element center.
NodeMapType m_toNodesRelation
list of nodes
map< localIndex, array1d< globalIndex > > m_unmappedGlobalIndicesInToNodes
Unmapped surface elements to nodes map.
arrayView1d< real64 const > getElementAperture() const
Get face element aperture.
arrayView2d< real64 const > getTangentVector2() const
Get an array of the second tangent vector of the surface elements.
SurfaceElementSubRegion(string const &name, dataRepository::Group *const parent)
Constructor.
static string catalogName()
Get catalog name.
OrderedVariableToManyElementRelation m_2dElemToElems
Map between the surface elements and the cells.
localIndex numNodesPerElement(localIndex const k) const final
Get the number of nodes per element.
arrayView2d< real64 const > getTangentVector1() const
Get an array of the first tangent vector of the surface elements.
virtual ~SurfaceElementSubRegion() override
Destructor.
localIndex const & nodeList(localIndex const k, localIndex a) const
Get the local index of the a-th node of the k-th element.
array1d< real64 > m_elementArea
Member level field for the element center.
arrayView2d< real64 > getNormalVector()
Non const accessor to the normal vectors.
arrayView1d< real64 > getElementAperture()
Get face element aperture.
arrayView1d< real64 const > getElementArea() const
Get face element surface area.
arrayView2d< real64 > getTangentVector1()
Get an array of the first tangent vector of the surface elements.
localIndex & nodeList(localIndex const k, localIndex a)
Get the local index of the a-th node of the k-th element.
array2d< real64 > m_tangentVector1
Unit vector indicating the first tangential direction.
array2d< real64 > m_tangentVector2
Unit vector indicating the second tangential direction.
OrderedVariableToManyElementRelation & getToCellRelation()
Get the surface element to cells map.
EdgeMapType & edgeList()
Get the surface element to edges map.
arraySlice1d< real64 const > getNormalVector(localIndex k) const
Get normal vector of a specific surface element.
EdgeMapType m_toEdgesRelation
list of edges
NodeMapType & nodeList()
Get the face element to nodes map.
arraySlice1d< real64 const > getTangentVector1(localIndex const k) const
Get the first tangent vector of a specific surface element.
virtual string getCatalogName() const override
Get catalog name.
NodeMapType const & nodeList() const
Get the face element to nodes map.
arrayView2d< real64 > getTangentVector2()
Get an array of the first tangent vector of the surface elements.
array2d< real64 > m_normalVector
Normal vector to the surface element.
arraySlice1d< real64 const > getTangentVector2(localIndex const k) const
Get the second tangent vector of a specific surface element.
OrderedVariableToManyElementRelation const & getToCellRelation() const
Get the surface element to cells map.
Base template for ordered and unordered maps.
ArrayView< T, 1 > arrayView1d
Alias for 1D array view.
Array< T, 2, PERMUTATION > array2d
Alias for 2D array.
GEOS_LOCALINDEX_TYPE localIndex
Local index type (for indexing objects within an MPI partition).
ArraySlice< T, 1, USD > arraySlice1d
Alias for 1D array slice.
ArrayView< T, 2, USD > arrayView2d
Alias for 2D array view.
Array< T, 1 > array1d
Alias for 1D array.
A struct to serve as a container for variable strings and keys.
Struct containing the keys to all surface element views.
static constexpr char const * surfaceElementsToCellSubRegionsString()
static constexpr char const * surfaceElementsToCellIndexString()
static constexpr char const * surfaceElementsToCellRegionsString()
constexpr static char const * surfaceElementToParentPlaneString()