opm-common
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 <opm/common/utility/gpuDecorators.hpp>
31 
32 #include <string>
33 
34 namespace Opm {
35 
36 class EclipseState;
37 
43  GasOil,
44  OilWater,
45  GasWater
46 };
47 
56 {
57 public:
61  void setEnableSatScaling(bool yesno)
62  { enableSatScaling_ = yesno; }
63 
67  OPM_HOST_DEVICE bool enableSatScaling() const
68  { return enableSatScaling_; }
69 
75  { enableThreePointKrSatScaling_ = yesno; }
76 
81  OPM_HOST_DEVICE bool enableThreePointKrSatScaling() const
82  { return enableThreePointKrSatScaling_; }
83 
87  void setEnableKrwScaling(bool yesno)
88  { enableKrwScaling_ = yesno; }
89 
93  OPM_HOST_DEVICE bool enableKrwScaling() const
94  { return enableKrwScaling_; }
95 
100  void setEnableThreePointKrwScaling(const bool enable)
101  { this->enableThreePointKrwScaling_ = enable; }
102 
107  OPM_HOST_DEVICE bool enableThreePointKrwScaling() const
108  { return this->enableThreePointKrwScaling_; }
109 
114  void setEnableThreePointKrnScaling(const bool enable)
115  { this->enableThreePointKrnScaling_ = enable; }
116 
121  OPM_HOST_DEVICE bool enableThreePointKrnScaling() const
122  { return this->enableThreePointKrnScaling_; }
123 
127  void setEnableKrnScaling(bool yesno)
128  { enableKrnScaling_ = yesno; }
129 
133  OPM_HOST_DEVICE bool enableKrnScaling() const
134  { return enableKrnScaling_; }
135 
139  void setEnablePcScaling(bool yesno)
140  { enablePcScaling_ = yesno; }
141 
145  OPM_HOST_DEVICE bool enablePcScaling() const
146  { return enablePcScaling_; }
147 
155  void setEnableLeverettScaling(bool yesno)
156  { enableLeverettScaling_ = yesno; }
157 
165  OPM_HOST_DEVICE bool enableLeverettScaling() const
166  { return enableLeverettScaling_; }
167 
173  void initFromState(const EclipseState& eclState,
174  EclTwoPhaseSystemType twoPhaseSystemType,
175  const std::string& prefix = "",
176  const std::string& suffix = "");
177 
178 private:
179  // enable scaling of the input saturations (i.e., rescale the x-Axis)
180  bool enableSatScaling_{false};
181 
182  // use three (instead of two) points to scale the saturations for the relative
183  // permeabilities.
184  //
185  // This means that two piecewise linear functions are used for saturation scaling
186  // instead of a single linear one
187  bool enableThreePointKrSatScaling_{false};
188 
189  // enable the scaling of the capillary pressure and relative permeability outputs
190  // (i.e., rescale the y-Axis)
191  bool enablePcScaling_{false};
192  bool enableLeverettScaling_{false};
193  bool enableKrwScaling_{false};
194  bool enableKrnScaling_{false};
195 
196  // Employ three-point vertical scaling (e.g., KRWR and KRW).
197  bool enableThreePointKrwScaling_{false};
198 
199  // Employ three-point vertical scaling (e.g., KRORW and KRO).
200  bool enableThreePointKrnScaling_{false};
201 };
202 
203 } // namespace Opm
204 
205 #endif
OPM_HOST_DEVICE bool enableKrnScaling() const
Returns whether relative permeability scaling is enabled for the non-wetting phase.
Definition: EclEpsConfig.hpp:133
OPM_HOST_DEVICE bool enablePcScaling() const
Returns whether capillary pressure scaling is enabled.
Definition: EclEpsConfig.hpp:145
OPM_HOST_DEVICE bool enableThreePointKrSatScaling() const
Returns whether three point saturation scaling is enabled for the relative permeabilities.
Definition: EclEpsConfig.hpp:81
OPM_HOST_DEVICE bool enableThreePointKrnScaling() const
Whether or not three-point relative permeability value scaling is enabled for the non-wetting phase (...
Definition: EclEpsConfig.hpp:121
EclTwoPhaseSystemType
Specified which fluids are involved in a given twophase material law for endpoint scaling...
Definition: EclEpsConfig.hpp:42
OPM_HOST_DEVICE bool enableKrwScaling() const
Returns whether relative permeability scaling is enabled for the wetting phase.
Definition: EclEpsConfig.hpp:93
void initFromState(const EclipseState &eclState, EclTwoPhaseSystemType twoPhaseSystemType, const std::string &prefix="", const std::string &suffix="")
Reads all relevant material parameters form a cell of a parsed ECL deck.
Definition: EclEpsConfig.cpp:38
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:30
Specifies the configuration used by the endpoint scaling code.
Definition: EclEpsConfig.hpp:55
void setEnableKrnScaling(bool yesno)
Specify whether relative permeability scaling is enabled for the non-wetting phase.
Definition: EclEpsConfig.hpp:127
OPM_HOST_DEVICE bool enableThreePointKrwScaling() const
Whether or not three-point relative permeability value scaling is enabled for the wetting phase (KRWR...
Definition: EclEpsConfig.hpp:107
void setEnableKrwScaling(bool yesno)
Specify whether relative permeability scaling is enabled for the wetting phase.
Definition: EclEpsConfig.hpp:87
void setEnableThreePointKrnScaling(const bool enable)
Specify whether three-point relative permeability value scaling is enabled for the wetting phase (e...
Definition: EclEpsConfig.hpp:114
Definition: EclipseState.hpp:66
void setEnableSatScaling(bool yesno)
Specify whether saturation scaling is enabled.
Definition: EclEpsConfig.hpp:61
OPM_HOST_DEVICE bool enableLeverettScaling() const
Returns whether the Leverett capillary pressure scaling is enabled.
Definition: EclEpsConfig.hpp:165
OPM_HOST_DEVICE bool enableSatScaling() const
Returns whether saturation scaling is enabled.
Definition: EclEpsConfig.hpp:67
void setEnableThreePointKrSatScaling(bool yesno)
Specify whether three point saturation scaling is enabled for the relative permeabilities.
Definition: EclEpsConfig.hpp:74
void setEnableLeverettScaling(bool yesno)
Specify whether the Leverett capillary pressure scaling is enabled.
Definition: EclEpsConfig.hpp:155
void setEnablePcScaling(bool yesno)
Specify whether capillary pressure scaling is enabled.
Definition: EclEpsConfig.hpp:139
void setEnableThreePointKrwScaling(const bool enable)
Specify whether three-point relative permeability value scaling is enabled for the wetting phase (KRW...
Definition: EclEpsConfig.hpp:100