GEOSX
FaceBlockABC.hpp
1 /*
2  * ------------------------------------------------------------------------------------------------------------
3  * SPDX-License-Identifier: LGPL-2.1-only
4  *
5  * Copyright (c) 2018-2020 Lawrence Livermore National Security LLC
6  * Copyright (c) 2018-2020 The Board of Trustees of the Leland Stanford Junior University
7  * Copyright (c) 2018-2020 Total, S.A
8  * Copyright (c) 2020- GEOSX Contributors
9  * All right reserved
10  *
11  * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details.
12  * ------------------------------------------------------------------------------------------------------------
13  */
14 
15 #ifndef GEOS_FACEBLOCKABC_HPP
16 #define GEOS_FACEBLOCKABC_HPP
17 
18 #include "CellBlockUtilities.hpp"
19 #include "dataRepository/Group.hpp"
20 #include "common/DataTypes.hpp"
21 
22 namespace geos
23 {
24 
38 {
39 public:
45  FaceBlockABC( string const & name,
46  Group * const parent ):
47  Group( name, parent )
48  { }
49 
54  virtual localIndex num2dElements() const = 0;
55 
60  virtual localIndex num2dFaces() const = 0;
61 
73 
93 
107 
122 
137 
159 
166 
172 };
173 
174 }
175 
176 #endif // include guard
Block of 2d elements (geometrical surfaces in 3d).
virtual ArrayOfArrays< localIndex > get2dFaceTo2dElems() const =0
Get the 2d element(s) (geometrical surfaces in 3d) connected to each 2d face (geometrical 3d segment)...
virtual localIndex num2dFaces() const =0
Get the number of 2d faces (geometrical segments in 3d).
virtual ArrayOfArrays< localIndex > get2dElemToEdges() const =0
Get the 3d edges of each 2d element (geometrical surfaces in 3d).
virtual ArrayOfArrays< localIndex > get2dElemToNodes() const =0
Get the nodes of each 2d element (geometrical surfaces in 3d).
virtual array1d< globalIndex > localToGlobalMap() const =0
Get local to global map for the 2d elements.
virtual ArrayOfArrays< array1d< globalIndex > > get2dElemsToCollocatedNodesBuckets() const =0
Returns the collocated nodes for each node of each 2d element of the FaceBlockABC.
virtual ToCellRelation< ArrayOfArrays< localIndex > > get2dElemToElems() const =0
Get the 3d elements that are aside each 2d element (geometrical surfaces in 3d) of the FaceBlockABC.
virtual ArrayOfArrays< localIndex > get2dElemToFaces() const =0
Get the 3d faces (of the volumic mesh) that are aside each 2d element (geometrical surfaces in 3d) of...
virtual array1d< localIndex > get2dFaceToEdge() const =0
Get one 3d edge equivalent for each 2d faces (geometrical edges in 3d).
FaceBlockABC(string const &name, Group *const parent)
Constructor.
virtual localIndex num2dElements() const =0
Get the number of 2d elements (geometrical surfaces in 3d).
GEOSX_LOCALINDEX_TYPE localIndex
Local index type (for indexing objects within an MPI partition).
Definition: DataTypes.hpp:125
Array< T, 1 > array1d
Alias for 1D array.
Definition: DataTypes.hpp:216
LvArray::ArrayOfArrays< T, INDEX_TYPE, LvArray::ChaiBuffer > ArrayOfArrays
Array of variable-sized arrays. See LvArray::ArrayOfArrays for details.
Definition: DataTypes.hpp:322
Container for maps from a mesh object (node, edge or face) to cells.