GEOS
FaceBlockABC.hpp
1 /*
2  * ------------------------------------------------------------------------------------------------------------
3  * SPDX-License-Identifier: LGPL-2.1-only
4  *
5  * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC
6  * Copyright (c) 2018-2024 TotalEnergies
7  * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University
8  * Copyright (c) 2023-2024 Chevron
9  * Copyright (c) 2019- GEOS/GEOSX Contributors
10  * All rights reserved
11  *
12  * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details.
13  * ------------------------------------------------------------------------------------------------------------
14  */
15 
16 #ifndef GEOS_FACEBLOCKABC_HPP
17 #define GEOS_FACEBLOCKABC_HPP
18 
19 #include "CellBlockUtilities.hpp"
20 #include "dataRepository/Group.hpp"
21 #include "common/DataTypes.hpp"
22 
23 namespace geos
24 {
25 
39 {
40 public:
46  FaceBlockABC( string const & name,
47  Group * const parent ):
48  Group( name, parent )
49  { }
50 
55  virtual localIndex num2dElements() const = 0;
56 
61  virtual localIndex num2dFaces() const = 0;
62 
74 
94 
108 
123 
138 
160 
167 
173 };
174 
175 }
176 
177 #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).
GEOS_LOCALINDEX_TYPE localIndex
Local index type (for indexing objects within an MPI partition).
Definition: DataTypes.hpp:85
Array< T, 1 > array1d
Alias for 1D array.
Definition: DataTypes.hpp:176
LvArray::ArrayOfArrays< T, INDEX_TYPE, LvArray::ChaiBuffer > ArrayOfArrays
Array of variable-sized arrays. See LvArray::ArrayOfArrays for details.
Definition: DataTypes.hpp:282
Container for maps from a mesh object (node, edge or face) to cells.