GEOS
LineBlockABC.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 Total, S.A
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_WELLBLOCKABC_HPP
17 #define GEOS_WELLBLOCKABC_HPP
18 
19 #include "dataRepository/Group.hpp"
20 #include "common/DataTypes.hpp"
21 
22 #include <vector>
23 
24 namespace geos
25 {
26 
34 {
35 public:
36 
40  struct NodeLocation
41  {
42  static constexpr integer TOP = 0;
43  static constexpr integer BOTTOM = 1;
44  };
45 
51  LineBlockABC( string const & name,
52  Group * const parent )
53  :
54  Group( name, parent )
55  { }
56 
61 
62  // getters for element data
63 
68  virtual globalIndex numElements() const = 0;
69 
75 
81 
87 
93 
99 
104  virtual real64 getElementRadius() const = 0;
105 
106  // getters for node data
107 
112  virtual globalIndex numNodes() const = 0;
113 
119 
120 
121 
122  // getters for perforation data
123 
128  virtual globalIndex numPerforations() const = 0;
129 
135 
141 
147 
153 
158  virtual string const & getWellControlsName() const = 0;
159 
164  virtual string const & getWellGeneratorName() const = 0;
165 };
166 
167 }
168 
169 #endif //GEOS_WELLBLOCKABC_HPP
virtual arrayView1d< real64 const > getPerfTransmissibility() const =0
Get the well transmissibility at the perforations.
virtual globalIndex numElements() const =0
Get the global number of well elements.
virtual arrayView1d< real64 const > getPerfSkinFactor() const =0
Get the well skin factor at the perforations.
virtual globalIndex numNodes() const =0
Get the global number of well nodes.
virtual arrayView2d< globalIndex const > getElemToNodesMap() const =0
Get the global indices of the well nodes nodes connected to each element.
virtual arrayView1d< globalIndex const > getNextElemIndex() const =0
Get the global indices mapping an element to the next.
virtual arrayView1d< arrayView1d< globalIndex const > const > getPrevElemIndices() const =0
Get the global indices mapping an element to the previous ones.
virtual arrayView1d< globalIndex const > getPerfElemIndex() const =0
Get the global indices of the well elements connected to each perforation.
virtual arrayView2d< real64 const > getElemCoords() const =0
Get the physical location of the centers of well elements.
virtual string const & getWellGeneratorName() const =0
Get the well generator name.
virtual arrayView1d< real64 const > getElemVolume() const =0
Get the volume of the well elements.
LineBlockABC(string const &name, Group *const parent)
Constructor.
virtual arrayView2d< real64 const > getNodeCoords() const =0
Get the physical location of the centers of well elements.
virtual arrayView2d< real64 const > getPerfCoords() const =0
Get the locations of the perforations.
virtual string const & getWellControlsName() const =0
Get the well controls name.
virtual real64 getElementRadius() const =0
Get the radius in the well.
virtual globalIndex numPerforations() const =0
Get the global number of perforations on this well.
ArrayView< T, 1 > arrayView1d
Alias for 1D array view.
Definition: DataTypes.hpp:180
GEOS_GLOBALINDEX_TYPE globalIndex
Global index type (for indexing objects across MPI partitions).
Definition: DataTypes.hpp:88
double real64
64-bit floating point type.
Definition: DataTypes.hpp:99
std::int32_t integer
Signed integer type.
Definition: DataTypes.hpp:82
ArrayView< T, 2, USD > arrayView2d
Alias for 2D array view.
Definition: DataTypes.hpp:196
Struct to define the top and bottom node of a segment.
static constexpr integer TOP
static constexpr integer BOTTOM