GEOS
Perforation.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 /*
17  * @file Perforation.hpp
18  */
19 
20 #ifndef GEOS_MESH_PERFORATION_HPP
21 #define GEOS_MESH_PERFORATION_HPP
22 
23 #include "dataRepository/Group.hpp"
25 namespace geos
26 {
27 
34 {
35 public:
40 
46  explicit Perforation( string const & name, dataRepository::Group * const parent );
47 
51  ~Perforation() override;
52 
56  Perforation() = delete;
57 
61  Perforation( Perforation const & ) = delete;
62 
66  Perforation( Perforation && ) = delete;
67 
72  Perforation & operator=( Perforation const & ) = delete;
73 
78  Perforation & operator=( Perforation && ) = delete;
79 
81 
86 
91  real64 const & getDistanceFromWellHead() const { return m_distanceFromHead; }
92 
97  real64 getWellTransmissibility() const { return m_wellTransmissibility; }
98 
103  real64 getWellSkinFactor() const { return m_wellSkinFactor; }
104 
109  string const & getTargetRegion() const { return m_targetRegionName; }
110 
115  string const & getPerfStatusTableName() const { return m_perfStatusTableName; }
116 
118 
124  {
126  static constexpr char const *distanceFromHeadString() { return "distanceFromHead"; }
128  static constexpr char const *wellTransmissibilityString() { return "transmissibility"; }
130  static constexpr char const *wellSkinFactorString() { return "skinFactor"; }
132  static constexpr char const *targetRegionString() { return "targetRegion"; }
134  static constexpr char const *perfStatusTableNameString() { return "perfStatusTableName"; }
136  static constexpr char const *perfStatusTableString() { return "perfStatusTable"; }
137  }
140 
141 protected:
142  void postInputInitialization() override;
143 
144 private:
146  real64 m_distanceFromHead;
147 
149  real64 m_wellTransmissibility;
150 
152  real64 m_wellSkinFactor;
153 
155  string m_targetRegionName;
156 
158  string m_perfStatusTableName;
159 
161  array2d< real64 > m_perfStatusTable;
162 };
163 
164 } // namespace geos
165 
166 #endif // GEOS_MESH_PERFORATION_HPP
Perforation(Perforation &&)=delete
Deleted move constructor.
string const & getTargetRegion() const
Get the target region for the perforation.
Perforation(Perforation const &)=delete
Deleted copy constructor.
struct geos::Perforation::viewKeyStruct viewKeysPerforation
ViewKey struct for the Perforation class.
void postInputInitialization() override
Perforation & operator=(Perforation const &)=delete
Deleted assignment operator.
Perforation(string const &name, dataRepository::Group *const parent)
Constructor for Perforation Objects.
real64 const & getDistanceFromWellHead() const
Get the linear distance between the well head and the perforation.
Definition: Perforation.hpp:91
Perforation & operator=(Perforation &&)=delete
Deleted move operator.
~Perforation() override
Default destructor.
Perforation()=delete
Deleted default constructor.
real64 getWellTransmissibility() const
Get the well Peaceman index at the perforation.
Definition: Perforation.hpp:97
real64 getWellSkinFactor() const
Get the well skin factor at the perforation.
string const & getPerfStatusTableName() const
Get the name of perforation status table function.
Array< T, 2, PERMUTATION > array2d
Alias for 2D array.
Definition: DataTypes.hpp:191
double real64
64-bit floating point type.
Definition: DataTypes.hpp:98
Struct to serve as a container for variable strings and keys.
static constexpr char const * perfStatusTableString()
static constexpr char const * wellSkinFactorString()
static constexpr char const * wellTransmissibilityString()
static constexpr char const * targetRegionString()
static constexpr char const * distanceFromHeadString()
static constexpr char const * perfStatusTableNameString()