16 #ifndef GEOS_CELLBLOCKABC_HPP
17 #define GEOS_CELLBLOCKABC_HPP
49 Group *
const parent )
120 template<
typename LAMBDA >
123 for(
auto * wrapperBase: this->getExternalProperties() )
125 lambda( *wrapperBase );
140 virtual std::list< dataRepository::WrapperBase const * > getExternalProperties()
const = 0;
virtual localIndex numElements() const =0
Get the number of elements.
void forExternalProperties(LAMBDA &&lambda) const
Helper function to apply a lambda function over all the external properties of the subregion.
virtual localIndex numEdgesPerElement() const =0
Get the number of edges per element.
virtual localIndex numNodesPerElement() const =0
Get the number of nodes per element.
virtual array1d< globalIndex > localToGlobalMap() const =0
Get local to global map.
virtual array2d< localIndex > getElemToFaces() const =0
Get the element-to-faces map.
virtual array2d< localIndex, cells::NODE_MAP_PERMUTATION > getElemToNodes() const =0
Get the element-to-nodes map.
virtual ElementType getElementType() const =0
Get the type of element in this subregion.
virtual localIndex numFacesPerElement() const =0
Get the number of faces per element.
CellBlockABC(string const &name, Group *const parent)
Constructor.
virtual array2d< localIndex > getElemToEdges() const =0
Get the element-to-edges map.
Array< T, 2, PERMUTATION > array2d
Alias for 2D array.
GEOS_LOCALINDEX_TYPE localIndex
Local index type (for indexing objects within an MPI partition).
ElementType
Denotes type of cell/element shape.
Array< T, 1 > array1d
Alias for 1D array.