16 #ifndef GEOS_CELLBLOCKMANAGERABC_HPP
17 #define GEOS_CELLBLOCKMANAGERABC_HPP
19 #include "CellBlockUtilities.hpp"
21 #include "LineBlockABC.hpp"
214 virtual std::map< string, SortedArray< localIndex > >
const &
getNodeSets()
const = 0;
Abstract base class for CellBlockManager.
virtual ArrayOfArrays< localIndex > getNodeToEdges() const =0
Returns the node to edges mapping.
virtual LineBlockABC const & getLineBlock(string name) const =0
Returns LineBlockABC corresponding to the given identifier.
virtual localIndex numNodes() const =0
Total number of nodes across all the cell blocks.
virtual Group & getFaceBlocks()=0
Returns a group containing the face blocks as FaceBlockABC instances.
virtual array2d< localIndex > getEdgeToNodes() const =0
Returns the edge to nodes mapping.
static constexpr localIndex elemMapExtraSpacePerNode()
Extra space for node to elements mapping.
virtual ArrayOfArrays< localIndex > getFaceToNodes() const =0
Returns the face to nodes mapping.
virtual real64 getGlobalLength() const =0
Getter for the global length.
CellBlockManagerABC(string const &name, Group *const parent)
Constructor.
virtual ToCellRelation< ArrayOfArrays< localIndex > > getNodeToElements() const =0
Returns the node to elements mapping.
static constexpr localIndex edgeMapExtraSpacePerNode()
Extra space for node to edges mapping.
virtual ToCellRelation< array2d< localIndex > > getFaceToElements() const =0
Returns the face to elements mapping.
virtual Group const & getCellBlocks() const =0
Returns a group containing the cell blocks as CellBlockABC instances.
static constexpr localIndex edgeMapExtraSpacePerFace()
Extra space for extra faces.
virtual array1d< globalIndex > getNodeLocalToGlobal() const =0
The node to global mapping for nodes.
virtual ArrayOfArrays< localIndex > getFaceToEdges() const =0
Returns the face to edges mapping.
static constexpr localIndex nodeMapExtraSpacePerFace()
Extra space for extra nodes.
virtual Group & getCellBlocks()=0
Returns a group containing the cell blocks as CellBlockABC instances.
static constexpr localIndex faceMapExtraSpacePerNode()
Extra space for node to faces mapping.
virtual Group const & getFaceBlocks() const =0
Returns a group containing the face blocks as FaceBlockABC instances.
virtual ArrayOfArrays< localIndex > getNodeToFaces() const =0
Returns the face to nodes mappings.
virtual ArrayOfArrays< localIndex > getEdgeToFaces() const =0
Returns the edge to faces mapping.
virtual array2d< real64, nodes::REFERENCE_POSITION_PERM > getNodePositions() const =0
Returns the node coordinates in a (numNodes, 3) 2d array.
virtual std::map< integer, std::set< string > > const & getRegionAttributesCellBlocks() const =0
virtual localIndex numFaces() const =0
Total number of faces across all the cell blocks.
virtual localIndex numEdges() const =0
Total number of edges across all the cell blocks.
virtual std::map< string, SortedArray< localIndex > > const & getNodeSets() const =0
Returns the node sets. Key of the map is the name of the set.
static constexpr localIndex faceMapExtraSpacePerEdge()
Extra space for extra edges.
virtual void generateHighOrderMaps(localIndex const order, globalIndex const maxVertexGlobalID, globalIndex const maxEdgeGlobalID, globalIndex const maxFaceGlobalID, arrayView1d< globalIndex const > const edgeLocalToGlobal, arrayView1d< globalIndex const > const faceLocalToGlobal)=0
Generates in place the high-order maps for this cell block manager.
ArrayView< T, 1 > arrayView1d
Alias for 1D array view.
Array< T, 2, PERMUTATION > array2d
Alias for 2D array.
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).
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.
Container for maps from a mesh object (node, edge or face) to cells.