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"
24 
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 
112 
118  {
120  static constexpr char const *distanceFromHeadString() { return "distanceFromHead"; }
122  static constexpr char const *wellTransmissibilityString() { return "transmissibility"; }
124  static constexpr char const *wellSkinFactorString() { return "skinFactor"; }
126  static constexpr char const *targetRegionString() { return "targetRegion"; }
127  }
130 
131 protected:
132  void postInputInitialization() override;
133 
134 private:
136  real64 m_distanceFromHead;
137 
139  real64 m_wellTransmissibility;
140 
142  real64 m_wellSkinFactor;
143 
145  string m_targetRegionName;
146 };
147 
148 } // namespace geos
149 
150 #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.
double real64
64-bit floating point type.
Definition: DataTypes.hpp:99
Struct to serve as a container for variable strings and keys.
static constexpr char const * wellSkinFactorString()
static constexpr char const * wellTransmissibilityString()
static constexpr char const * targetRegionString()
static constexpr char const * distanceFromHeadString()