opm-common
Loading...
Searching...
No Matches
LogiHEAD.hpp
1/*
2 Copyright 2019 Equinor ASA.
3 Copyright 2016, 2017 Statoil ASA.
4
5 This file is part of the Open Porous Media Project (OPM).
6
7 OPM is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 OPM is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with OPM. If not, see <http://www.gnu.org/licenses/>.
19*/
20
21#ifndef OPM_LOGIHEAD_HEADER_INCLUDED
22#define OPM_LOGIHEAD_HEADER_INCLUDED
23
24#include <vector>
25
26namespace Opm {
27
29
30} // namespace Opm
31
32namespace Opm::RestartIO {
33
34 class LogiHEAD
35 {
36 public:
38 struct PVTModel
39 {
42 bool isLiveOil { false };
43
46 bool isWetGas { false };
47
50 bool constComprOil { false };
51 };
52
55 {
58 bool useDirectionalRelPerm { false };
59
62 bool useReversibleRelPerm { true };
63
65 bool useEndScale { false };
66
69 bool useDirectionalEPS { false };
70
73 bool useReversibleEPS { true };
74
77 bool useAlternateEPS { false };
78 };
79
80 LogiHEAD();
81 ~LogiHEAD() = default;
82
83 LogiHEAD(const LogiHEAD& rhs) = default;
84 LogiHEAD(LogiHEAD&& rhs) = default;
85
86 LogiHEAD& operator=(const LogiHEAD& rhs) = default;
87 LogiHEAD& operator=(LogiHEAD&& rhs) = default;
88
89 LogiHEAD& variousParam(const bool e300_radial,
90 const bool e100_radial,
91 const int nswlmx,
92 const bool enableHyster,
93 const bool hasTemp = false);
94
99
105 LogiHEAD& pvtModel(const PVTModel& pvt);
106
113 LogiHEAD& saturationFunction(const SatfuncFlags& satfunc);
114
116 LogiHEAD& network(const int maxNoNodes);
117
121 const std::vector<bool>& data() const
122 {
123 return this->data_;
124 }
125
126 private:
127 std::vector<bool> data_;
128 };
129
130} // Opm::RestartIO
131
132#endif // OPM_LOGIHEAD_HEADER_INCLUDED
Definition OilVaporizationProperties.hpp:34
Definition LogiHEAD.hpp:35
LogiHEAD & network(const int maxNoNodes)
Logical switch to indicate that the network option is used.
Definition LogiHEAD.cpp:233
LogiHEAD & pvtModel(const PVTModel &pvt)
Assign PVT model characteristics.
Definition LogiHEAD.cpp:210
LogiHEAD & saturationFunction(const SatfuncFlags &satfunc)
Assign saturation function characteristics.
Definition LogiHEAD.cpp:220
LogiHEAD & phaseMixing(const OilVaporizationProperties &oilvap)
Assign oil vaporisation characteristics.
Definition LogiHEAD.cpp:241
const std::vector< bool > & data() const
Linearised result array.
Definition LogiHEAD.hpp:121
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30
Key characteristics of simulation run's PVT model.
Definition LogiHEAD.hpp:39
bool constComprOil
Whether or not simulation run uses a constant compressibility oil model (keyword PVCDO).
Definition LogiHEAD.hpp:50
bool isWetGas
Whether or not simulation run uses a wet gas model (with vaporised oil).
Definition LogiHEAD.hpp:46
bool isLiveOil
Whether or not simulation run uses a live oil model (with dissolved gas).
Definition LogiHEAD.hpp:42
Key characteristics of simulation model's saturation functions.
Definition LogiHEAD.hpp:55
bool useDirectionalRelPerm
Whether or not simulation run uses directionally dependent relative permeability.
Definition LogiHEAD.hpp:58
bool useReversibleRelPerm
Whether or not simulation run uses reversible relative permeability functions.
Definition LogiHEAD.hpp:62
bool useDirectionalEPS
Whether or not simulation run uses directionally dependent end-point scaling.
Definition LogiHEAD.hpp:69
bool useEndScale
Whether or not simulation run uses end-point scaling.
Definition LogiHEAD.hpp:65
bool useReversibleEPS
Whether or not simulation run uses reversible end-point scaling.
Definition LogiHEAD.hpp:73
bool useAlternateEPS
Whether or not simulation run activates the alternative (three-point) end-point scaling feature.
Definition LogiHEAD.hpp:77