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 
106 
112  {
114  static constexpr char const *distanceFromHeadString() { return "distanceFromHead"; }
116  static constexpr char const *wellTransmissibilityString() { return "transmissibility"; }
118  static constexpr char const *wellSkinFactorString() { return "skinFactor"; }
125  }
128 
129 protected:
130  void postInputInitialization() override;
131 
132 private:
134  real64 m_distanceFromHead;
135 
137  real64 m_wellTransmissibility;
138 
140  real64 m_wellSkinFactor;
141 };
142 
143 } // namespace geos
144 
145 #endif // GEOS_MESH_PERFORATION_HPP
Perforation(Perforation &&)=delete
Deleted move constructor.
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.
Group::wrapperMap::KeyIndex ViewKey
Type alias for KeyIndexT type used for wrapper lookups.
Definition: Group.hpp:1662
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()
dataRepository::ViewKey wellSkinFactor
ViewKey for the well transmissibility at this perforation.
dataRepository::ViewKey wellTransmissibility
ViewKey for the well transmissibility at this perforation.
static constexpr char const * wellTransmissibilityString()
static constexpr char const * distanceFromHeadString()
dataRepository::ViewKey distanceFromHead
ViewKey for the linear distance from well head.