My Project
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 { namespace RestartIO {
27
29 {
30 public:
32 struct PVTModel
33 {
36 bool isLiveOil { false };
37
40 bool isWetGas { false };
41
44 bool constComprOil { false };
45 };
46
49 {
52 bool useDirectionalRelPerm { false };
53
56 bool useReversibleRelPerm { true };
57
59 bool useEndScale { false };
60
63 bool useDirectionalEPS { false };
64
67 bool useReversibleEPS { true };
68
71 bool useAlternateEPS { false };
72 };
73
74 LogiHEAD();
75 ~LogiHEAD() = default;
76
77 LogiHEAD(const LogiHEAD& rhs) = default;
78 LogiHEAD(LogiHEAD&& rhs) = default;
79
80 LogiHEAD& operator=(const LogiHEAD& rhs) = default;
81 LogiHEAD& operator=(LogiHEAD&& rhs) = default;
82
83 LogiHEAD& variousParam(const bool e300_radial,
84 const bool e100_radial,
85 const int nswlmx,
86 const bool enableHyster
87 );
88
94 LogiHEAD& pvtModel(const PVTModel& pvt);
95
102 LogiHEAD& saturationFunction(const SatfuncFlags& satfunc);
103
104 const std::vector<bool>& data() const
105 {
106 return this->data_;
107 }
108
111 LogiHEAD& network(const int maxNoNodes);
112 private:
113 std::vector<bool> data_;
114 };
115
116}} // Opm::RestartIO
117
118#endif // OPM_LOGIHEAD_HEADER_INCLUDED
Definition LogiHEAD.hpp:29
LogiHEAD & network(const int maxNoNodes)
Logical switch to indicate that the network option is used.
Definition LogiHEAD.cpp:224
LogiHEAD & pvtModel(const PVTModel &pvt)
Assign PVT model characteristics.
Definition LogiHEAD.cpp:201
LogiHEAD & saturationFunction(const SatfuncFlags &satfunc)
Assign saturation function characteristics.
Definition LogiHEAD.cpp:211
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:33
bool constComprOil
Whether or not simulation run uses a constant compressibility oil model (keyword PVCDO).
Definition LogiHEAD.hpp:44
bool isWetGas
Whether or not simulation run uses a wet gas model (with vaporised oil).
Definition LogiHEAD.hpp:40
bool isLiveOil
Whether or not simulation run uses a live oil model (with dissolved gas).
Definition LogiHEAD.hpp:36
Key characteristics of simulation model's saturation functions.
Definition LogiHEAD.hpp:49
bool useDirectionalRelPerm
Whether or not simulation run uses directionally dependent relative permeability.
Definition LogiHEAD.hpp:52
bool useReversibleRelPerm
Whether or not simulation run uses reversible relative permeability functions.
Definition LogiHEAD.hpp:56
bool useDirectionalEPS
Whether or not simulation run uses directionally dependent end-point scaling.
Definition LogiHEAD.hpp:63
bool useEndScale
Whether or not simulation run uses end-point scaling.
Definition LogiHEAD.hpp:59
bool useReversibleEPS
Whether or not simulation run uses reversible end-point scaling.
Definition LogiHEAD.hpp:67
bool useAlternateEPS
Whether or not simulation run activates the alternative (three-point) end-point scaling feature.
Definition LogiHEAD.hpp:71