27#ifndef OPM_ECL_EPS_SCALING_POINTS_HPP
28#define OPM_ECL_EPS_SCALING_POINTS_HPP
40class EclEpsGridProperties;
43struct RawTableEndPoints;
44struct RawFunctionValues;
55template <
class Scalar>
78 Scalar pcowLeverettFactor;
79 Scalar pcgoLeverettFactor;
95 return (Swl == data.Swl)
97 && (Swcr == data.Swcr)
98 && (Sgcr == data.Sgcr)
99 && (Sowcr == data.Sowcr)
100 && (Sogcr == data.Sogcr)
103 && (maxPcow == data.maxPcow)
104 && (maxPcgo == data.maxPcgo)
105 && (pcowLeverettFactor == data.pcowLeverettFactor)
106 && (pcgoLeverettFactor == data.pcgoLeverettFactor)
107 && (Krwr == data.Krwr)
108 && (Krgr == data.Krgr)
109 && (Krorw == data.Krorw)
110 && (Krorg == data.Krorg)
111 && (maxKrw == data.maxKrw)
112 && (maxKrow == data.maxKrow)
113 && (maxKrog == data.maxKrog)
114 && (maxKrg == data.maxKrg)
129 const std::vector<double>::size_type satRegionIdx);
138 unsigned activeIndex);
141 void calculateLeverettFactors(
const EclipseState& eclState,
143 unsigned activeIndex);
153template <
class Scalar>
168 { saturationPcPoints_[pointIdx] = value; }
174 {
return saturationPcPoints_; }
180 { saturationKrwPoints_[pointIdx] = value; }
186 {
return saturationKrwPoints_; }
192 { saturationKrnPoints_[pointIdx] = value; }
198 {
return saturationKrnPoints_; }
204 { maxPcnwOrLeverettFactor_ = value; }
210 {
return maxPcnwOrLeverettFactor_; }
216 { maxPcnwOrLeverettFactor_ = value; }
222 {
return maxPcnwOrLeverettFactor_; }
229 { this->Krwr_ = value; }
236 {
return this->Krwr_; }
255 { this->Krnr_ = value; }
262 {
return this->Krnr_; }
280 Scalar maxPcnwOrLeverettFactor_{};
297 std::array<Scalar, 3> saturationPcPoints_{};
300 std::array<Scalar, 3> saturationKrwPoints_{};
303 std::array<Scalar, 3> saturationKrnPoints_{};
Specifies the configuration used by the endpoint scaling code.
Definition EclEpsConfig.hpp:56
Collects all grid properties which are relevant for end point scaling.
Definition EclEpsGridProperties.hpp:47
Represents the points on the X and Y axis to be scaled if endpoint scaling is used.
Definition EclEpsScalingPoints.hpp:155
const std::array< Scalar, 3 > & saturationKrwPoints() const
Returns the points used for wetting phase relperm saturation scaling.
Definition EclEpsScalingPoints.hpp:185
void setMaxKrn(Scalar value)
Sets the maximum wetting phase relative permeability.
Definition EclEpsScalingPoints.hpp:267
Scalar krnr() const
Returns non-wetting phase relative permeability at residual saturation of wetting phase.
Definition EclEpsScalingPoints.hpp:261
Scalar maxKrn() const
Returns the maximum wetting phase relative permeability.
Definition EclEpsScalingPoints.hpp:273
void setKrnr(Scalar value)
Set non-wetting phase relative permeability at residual saturation of wetting phase.
Definition EclEpsScalingPoints.hpp:254
void setMaxKrw(Scalar value)
Sets the maximum wetting phase relative permeability.
Definition EclEpsScalingPoints.hpp:241
Scalar maxKrw() const
Returns the maximum wetting phase relative permeability.
Definition EclEpsScalingPoints.hpp:247
void setSaturationKrwPoint(unsigned pointIdx, Scalar value)
Sets an saturation value for wetting-phase relperm saturation scaling.
Definition EclEpsScalingPoints.hpp:179
void setMaxPcnw(Scalar value)
Sets the maximum capillary pressure.
Definition EclEpsScalingPoints.hpp:203
Scalar krwr() const
Returns wetting-phase relative permeability at residual saturation of non-wetting phase.
Definition EclEpsScalingPoints.hpp:235
Scalar maxPcnw() const
Returns the maximum capillary pressure.
Definition EclEpsScalingPoints.hpp:209
void setKrwr(Scalar value)
Set wetting-phase relative permeability at residual saturation of non-wetting phase.
Definition EclEpsScalingPoints.hpp:228
void setSaturationPcPoint(unsigned pointIdx, Scalar value)
Sets an saturation value for capillary pressure saturation scaling.
Definition EclEpsScalingPoints.hpp:167
const std::array< Scalar, 3 > & saturationKrnPoints() const
Returns the points used for non-wetting phase relperm saturation scaling.
Definition EclEpsScalingPoints.hpp:197
void setLeverettFactor(Scalar value)
Sets the Leverett scaling factor for capillary pressure.
Definition EclEpsScalingPoints.hpp:215
const std::array< Scalar, 3 > & saturationPcPoints() const
Returns the points used for capillary pressure saturation scaling.
Definition EclEpsScalingPoints.hpp:173
void init(const EclEpsScalingPointsInfo< Scalar > &epsInfo, const EclEpsConfig &config, EclTwoPhaseSystemType epsSystemType)
Assigns the scaling points which actually ought to be used.
Definition EclEpsScalingPoints.cpp:240
void setSaturationKrnPoint(unsigned pointIdx, Scalar value)
Sets an saturation value for non-wetting phase relperm saturation scaling.
Definition EclEpsScalingPoints.hpp:191
Scalar leverettFactor() const
Returns the Leverett scaling factor for capillary pressure.
Definition EclEpsScalingPoints.hpp:221
Definition EclipseState.hpp:62
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
This structure represents all values which can be possibly used as scaling points in the endpoint sca...
Definition EclEpsScalingPoints.hpp:57
Collection of unscaled/raw saturation function value range endpoints extracted directly from tables o...
Definition SatfuncPropertyInitializers.hpp:93
Collection of unscaled/raw saturation range endpoints extracted directly from tables of tabulated sat...
Definition SatfuncPropertyInitializers.hpp:36