19 #ifndef GEOSX_MESH_NODEMANAGER_HPP_ 20 #define GEOSX_MESH_NODEMANAGER_HPP_ 35 class ElementRegionManager;
138 {
return "NodeManager"; }
214 bool const overwriteUpMaps,
215 bool const overwriteDownMaps )
override;
401 {
return m_toElements.m_toElementIndex.toViewConst(); }
416 {
return m_referencePosition; }
424 {
return m_embeddedSurfNodesPosition; }
431 {
return m_embeddedSurfNodesPosition; }
439 {
return getReference< array2d< real64, nodes::TOTAL_DISPLACEMENT_PERM > >(
viewKeys.totalDisplacement ); }
447 {
return getReference< array2d< real64, nodes::TOTAL_DISPLACEMENT_PERM > >(
viewKeys.totalDisplacement ); }
455 {
return getReference< array2d< real64, nodes::INCR_DISPLACEMENT_PERM > >(
viewKeys.incrementalDisplacement ); }
463 {
return getReference< array2d< real64, nodes::INCR_DISPLACEMENT_PERM > >(
viewKeys.incrementalDisplacement ); }
471 {
return getReference< array2d< real64, nodes::VELOCITY_PERM > >(
viewKeys.velocity ); }
479 {
return getReference< array2d< real64, nodes::VELOCITY_PERM > >(
viewKeys.velocity ); }
487 {
return getReference< array2d< real64, nodes::ACCELERATION_PERM > >(
viewKeys.acceleration ); }
495 {
return getReference< array2d< real64, nodes::ACCELERATION_PERM > >(
viewKeys.acceleration ); }
509 template<
bool DOPACK >
544 #endif // MESH_NODEMANAGER_HPP_ dataRepository::ViewKey elementRegionList
String to access the element region map.
static constexpr auto totalDisplacementString
String to access the displacement.
dataRepository::ViewKey incrementalDisplacement
String to access the incremental displacement.
virtual void resize(localIndex const newsize) override
Resize the NodeManager, and all its member vectors that relate nodes to faces, to edges...
arrayView2d< real64 const, nodes::VELOCITY_USD > velocity() const
Provide an immutable arrayView to the velocity array.
NodeManager(std::string const &name, dataRepository::Group *const parent)
Main constructor for NodeManager Objects.
ElemMapType const & toElementRelation() const
Provide a const accessor to the nodes-to-elements relation.
struct to serve as a container for group strings and keys
ElemMapType & toElementRelation()
Get the nodes-to-elements relation.
void CompressRelationMaps()
Compress all NodeManager member arrays so that the values of each array are contiguous with no extra ...
array2d< real64, nodes::VELOCITY_PERM > & velocity()
Get a mutable velocity array.
dataRepository::ViewKey totalDisplacement
String to access the displacement.
array2d< real64, nodes::REFERENCE_POSITION_PERM > & referencePosition()
Get the mutable reference position array. This table will contain all the node coordinates.
localIndex getFaceMapOverallocation()
return default size of the value in the node-to-face mapping
ArrayOfArraysView< localIndex const > elementSubRegionList() const
Provide an immutable arrayView to the nodes-to-elements-subregions relation.
The NodeManager class provides an interface to ObjectManagerBase in order to manage node data...
Base template for ordered and unordered maps.
static constexpr auto elementSubRegionListString
String to access the element subregion map.
static constexpr auto elementRegionListString
String to access the element region map.
dataRepository::ViewKey referencePosition
String to access the reference position.
array2d< real64, nodes::REFERENCE_POSITION_PERM > & embSurfNodesPosition()
Return the reference position array of the nodes of the embedded surfaces.
Group & operator=(Group const &)=delete
Deleted copy assignment operator.
const string getCatalogName() const override final
Provide a virtual access to CatalogName().
This class serves to provide a "view" of a multidimensional array.
void depopulateUpMaps(std::set< localIndex > const &receivedNodes, array2d< localIndex > const &edgesToNodes, ArrayOfArraysView< localIndex const > const &facesToNodes, ElementRegionManager const &elemRegionManager)
Clean up the mappings between nodes and edges, faces, elements based on a new (updated) list of nodes...
ArrayOfArrays< localIndex > & elementRegionList()
Get the mutable nodes-to-elements-regions relation.
A relationship to an element.
static constexpr auto edgeListString
String to access the edge map.
static string CatalogName()
Return the name of the node manager in the object catalog.
The ObjectManagerBase is the base object of all object managers in the mesh data hierachy.
localIndex getElemMapOverAllocation()
return default size of the value array in the node-to-element mapping
void FixUpDownMaps(bool const clearIfUnmapped)
Call FixUpDownMaps for nodes-to-edges and nodes-to-faces maps.
Group::wrapperMap::KeyIndex ViewKey
Type alias for KeyIndexT type used for wrapper lookups.
FaceMapType const & faceList() const
Provide a const accessor to the nodes-to-faces relation.
virtual groupKeyStruct & groupKeys()
Get the group keys for Group access.
This class provides a view into an array of arrays like object.
ToElementRelation< ArrayOfArrays< localIndex > > OrderedVariableToManyElementRelation
A ToElementRelation where each object is related to an arbitrary number of elements.
EdgeMapType const & edgeList() const
Provide an immutable accessor to the nodes-to-edges relation.
ArrayOfArrays< localIndex > & elementSubRegionList()
Get the mutable nodes-to-elements-subregions relation.
array2d< real64, nodes::INCR_DISPLACEMENT_PERM > & incrementalDisplacement()
Get a mutable incremental displacement array.
dataRepository::ViewKey faceList
String to access the face map.
void SetEdgeMaps(EdgeManager const *const edgeManager)
Link the EdgeManager edgeManager to the NodeManager, and performs the node-to-edge mapping...
dataRepository::ViewKey edgeList
String to access the edge map.
virtual viewKeyStruct & viewKeys()
Get the view keys for Group access.
virtual void ViewPackingExclusionList(SortedArray< localIndex > &exclusionList) const override
Creates an array listing all excluded local indices values.
virtual localIndex UnpackUpDownMaps(buffer_unit_type const *&buffer, localIndex_array &packList, bool const overwriteUpMaps, bool const overwriteDownMaps) override
Unpack a buffer to an array of node indices.
signed char buffer_unit_type
Type stored in communication buffers.
ArrayOfArrays< localIndex > & elementList()
Get the mutable nodes-to-elements indices.
arrayView2d< real64 const, nodes::TOTAL_DISPLACEMENT_USD > totalDisplacement() const
Provide an immutable arrayView to the total displacement array.
ArrayOfArraysView< localIndex const > elementList() const
Provide an immutable arrayView to the nodes-to-elements indices.
static constexpr auto faceListString
String to access the face map.
FaceMapType & faceList()
Get the nodes-to-faces relation.
~NodeManager() override
The default NodeManager destructor.
This class provides an interface to ObjectManagerBase in order to manage edge data.
dataRepository::ViewKey velocity
String to access the velocity.
dataRepository::ViewKey elementList
String to access the element map.
virtual localIndex PackUpDownMapsSize(arrayView1d< localIndex const > const &packList) const override
Calculate the size that a list would have if it were packed, but without actually packing it...
array2d< real64, nodes::ACCELERATION_PERM > & acceleration()
Get a mutable acceleration array.
virtual localIndex PackUpDownMaps(buffer_unit_type *&buffer, arrayView1d< localIndex const > const &packList) const override
Packs an array of node indices into a buffer.
std::ptrdiff_t localIndex
Local index type (for indexing objects within an MPI partition).
arrayView2d< real64 const, nodes::INCR_DISPLACEMENT_USD > incrementalDisplacement() const
Provide an immutable arrayView to the incremental displacement array.
static constexpr auto referencePositionString
String to access the reference position.
void SetFaceMaps(FaceManager const *const faceManager)
Link the FaceManager faceManager to the NodeManager, and performs the node-to-face mapping...
std::string string
String type.
The ElementRegionManager class provides an interface to ObjectManagerBase in order to manage ElementR...
array2d< real64, nodes::TOTAL_DISPLACEMENT_PERM > & totalDisplacement()
Get a mutable total displacement array.
arrayView2d< real64 const, nodes::REFERENCE_POSITION_USD > embSurfNodesPosition() const
Return an immutable arrayView of the position.
The FaceManager class provides an interface to ObjectManagerBase in order to manage face data...
void SetElementMaps(ElementRegionManager const *const elementRegionManager)
Assign the ElementRegionManager elementRegionManager to the NodeManager, and performs the node-to-ele...
EdgeMapType & edgeList()
Get a mutable accessor to the node-to-edges relation.
arrayView2d< real64 const, nodes::ACCELERATION_USD > acceleration() const
Provide an immutable arrayView to the acceleration array.
contains the added view access keys to be bound with class data member.
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...
This class provides a fixed dimensional resizeable array interface in addition to an interface simila...
static constexpr auto elementListString
String to access the element map.
static constexpr auto incrementalDisplacementString
String to access the incremental displacement.
struct to serve as a container for variable strings and keys
localIndex getEdgeMapOverallocation()
return default size of the value array in the node-to-edge mapping
dataRepository::ViewKey acceleration
String to access the acceleration.
ArrayOfArraysView< localIndex const > elementRegionList() const
Provide an immutable arrayView to the nodes-to-elements-regions relation.
dataRepository::ViewKey elementSubRegionList
String to access the element subregion map.
static constexpr auto EmbSurfNodesPositionString
String to access the location of the nodes.