20 #ifndef GEOS_MESH_EMBEDDEDSURFACENODEMANAGER_HPP_
21 #define GEOS_MESH_EMBEDDEDSURFACENODEMANAGER_HPP_
23 #include "mesh/generators/CellBlockManagerABC.hpp"
31 class ElementRegionManager;
100 {
return "EmbeddedSurfaceNodeManager"; }
138 integer const & pointGhostRank );
178 bool const overwriteUpMaps,
179 bool const overwriteDownMaps )
override;
316 {
return m_referencePosition; }
324 return m_parentEdgeGlobalIndex;
333 return m_parentEdgeGlobalIndex;
348 template<
bool DO_PACKING >
359 template<
bool DO_PACKING >
368 void nodeExistsOnThisRank(
real64 const (&nodeCoord)[3],
static constexpr localIndex edgeMapExtraSpacePerNode()
Extra space for node to edges mapping.
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...
The EmbeddedSurfaceNodeManager class provides an interface to ObjectManagerBase in order to manage no...
ArrayOfArraysView< localIndex const > elementSubRegionList() const
Provide an immutable arrayView to the nodes-to-elements-subregions relation.
virtual localIndex packUpDownMaps(buffer_unit_type *&buffer, arrayView1d< localIndex const > const &packList) const override
Packs the specific elements in the @ packList.
localIndex unpackNewNodesGlobalMaps(buffer_unit_type const *&buffer, localIndex_array &packList)
Unpacks the global maps from buffer and cleans them up from duplicated nodes.
string getCatalogName() const override final
Provide a virtual access to catalogName().
ArrayOfArrays< localIndex > & elementList()
Get the mutable nodes-to-elements indices.
ArrayOfArrays< localIndex > & elementSubRegionList()
Get the mutable nodes-to-elements-subregions relation.
EdgeMapType const & edgeList() const
Provide an immutable accessor to the nodes-to-edges relation.
static constexpr localIndex edgeMapOverallocation()
return default size of the value array in the node-to-edge mapping
void appendNode(arraySlice1d< real64 const > const &pointCoord, integer const &pointGhostRank)
appends a node to the embeSurfaceNodeManager.
EmbeddedSurfaceNodeManager(string const &name, dataRepository::Group *const parent)
Main constructor for EmbeddedSurfaceNodeManager Objects.
ArrayOfArrays< localIndex > & elementRegionList()
Get the mutable nodes-to-elements-regions relation.
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.
EdgeMapType & edgeList()
Get a mutable accessor to the node-to-edges relation.
arrayView1d< globalIndex const > getParentEdgeGlobalIndex() const
Provide an immutable arrayView of the parent Edge global index position.
localIndex packNewNodesGlobalMapsSize(arrayView1d< localIndex const > const &packList) const
Computes the pack size of the global maps elements in the @ packList.
virtual localIndex packUpDownMapsSize(arrayView1d< localIndex const > const &packList) const override
Computes the pack size of the specific elements in the @ packList.
virtual void resize(localIndex const newsize) override
Resize the EmbeddedSurfaceNodeManager, and all its member vectors that relate nodes to faces,...
array1d< globalIndex > & getParentEdgeGlobalIndex()
Provide an immutable arrayView of the parent Edge global index position.
static string catalogName()
Return the name of the node manager in the object catalog.
localIndex packNewNodesGlobalMaps(buffer_unit_type *&buffer, arrayView1d< localIndex const > const &packList) const
Packs the global maps for the nodes in the @ packList.
arrayView2d< real64 const, nodes::REFERENCE_POSITION_USD > referencePosition() const
Provide an immutable arrayView of the reference position. This table will contain all the node coordi...
array2d< real64, nodes::REFERENCE_POSITION_PERM > & referencePosition()
Get the mutable reference position array. This table will contain all the node coordinates.
InterObjectRelation< ArrayOfSets< localIndex > > EdgeMapType
nodeToEdge map type
ElemMapType & toElementRelation()
Get the nodes-to-elements relation.
void compressRelationMaps()
Compress all EmbeddedSurfaceNodeManager member arrays so that the values of each array are contiguous...
ArrayOfArraysView< localIndex const > elementList() const
Provide an immutable arrayView to the nodes-to-elements indices.
ElemMapType const & toElementRelation() const
Provide a const accessor to the nodes-to-elements relation.
static constexpr localIndex elemMapOverallocation()
return default size of the value array in the node-to-element mapping
void setEdgeMaps(EdgeManager const &edgeManager)
Link the EdgeManager edgeManager to the EmbeddedSurfaceNodeManager, and performs the node-to-edge map...
void setElementMaps(ElementRegionManager const &elementRegionManager)
Assign the ElementRegionManager elementRegionManager to the EmbeddedSurfaceNodeManager,...
OrderedVariableToManyElementRelation ElemMapType
nodeToElement map type
ArrayOfArraysView< localIndex const > elementRegionList() const
Provide an immutable arrayView to the nodes-to-elements-regions relation.
geos::EmbeddedSurfaceNodeManager::viewKeyStruct viewKeys
viewKeys
The ObjectManagerBase is the base object of all object managers in the mesh data hierachy.
BASETYPE m_toElementIndex
The relationship between object indices and element indices.
BASETYPE m_toElementSubRegion
The relationship between object indices and element subregions.
BASETYPE m_toElementRegion
The relationship between object indices and element regions.
Group::wrapperMap::KeyIndex ViewKey
Type alias for KeyIndexT type used for wrapper lookups.
ArrayView< T, 1 > arrayView1d
Alias for 1D array view.
array1d< localIndex > localIndex_array
A 1-dimensional array of geos::localIndex types.
Array< T, 2, PERMUTATION > array2d
Alias for 2D array.
LvArray::ArrayOfArraysView< T, INDEX_TYPE const, CONST_SIZES, LvArray::ChaiBuffer > ArrayOfArraysView
View of array of variable-sized arrays. See LvArray::ArrayOfArraysView for details.
ToElementRelation< ArrayOfArrays< localIndex > > OrderedVariableToManyElementRelation
A ToElementRelation where each object is related to an arbitrary number of elements.
double real64
64-bit floating point type.
GEOS_LOCALINDEX_TYPE localIndex
Local index type (for indexing objects within an MPI partition).
ArraySlice< T, 1, USD > arraySlice1d
Alias for 1D array slice.
std::int32_t integer
Signed integer type.
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.
LvArray::ArrayOfArrays< T, INDEX_TYPE, LvArray::ChaiBuffer > ArrayOfArrays
Array of variable-sized arrays. See LvArray::ArrayOfArrays for details.
contains the added view access keys to be bound with class data member.
static constexpr char const * elementSubRegionListString()
static constexpr char const * elementRegionListString()
dataRepository::ViewKey referencePosition
Accessor to reference position.
static constexpr char const * elementListString()
dataRepository::ViewKey elementSubRegionList
Accessor to element subregion map.
static constexpr char const * edgeListString()
dataRepository::ViewKey parentEdgeGlobalIndex
Accessor to element map.
dataRepository::ViewKey edgeList
Accessor to edge map.
dataRepository::ViewKey elementRegionList
Accessor to element region map.
static constexpr char const * referencePositionString()
static constexpr char const * parentEdgeGlobalIndexString()
dataRepository::ViewKey elementList
Accessor to element map.
struct to serve as a container for variable strings and keys