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 <string>
31 
32 namespace Opm {
33 
34 class EclipseState;
35 
41  GasOil,
42  OilWater,
43  GasWater
44 };
45 
54 {
55 public:
59  void setEnableSatScaling(bool yesno)
60  { enableSatScaling_ = yesno; }
61 
65  bool enableSatScaling() const
66  { return enableSatScaling_; }
67 
73  { enableThreePointKrSatScaling_ = yesno; }
74 
80  { return enableThreePointKrSatScaling_; }
81 
85  void setEnableKrwScaling(bool yesno)
86  { enableKrwScaling_ = yesno; }
87 
91  bool enableKrwScaling() const
92  { return enableKrwScaling_; }
93 
98  void setEnableThreePointKrwScaling(const bool enable)
99  { this->enableThreePointKrwScaling_ = enable; }
100 
106  { return this->enableThreePointKrwScaling_; }
107 
112  void setEnableThreePointKrnScaling(const bool enable)
113  { this->enableThreePointKrnScaling_ = enable; }
114 
120  { return this->enableThreePointKrnScaling_; }
121 
125  void setEnableKrnScaling(bool yesno)
126  { enableKrnScaling_ = yesno; }
127 
131  bool enableKrnScaling() const
132  { return enableKrnScaling_; }
133 
137  void setEnablePcScaling(bool yesno)
138  { enablePcScaling_ = yesno; }
139 
143  bool enablePcScaling() const
144  { return enablePcScaling_; }
145 
153  void setEnableLeverettScaling(bool yesno)
154  { enableLeverettScaling_ = yesno; }
155 
164  { return enableLeverettScaling_; }
165 
171  void initFromState(const EclipseState& eclState,
172  EclTwoPhaseSystemType twoPhaseSystemType,
173  const std::string& prefix = "",
174  const std::string& suffix = "");
175 
176 private:
177  // enable scaling of the input saturations (i.e., rescale the x-Axis)
178  bool enableSatScaling_{false};
179 
180  // use three (instead of two) points to scale the saturations for the relative
181  // permeabilities.
182  //
183  // This means that two piecewise linear functions are used for saturation scaling
184  // instead of a single linear one
185  bool enableThreePointKrSatScaling_{false};
186 
187  // enable the scaling of the capillary pressure and relative permeability outputs
188  // (i.e., rescale the y-Axis)
189  bool enablePcScaling_{false};
190  bool enableLeverettScaling_{false};
191  bool enableKrwScaling_{false};
192  bool enableKrnScaling_{false};
193 
194  // Employ three-point vertical scaling (e.g., KRWR and KRW).
195  bool enableThreePointKrwScaling_{false};
196 
197  // Employ three-point vertical scaling (e.g., KRORW and KRO).
198  bool enableThreePointKrnScaling_{false};
199 };
200 
201 } // namespace Opm
202 
203 #endif
EclTwoPhaseSystemType
Specified which fluids are involved in a given twophase material law for endpoint scaling...
Definition: EclEpsConfig.hpp:40
bool enableThreePointKrnScaling() const
Whether or not three-point relative permeability value scaling is enabled for the non-wetting phase (...
Definition: EclEpsConfig.hpp:119
bool enablePcScaling() const
Returns whether capillary pressure scaling is enabled.
Definition: EclEpsConfig.hpp:143
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:53
void setEnableKrnScaling(bool yesno)
Specify whether relative permeability scaling is enabled for the non-wetting phase.
Definition: EclEpsConfig.hpp:125
bool enableKrwScaling() const
Returns whether relative permeability scaling is enabled for the wetting phase.
Definition: EclEpsConfig.hpp:91
void setEnableKrwScaling(bool yesno)
Specify whether relative permeability scaling is enabled for the wetting phase.
Definition: EclEpsConfig.hpp:85
void setEnableThreePointKrnScaling(const bool enable)
Specify whether three-point relative permeability value scaling is enabled for the wetting phase (e...
Definition: EclEpsConfig.hpp:112
Definition: EclipseState.hpp:66
bool enableLeverettScaling() const
Returns whether the Leverett capillary pressure scaling is enabled.
Definition: EclEpsConfig.hpp:163
void setEnableSatScaling(bool yesno)
Specify whether saturation scaling is enabled.
Definition: EclEpsConfig.hpp:59
bool enableThreePointKrwScaling() const
Whether or not three-point relative permeability value scaling is enabled for the wetting phase (KRWR...
Definition: EclEpsConfig.hpp:105
void setEnableThreePointKrSatScaling(bool yesno)
Specify whether three point saturation scaling is enabled for the relative permeabilities.
Definition: EclEpsConfig.hpp:72
bool enableThreePointKrSatScaling() const
Returns whether three point saturation scaling is enabled for the relative permeabilities.
Definition: EclEpsConfig.hpp:79
void setEnableLeverettScaling(bool yesno)
Specify whether the Leverett capillary pressure scaling is enabled.
Definition: EclEpsConfig.hpp:153
bool enableKrnScaling() const
Returns whether relative permeability scaling is enabled for the non-wetting phase.
Definition: EclEpsConfig.hpp:131
void setEnablePcScaling(bool yesno)
Specify whether capillary pressure scaling is enabled.
Definition: EclEpsConfig.hpp:137
bool enableSatScaling() const
Returns whether saturation scaling is enabled.
Definition: EclEpsConfig.hpp:65
void setEnableThreePointKrwScaling(const bool enable)
Specify whether three-point relative permeability value scaling is enabled for the wetting phase (KRW...
Definition: EclEpsConfig.hpp:98