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
52 InitConfig(const Deck& deck, const Phases& phases);
53
56
67 void setRestart(const std::string& root, int step);
68
71 bool restartRequested() const;
72
76 int getRestartStep() const;
77
82 const std::string& getRestartRootName() const;
83
90 const std::string& getRestartRootNameInput() const;
91
93 bool hasEquil() const;
94
98 const Equil& getEquil() const;
99
104 bool hasStressEquil() const;
105
109 const StressEquil& getStressEquil() const;
110
114 bool hasGravity() const
115 {
116 return this->m_gravity;
117 }
118
120 bool hasFoamConfig() const;
121
125 const FoamConfig& getFoamConfig() const;
126
130 bool filleps() const
131 {
132 return this->m_filleps;
133 }
134
142 bool operator==(const InitConfig& config) const;
143
158 static bool rst_cmp(const InitConfig& full_config,
159 const InitConfig& rst_config);
160
166 template<class Serializer>
167 void serializeOp(Serializer& serializer)
168 {
169 serializer(equil);
170 serializer(stress_equil);
171 serializer(foamconfig);
172 serializer(m_filleps);
173 serializer(m_gravity);
174 serializer(m_restartRequested);
175 serializer(m_restartStep);
176 serializer(m_restartRootName);
177 serializer(m_restartRootNameInput);
178 }
179
180 private:
182 Equil equil{};
183
185 StressEquil stress_equil{};
186
188 FoamConfig foamconfig{};
189
191 bool m_filleps{false};
192
196 bool m_gravity{true};
197
199 bool m_restartRequested{false};
200
204 int m_restartStep{0};
205
210 std::string m_restartRootName{};
211
216 std::string m_restartRootNameInput{};
217
223 void parseRestartKeyword(const Deck& deck);
224 };
225
226} // namespace Opm
227
228#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:167
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:114
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:130
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