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 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 
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  arrayView1d< string const > getComponentNames() const { return m_componentNames.toViewConst(); }
99 
104  string getInitPhaseName() const { return m_initPhaseName; }
105 
110  arrayView1d< string const > getComponentFractionVsElevationTableNames() const { return m_componentFractionVsElevationTableNames.toViewConst(); }
111 
116  string getTemperatureVsElevationTableName() const { return m_temperatureVsElevationTableName; }
117 
122  {
123 
124  // equilibration parameters
125 
127  constexpr static char const * maxNumEquilibrationIterationsString() { return "maxNumberOfEquilibrationIterations"; }
128 
130  constexpr static char const * elevationIncrementString() { return "elevationIncrementInHydrostaticPressureTable"; }
131 
133  constexpr static char const * equilibrationToleranceString() { return "equilibrationTolerance"; }
134 
135  // datum elevation and pressure
136 
138  constexpr static char const * datumElevationString() { return "datumElevation"; }
139 
141  constexpr static char const * datumPressureString() { return "datumPressure"; }
142 
143  // name of the phase initially saturating the reservoir
144 
146  constexpr static char const * initPhaseNameString() { return "initialPhaseName"; }
147 
148  // component names to use the component fraction tables
149 
151  constexpr static char const * componentNamesString() { return "componentNames"; }
152 
153  // tables storing the properties vs elevation properties
154 
156  constexpr static char const * componentFractionVsElevationTableNamesString() { return "componentFractionVsElevationTableNames"; }
157 
159  constexpr static char const * temperatureVsElevationTableNameString() { return "temperatureVsElevationTableName"; }
160 
161  };
162 
163 
164 protected:
165 
166  virtual void postInputInitialization() override final;
167 
168  virtual void initializePreSubGroups() override final;
169 
170 private:
171 
173  integer m_maxNumEquilibrationIterations;
174 
176  real64 m_elevationIncrement;
177 
179  real64 m_equilibrationTolerance;
180 
182  real64 m_datumElevation;
183 
185  real64 m_datumPressure;
186 
188  string m_initPhaseName;
189 
191  array1d< string > m_componentNames;
192 
194  array1d< string > m_componentFractionVsElevationTableNames;
195 
197  string m_temperatureVsElevationTableName;
198 
199 };
200 
201 } /* namespace geos */
202 
203 #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
real64 getElevationIncrement() const
Getter for the elevation increment in the hydrostatic pressure table.
EquilibriumInitialCondition & operator=(EquilibriumInitialCondition &&)=delete
deleted move assignment operator
arrayView1d< string 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
arrayView1d< string const > getComponentNames() const
Getter for the component names.
real64 getDatumElevation() const
Getter for the datum elevation.
EquilibriumInitialCondition(EquilibriumInitialCondition &&)=default
defaulted move constructor
ArrayView< T, 1 > arrayView1d
Alias for 1D array view.
Definition: DataTypes.hpp:180
double real64
64-bit floating point type.
Definition: DataTypes.hpp:99
std::int32_t integer
Signed integer type.
Definition: DataTypes.hpp:82
Array< T, 1 > array1d
Alias for 1D array.
Definition: DataTypes.hpp:176
constexpr static char const * componentFractionVsElevationTableNamesString()