GEOS
EquilibriumInitialCondition.hpp
Go to the documentation of this file.
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 
21 #ifndef GEOS_FIELDSPECIFICATION_EQUILIBRIUMINITIALCONDITION_HPP
22 #define GEOS_FIELDSPECIFICATION_EQUILIBRIUMINITIALCONDITION_HPP
23 
25 
26 namespace geos
27 {
28 
34 {
35 public:
36 
38  EquilibriumInitialCondition( string const & name, Group * parent );
39 
42 
44  virtual ~EquilibriumInitialCondition() = default;
45 
48 
51 
54 
57 
62  static string catalogName() { return "HydrostaticEquilibrium"; }
63 
68  integer getMaxNumEquilibrationIterations() const { return m_maxNumEquilibrationIterations; }
69 
74  real64 getEquilibrationTolerance() const { return m_equilibrationTolerance; }
75 
80  real64 getElevationIncrement() const { return m_elevationIncrement; }
81 
86  real64 getDatumPressure() const { return m_datumPressure; }
87 
92  real64 getDatumElevation() const { return m_datumElevation; }
93 
98  string_array const & getComponentNames() const { return m_componentNames; }
99 
104  string getInitPhaseName() const { return m_initPhaseName; }
105 
110  string_array const & getComponentFractionVsElevationTableNames() const { return m_componentFractionVsElevationTableNames; }
111 
116  string getTemperatureVsElevationTableName() const { return m_temperatureVsElevationTableName; }
117 
122  real64_array const & getPhaseContacts() const { return m_phaseContacts; }
123 
128  {
129 
130  // equilibration parameters
131 
133  constexpr static char const * maxNumEquilibrationIterationsString() { return "maxNumberOfEquilibrationIterations"; }
134 
136  constexpr static char const * elevationIncrementString() { return "elevationIncrementInHydrostaticPressureTable"; }
137 
139  constexpr static char const * equilibrationToleranceString() { return "equilibrationTolerance"; }
140 
141  // datum elevation and pressure
142 
144  constexpr static char const * datumElevationString() { return "datumElevation"; }
145 
147  constexpr static char const * datumPressureString() { return "datumPressure"; }
148 
149  // name of the phase initially saturating the reservoir
150 
152  constexpr static char const * initPhaseNameString() { return "initialPhaseName"; }
153 
154  // component names to use the component fraction tables
155 
157  constexpr static char const * componentNamesString() { return "componentNames"; }
158 
159  // tables storing the properties vs elevation properties
160 
162  constexpr static char const * componentFractionVsElevationTableNamesString() { return "componentFractionVsElevationTableNames"; }
163 
165  constexpr static char const * temperatureVsElevationTableNameString() { return "temperatureVsElevationTableName"; }
166 
167  // array storing phase contact elevations
168 
170  constexpr static char const * phaseContactsString() { return "phaseContacts"; }
171 
172  };
173 
174 
175 protected:
176 
177  virtual void postInputInitialization() override final;
178 
179  virtual void initializePreSubGroups() override final;
180 
181 private:
182 
184  integer m_maxNumEquilibrationIterations;
185 
187  real64 m_elevationIncrement;
188 
190  real64 m_equilibrationTolerance;
191 
193  real64 m_datumElevation;
194 
196  real64 m_datumPressure;
197 
199  string m_initPhaseName;
200 
202  string_array m_componentNames;
203 
205  string_array m_componentFractionVsElevationTableNames;
206 
208  string m_temperatureVsElevationTableName;
209 
211  real64_array m_phaseContacts;
212 
213 };
214 
215 } /* namespace geos */
216 
217 #endif /* GEOS_FIELDSPECIFICATION_EQUILIBRIUMINITIALCONDITION_HPP */
static string catalogName()
Static Factory Catalog Functions.
real64 getEquilibrationTolerance() const
Getter for the equilibration tolerance.
integer getMaxNumEquilibrationIterations() const
Getter for the max number of equilibration iterations.
virtual void postInputInitialization() override final
string_array const & getComponentNames() const
Getter for the component names.
real64 getElevationIncrement() const
Getter for the elevation increment in the hydrostatic pressure table.
real64_array const & getPhaseContacts() const
Getter for the phase contacts' elevations.
EquilibriumInitialCondition & operator=(EquilibriumInitialCondition &&)=delete
deleted move assignment operator
string_array const & getComponentFractionVsElevationTableNames() const
Getter for the component fraction table names.
EquilibriumInitialCondition()=delete
deleted default constructor
EquilibriumInitialCondition(string const &name, Group *parent)
constructor
virtual ~EquilibriumInitialCondition()=default
default destructor
virtual void initializePreSubGroups() override final
Called by Initialize() prior to initializing sub-Groups.
real64 getDatumPressure() const
Getter for the datum pressure.
string getTemperatureVsElevationTableName() const
Getter for the temperature table name.
string getInitPhaseName() const
Getter for the name of the phase initially saturating the reservoir.
EquilibriumInitialCondition & operator=(EquilibriumInitialCondition const &)=delete
deleted copy assignment operator
EquilibriumInitialCondition(EquilibriumInitialCondition const &)=delete
deleted copy constructor
real64 getDatumElevation() const
Getter for the datum elevation.
EquilibriumInitialCondition(EquilibriumInitialCondition &&)=default
defaulted move constructor
stdVector< string > string_array
A 1-dimensional array of geos::string types.
Definition: DataTypes.hpp:361
double real64
64-bit floating point type.
Definition: DataTypes.hpp:98
array1d< real64 > real64_array
A 1-dimensional array of geos::real64 types.
Definition: DataTypes.hpp:357
int integer
Signed integer type.
Definition: DataTypes.hpp:81
constexpr static char const * componentFractionVsElevationTableNamesString()