My Project
Loading...
Searching...
No Matches
EclEpsConfig.hpp
Go to the documentation of this file.
1// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2// vi: set et ts=4 sw=4 sts=4:
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 2 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 Consult the COPYING file in the top-level source directory of this
20 module for the precise wording of the license and the list of
21 copyright holders.
22*/
27#ifndef OPM_ECL_EPS_CONFIG_HPP
28#define OPM_ECL_EPS_CONFIG_HPP
29
30#include <string>
31
32namespace Opm {
33
34#if HAVE_ECL_INPUT
35class EclipseState;
36#endif
37
43 GasOil,
44 OilWater,
45 GasWater
46};
47
56{
57public:
61 void setEnableSatScaling(bool yesno)
62 { enableSatScaling_ = yesno; }
63
67 bool enableSatScaling() const
68 { return enableSatScaling_; }
69
75 { enableThreePointKrSatScaling_ = yesno; }
76
82 { return enableThreePointKrSatScaling_; }
83
87 void setEnableKrwScaling(bool yesno)
88 { enableKrwScaling_ = yesno; }
89
93 bool enableKrwScaling() const
94 { return enableKrwScaling_; }
95
100 void setEnableThreePointKrwScaling(const bool enable)
101 { this->enableThreePointKrwScaling_ = enable; }
102
108 { return this->enableThreePointKrwScaling_; }
109
114 void setEnableThreePointKrnScaling(const bool enable)
115 { this->enableThreePointKrnScaling_ = enable; }
116
122 { return this->enableThreePointKrnScaling_; }
123
127 void setEnableKrnScaling(bool yesno)
128 { enableKrnScaling_ = yesno; }
129
133 bool enableKrnScaling() const
134 { return enableKrnScaling_; }
135
139 void setEnablePcScaling(bool yesno)
140 { enablePcScaling_ = yesno; }
141
145 bool enablePcScaling() const
146 { return enablePcScaling_; }
147
156 { enableLeverettScaling_ = yesno; }
157
166 { return enableLeverettScaling_; }
167
168#if HAVE_ECL_INPUT
174 void initFromState(const EclipseState& eclState,
175 EclTwoPhaseSystemType twoPhaseSystemType,
176 const std::string& prefix = "",
177 const std::string& suffix = "");
178#endif
179
180private:
181 // enable scaling of the input saturations (i.e., rescale the x-Axis)
182 bool enableSatScaling_{false};
183
184 // use three (instead of two) points to scale the saturations for the relative
185 // permeabilities.
186 //
187 // This means that two piecewise linear functions are used for saturation scaling
188 // instead of a single linear one
189 bool enableThreePointKrSatScaling_{false};
190
191 // enable the scaling of the capillary pressure and relative permeability outputs
192 // (i.e., rescale the y-Axis)
193 bool enablePcScaling_{false};
194 bool enableLeverettScaling_{false};
195 bool enableKrwScaling_{false};
196 bool enableKrnScaling_{false};
197
198 // Employ three-point vertical scaling (e.g., KRWR and KRW).
199 bool enableThreePointKrwScaling_{false};
200
201 // Employ three-point vertical scaling (e.g., KRORW and KRO).
202 bool enableThreePointKrnScaling_{false};
203};
204
205} // namespace Opm
206
207#endif
Specifies the configuration used by the endpoint scaling code.
Definition EclEpsConfig.hpp:56
bool enableThreePointKrwScaling() const
Whether or not three-point relative permeability value scaling is enabled for the wetting phase (KRWR...
Definition EclEpsConfig.hpp:107
bool enableKrwScaling() const
Returns whether relative permeability scaling is enabled for the wetting phase.
Definition EclEpsConfig.hpp:93
void setEnableKrnScaling(bool yesno)
Specify whether relative permeability scaling is enabled for the non-wetting phase.
Definition EclEpsConfig.hpp:127
void setEnablePcScaling(bool yesno)
Specify whether capillary pressure scaling is enabled.
Definition EclEpsConfig.hpp:139
bool enableKrnScaling() const
Returns whether relative permeability scaling is enabled for the non-wetting phase.
Definition EclEpsConfig.hpp:133
void setEnableKrwScaling(bool yesno)
Specify whether relative permeability scaling is enabled for the wetting phase.
Definition EclEpsConfig.hpp:87
bool enableLeverettScaling() const
Returns whether the Leverett capillary pressure scaling is enabled.
Definition EclEpsConfig.hpp:165
void setEnableSatScaling(bool yesno)
Specify whether saturation scaling is enabled.
Definition EclEpsConfig.hpp:61
void setEnableLeverettScaling(bool yesno)
Specify whether the Leverett capillary pressure scaling is enabled.
Definition EclEpsConfig.hpp:155
void setEnableThreePointKrwScaling(const bool enable)
Specify whether three-point relative permeability value scaling is enabled for the wetting phase (KRW...
Definition EclEpsConfig.hpp:100
bool enablePcScaling() const
Returns whether capillary pressure scaling is enabled.
Definition EclEpsConfig.hpp:145
void setEnableThreePointKrSatScaling(bool yesno)
Specify whether three point saturation scaling is enabled for the relative permeabilities.
Definition EclEpsConfig.hpp:74
void setEnableThreePointKrnScaling(const bool enable)
Specify whether three-point relative permeability value scaling is enabled for the wetting phase (e....
Definition EclEpsConfig.hpp:114
bool enableThreePointKrnScaling() const
Whether or not three-point relative permeability value scaling is enabled for the non-wetting phase (...
Definition EclEpsConfig.hpp:121
bool enableThreePointKrSatScaling() const
Returns whether three point saturation scaling is enabled for the relative permeabilities.
Definition EclEpsConfig.hpp:81
bool enableSatScaling() const
Returns whether saturation scaling is enabled.
Definition EclEpsConfig.hpp:67
Definition EclipseState.hpp:63
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30
EclTwoPhaseSystemType
Specified which fluids are involved in a given twophase material law for endpoint scaling.
Definition EclEpsConfig.hpp:42