opm-common
Loading...
Searching...
No Matches
InitConfig.hpp
1/*
2 Copyright 2015 Statoil ASA.
3
4 This file is part of the Open Porous Media project (OPM).
5
6 OPM is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 OPM is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with OPM. If not, see <http://www.gnu.org/licenses/>.
18*/
19
20#ifndef OPM_INIT_CONFIG_HPP
21#define OPM_INIT_CONFIG_HPP
22
23#include <opm/input/eclipse/EclipseState/InitConfig/Equil.hpp>
24#include <opm/input/eclipse/EclipseState/InitConfig/FoamConfig.hpp>
25
26#include <string>
27
28namespace Opm {
29
30 class Deck;
31 class Phases;
32
33} // namespace Opm
34
35namespace Opm {
36
39 {
40 public:
45 InitConfig() = default;
46
53 InitConfig(const Deck& deck, const Phases& phases);
54
57
68 void setRestart(const std::string& root, int step);
69
72 bool restartRequested() const;
73
77 int getRestartStep() const;
78
83 const std::string& getRestartRootName() const;
84
91 const std::string& getRestartRootNameInput() const;
92
94 bool hasEquil() const;
95
99 const Equil& getEquil() const;
100
105 bool hasStressEquil() const;
106
110 const StressEquil& getStressEquil() const;
111
115 bool hasGravity() const
116 {
117 return this->m_gravity;
118 }
119
121 bool hasFoamConfig() const;
122
126 const FoamConfig& getFoamConfig() const;
127
131 bool filleps() const
132 {
133 return this->m_filleps;
134 }
135
143 bool operator==(const InitConfig& config) const;
144
159 static bool rst_cmp(const InitConfig& full_config,
160 const InitConfig& rst_config);
161
167 template<class Serializer>
168 void serializeOp(Serializer& serializer)
169 {
170 serializer(equil);
171 serializer(stress_equil);
172 serializer(foamconfig);
173 serializer(m_filleps);
174 serializer(m_gravity);
175 serializer(m_restartRequested);
176 serializer(m_restartStep);
177 serializer(m_restartRootName);
178 serializer(m_restartRootNameInput);
179 }
180
181 private:
183 Equil equil{};
184
186 StressEquil stress_equil{};
187
189 FoamConfig foamconfig{};
190
192 bool m_filleps{false};
193
197 bool m_gravity{true};
198
200 bool m_restartRequested{false};
201
205 int m_restartStep{0};
206
211 std::string m_restartRootName{};
212
217 std::string m_restartRootNameInput{};
218
224 void parseRestartKeyword(const Deck& deck);
225 };
226
227} // namespace Opm
228
229#endif // OPM_INIT_CONFIG_HPP
Definition Deck.hpp:46
Foam behaviour data for all SATNUM regions.
Definition FoamConfig.hpp:73
Settings for model initialisation.
Definition InitConfig.hpp:39
void serializeOp(Serializer &serializer)
Convert between byte array and object representation.
Definition InitConfig.hpp:168
bool hasFoamConfig() const
Whether or not run includes foam effects.
Definition InitConfig.cpp:155
InitConfig()=default
Default constructor.
bool hasGravity() const
Whether or not run includes gravity effects.
Definition InitConfig.hpp:115
int getRestartStep() const
Report step from which to restart the simulation.
Definition InitConfig.cpp:108
bool hasEquil() const
Whether or not run uses initialisation by equilibration.
Definition InitConfig.cpp:123
const StressEquil & getStressEquil() const
Mechanical stress equilibration specification.
Definition InitConfig.cpp:144
const Equil & getEquil() const
Equilibration specification.
Definition InitConfig.cpp:128
const std::string & getRestartRootName() const
Full path to run's restart input (i.e., run's initial pressures, saturations, Rs, &c).
Definition InitConfig.cpp:113
void setRestart(const std::string &root, int step)
Assign simulation restart information.
Definition InitConfig.cpp:96
static bool rst_cmp(const InitConfig &full_config, const InitConfig &rst_config)
Equality predicate for objects created from restart file information.
Definition InitConfig.cpp:186
bool filleps() const
Whether or not the run specifies the FILLEPS keyword that requests expanded end-point scaling arrays ...
Definition InitConfig.hpp:131
bool restartRequested() const
Whether or not this is a restarted simulation run (input uses the RESTART keyword).
Definition InitConfig.cpp:103
const FoamConfig & getFoamConfig() const
Run's foam configuration.
Definition InitConfig.cpp:161
const std::string & getRestartRootNameInput() const
Relative path to run's restart input (i.e., run's initial pressures, saturations, Rs,...
Definition InitConfig.cpp:118
bool operator==(const InitConfig &config) const
Equality predicate.
Definition InitConfig.cpp:172
bool hasStressEquil() const
Whether or not run initialises its mechanical stresses by an equilibration procedure (STREQUIL keywor...
Definition InitConfig.cpp:139
static InitConfig serializationTestObject()
Create a serialisation test object.
Definition InitConfig.cpp:80
Definition Runspec.hpp:46
Class for (de-)serializing.
Definition Serializer.hpp:94
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30