27#ifndef OPM_ECL_EPS_SCALING_POINTS_HPP
28#define OPM_ECL_EPS_SCALING_POINTS_HPP
53template <
class Scalar>
76 Scalar pcowLeverettFactor;
77 Scalar pcgoLeverettFactor;
93 return (Swl == data.Swl)
95 && (Swcr == data.Swcr)
96 && (Sgcr == data.Sgcr)
97 && (Sowcr == data.Sowcr)
98 && (Sogcr == data.Sogcr)
101 && (maxPcow == data.maxPcow)
102 && (maxPcgo == data.maxPcgo)
103 && (pcowLeverettFactor == data.pcowLeverettFactor)
104 && (pcgoLeverettFactor == data.pcgoLeverettFactor)
105 && (Krwr == data.Krwr)
106 && (Krgr == data.Krgr)
107 && (Krorw == data.Krorw)
108 && (Krorg == data.Krorg)
109 && (maxKrw == data.maxKrw)
110 && (maxKrow == data.maxKrow)
111 && (maxKrog == data.maxKrog)
112 && (maxKrg == data.maxKrg)
126 const std::vector<double>::size_type satRegionIdx);
135 unsigned activeIndex);
138 void calculateLeverettFactors(
const EclipseState& eclState,
140 unsigned activeIndex);
149template <
class Scalar>
164 { saturationPcPoints_[pointIdx] = value; }
170 {
return saturationPcPoints_; }
176 { saturationKrwPoints_[pointIdx] = value; }
182 {
return saturationKrwPoints_; }
188 { saturationKrnPoints_[pointIdx] = value; }
194 {
return saturationKrnPoints_; }
200 { maxPcnwOrLeverettFactor_ = value; }
206 {
return maxPcnwOrLeverettFactor_; }
212 { maxPcnwOrLeverettFactor_ = value; }
218 {
return maxPcnwOrLeverettFactor_; }
225 { this->Krwr_ = value; }
232 {
return this->Krwr_; }
251 { this->Krnr_ = value; }
258 {
return this->Krnr_; }
276 Scalar maxPcnwOrLeverettFactor_{};
293 std::array<Scalar, 3> saturationPcPoints_{};
296 std::array<Scalar, 3> saturationKrwPoints_{};
299 std::array<Scalar, 3> saturationKrnPoints_{};
Specifies the configuration used by the endpoint scaling code.
Definition EclEpsConfig.hpp:54
Collects all grid properties which are relevant for end point scaling.
Definition EclEpsGridProperties.hpp:45
Represents the points on the X and Y axis to be scaled if endpoint scaling is used.
Definition EclEpsScalingPoints.hpp:151
const std::array< Scalar, 3 > & saturationKrwPoints() const
Returns the points used for wetting phase relperm saturation scaling.
Definition EclEpsScalingPoints.hpp:181
void setMaxKrn(Scalar value)
Sets the maximum wetting phase relative permeability.
Definition EclEpsScalingPoints.hpp:263
Scalar krnr() const
Returns non-wetting phase relative permeability at residual saturation of wetting phase.
Definition EclEpsScalingPoints.hpp:257
Scalar maxKrn() const
Returns the maximum wetting phase relative permeability.
Definition EclEpsScalingPoints.hpp:269
void setKrnr(Scalar value)
Set non-wetting phase relative permeability at residual saturation of wetting phase.
Definition EclEpsScalingPoints.hpp:250
void setMaxKrw(Scalar value)
Sets the maximum wetting phase relative permeability.
Definition EclEpsScalingPoints.hpp:237
Scalar maxKrw() const
Returns the maximum wetting phase relative permeability.
Definition EclEpsScalingPoints.hpp:243
void setSaturationKrwPoint(unsigned pointIdx, Scalar value)
Sets an saturation value for wetting-phase relperm saturation scaling.
Definition EclEpsScalingPoints.hpp:175
void setMaxPcnw(Scalar value)
Sets the maximum capillary pressure.
Definition EclEpsScalingPoints.hpp:199
Scalar krwr() const
Returns wetting-phase relative permeability at residual saturation of non-wetting phase.
Definition EclEpsScalingPoints.hpp:231
Scalar maxPcnw() const
Returns the maximum capillary pressure.
Definition EclEpsScalingPoints.hpp:205
void setKrwr(Scalar value)
Set wetting-phase relative permeability at residual saturation of non-wetting phase.
Definition EclEpsScalingPoints.hpp:224
void setSaturationPcPoint(unsigned pointIdx, Scalar value)
Sets an saturation value for capillary pressure saturation scaling.
Definition EclEpsScalingPoints.hpp:163
const std::array< Scalar, 3 > & saturationKrnPoints() const
Returns the points used for non-wetting phase relperm saturation scaling.
Definition EclEpsScalingPoints.hpp:193
void setLeverettFactor(Scalar value)
Sets the Leverett scaling factor for capillary pressure.
Definition EclEpsScalingPoints.hpp:211
const std::array< Scalar, 3 > & saturationPcPoints() const
Returns the points used for capillary pressure saturation scaling.
Definition EclEpsScalingPoints.hpp:169
void init(const EclEpsScalingPointsInfo< Scalar > &epsInfo, const EclEpsConfig &config, EclTwoPhaseSystemType epsSystemType)
Assigns the scaling points which actually ought to be used.
Definition EclEpsScalingPoints.cpp:234
void setSaturationKrnPoint(unsigned pointIdx, Scalar value)
Sets an saturation value for non-wetting phase relperm saturation scaling.
Definition EclEpsScalingPoints.hpp:187
Scalar leverettFactor() const
Returns the Leverett scaling factor for capillary pressure.
Definition EclEpsScalingPoints.hpp:217
Definition EclipseState.hpp:66
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:40
This structure represents all values which can be possibly used as scaling points in the endpoint sca...
Definition EclEpsScalingPoints.hpp:55
void extractUnscaled(const satfunc::RawTableEndPoints &rtep, const satfunc::RawFunctionValues &rfunc, const std::vector< double >::size_type satRegionIdx)
Extract the values of the unscaled scaling parameters.
Definition EclEpsScalingPoints.cpp:83
void extractScaled(const EclipseState &eclState, const EclEpsGridProperties &epsProperties, unsigned activeIndex)
Extract the values of the scaled scaling parameters.
Definition EclEpsScalingPoints.cpp:118
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