20 #ifndef GEOS_MESH_EMBEDDEDSURFACESUBREGION_HPP_
21 #define GEOS_MESH_EMBEDDEDSURFACESUBREGION_HPP_
28 #include "CellElementSubRegion.hpp"
85 {
return "EmbeddedSurfaceSubRegion"; }
171 bool const overwriteUpMaps,
172 bool const overwriteDownMaps )
override;
241 return m_2dElemToElems;
249 return m_2dElemToElems;
263 template<
bool DO_PACKING >
277 std::vector< struct surfaceWithGhostNodes > m_surfaceWithGhostNodes;
This class provides an interface to ObjectManagerBase in order to manage edge data.
The EmbeddedSurfaceNodeManager class provides an interface to ObjectManagerBase in order to manage no...
OrderedVariableToManyElementRelation const & getToCellRelation() const
Get the surface element to cells map.
virtual localIndex packUpDownMaps(buffer_unit_type *&buffer, arrayView1d< localIndex const > const &packList) const override
Packs the specific elements in the @ packList.
OrderedVariableToManyElementRelation & getToCellRelation()
Get the surface element to cells map.
virtual void setupRelatedObjectsInRelations(MeshLevel const &mesh) override
Link the connectivity maps of the subregion to the managers storing the mesh information.
virtual void calculateElementGeometricQuantities(NodeManager const &nodeManager, FaceManager const &facemanager) override final
Calculate the geometric quantities for each element in the subregion.
virtual localIndex packUpDownMapsSize(arrayView1d< localIndex const > const &packList) const override
Computes the pack size of the specific elements in the @ packList.
real64 computeHeavisideFunction(ArraySlice< real64 const, 1, nodes::REFERENCE_POSITION_USD - 1 > const nodeCoord, localIndex const k) const
Given the coordinates of a node, it computes the Heaviside function iside a cut element with respect ...
std::vector< struct surfaceWithGhostNodes > surfaceWithGhostNodes()
accessor to the m_surfaceWithGhostNodes list
void inheritGhostRank(array1d< array1d< arrayView1d< integer const > > > const &cellGhostRank)
inherit ghost rank from cell elements.
arrayView1d< real64 > getConnectivityIndex()
Get the connectivity index of the embedded surface element.
virtual string getCatalogName() const override
Get catalog name.
arrayView1d< real64 const > getConnectivityIndex() const
Get the connectivity index of the embedded surface element.
localIndex & numOfJumpEnrichments()
Get number of jump enrichments.
geos::EmbeddedSurfaceSubRegion::viewKeyStruct viewKeys
viewKey struct for the EmbeddedSurfaceSubRegion class
virtual localIndex unpackUpDownMaps(buffer_unit_type const *&buffer, array1d< localIndex > &packList, bool const overwriteUpMaps, bool const overwriteDownMaps) override
Unpacks the specific elements in the @ packList.
void calculateElementGeometricQuantities(arrayView2d< real64 const > const intersectionPoints, localIndex k)
Function to compute the geometric quantities of a specific embedded surface element.
string const & getFractureName(localIndex k) const
Get the name of the bounding plate that was used to generate fracture element k.
localIndex const & numOfJumpEnrichments() const
Get number of jump enrichments.
EmbeddedSurfaceSubRegion(string const &name, dataRepository::Group *const parent)
Constructor.
bool addNewEmbeddedSurface(localIndex const cellIndex, localIndex const regionIndex, localIndex const subRegionIndex, NodeManager const &nodeManager, EmbeddedSurfaceNodeManager &embSurfNodeManager, EdgeManager const &edgeManager, FixedOneToManyRelation const &cellToEdges, PlanarGeometricObject const *fracture)
Function to add a new embedded surface element.
static string catalogName()
Get catalog name.
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.
The NodeManager class provides an interface to ObjectManagerBase in order to manage node data.
Abstract class to implement functions used by all bounded geometric objects in GEOSX,...
ArrayView< T, 1 > arrayView1d
Alias for 1D array view.
GEOS_GLOBALINDEX_TYPE globalIndex
Global index type (for indexing objects across MPI partitions).
double real64
64-bit floating point type.
GEOS_LOCALINDEX_TYPE localIndex
Local index type (for indexing objects within an MPI partition).
InterObjectRelation< array2d< localIndex > > FixedOneToManyRelation
A relationship from single objects to many other objects, where each object is related to the same nu...
LvArray::ArraySlice< T, NDIM, USD, localIndex > ArraySlice
Multidimensional array slice type. See LvArray:ArraySlice for details.
signed char buffer_unit_type
Type stored in communication buffers.
ArrayView< T, 2, USD > arrayView2d
Alias for 2D array view.
Array< T, 1 > array1d
Alias for 1D array.
Struct containing the keys to all embedded surface element views.
static constexpr char const * surfaceWithGhostNodesString()
static constexpr char const * connectivityIndexString()
Struct containing the keys to all surface element views.
Struct defining an embedded element which has at least on node which is a ghost on this rank.
localIndex numOfNodes
number of nodes of the element
std::vector< globalIndex > parentEdgeIndex
index of the parent edge of each node
void insert(globalIndex const &edgeIndex)
insert a new node
localIndex surfaceIndex
local index of the surface element
surfaceWithGhostNodes()
Constructor.