27 #ifndef OPM_ECL_EPS_SCALING_POINTS_HPP 28 #define OPM_ECL_EPS_SCALING_POINTS_HPP 39 class EclEpsGridProperties;
42 struct RawTableEndPoints;
43 struct RawFunctionValues;
53 template <
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);
149 template <
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_{};
Collection of unscaled/raw saturation range endpoints extracted directly from tables of tabulated sat...
Definition: SatfuncPropertyInitializers.hpp:35
void setMaxKrw(Scalar value)
Sets the maximum wetting phase relative permeability.
Definition: EclEpsScalingPoints.hpp:237
EclTwoPhaseSystemType
Specified which fluids are involved in a given twophase material law for endpoint scaling...
Definition: EclEpsConfig.hpp:40
void setSaturationPcPoint(unsigned pointIdx, Scalar value)
Sets an saturation value for capillary pressure saturation scaling.
Definition: EclEpsScalingPoints.hpp:163
void setMaxPcnw(Scalar value)
Sets the maximum capillary pressure.
Definition: EclEpsScalingPoints.hpp:199
Scalar maxKrw() const
Returns the maximum wetting phase relative permeability.
Definition: EclEpsScalingPoints.hpp:243
void setSaturationKrnPoint(unsigned pointIdx, Scalar value)
Sets an saturation value for non-wetting phase relperm saturation scaling.
Definition: EclEpsScalingPoints.hpp:187
Collects all grid properties which are relevant for end point scaling.
Definition: EclEpsGridProperties.hpp:44
void extractScaled(const EclipseState &eclState, const EclEpsGridProperties &epsProperties, unsigned activeIndex)
Extract the values of the scaled scaling parameters.
Definition: EclEpsScalingPoints.cpp:118
void setSaturationKrwPoint(unsigned pointIdx, Scalar value)
Sets an saturation value for wetting-phase relperm saturation scaling.
Definition: EclEpsScalingPoints.hpp:175
Scalar krwr() const
Returns wetting-phase relative permeability at residual saturation of non-wetting phase...
Definition: EclEpsScalingPoints.hpp:231
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 setKrnr(Scalar value)
Set non-wetting phase relative permeability at residual saturation of wetting phase.
Definition: EclEpsScalingPoints.hpp:250
Collection of unscaled/raw saturation function value range endpoints extracted directly from tables o...
Definition: SatfuncPropertyInitializers.hpp:92
Scalar leverettFactor() const
Returns the Leverett scaling factor for capillary pressure.
Definition: EclEpsScalingPoints.hpp:217
const std::array< Scalar, 3 > & saturationPcPoints() const
Returns the points used for capillary pressure saturation scaling.
Definition: EclEpsScalingPoints.hpp:169
This structure represents all values which can be possibly used as scaling points in the endpoint sca...
Definition: EclEpsScalingPoints.hpp:54
Scalar maxKrn() const
Returns the maximum wetting phase relative permeability.
Definition: EclEpsScalingPoints.hpp:269
Definition: EclipseState.hpp:66
Represents the points on the X and Y axis to be scaled if endpoint scaling is used.
Definition: EclEpsScalingPoints.hpp:150
void setLeverettFactor(Scalar value)
Sets the Leverett scaling factor for capillary pressure.
Definition: EclEpsScalingPoints.hpp:211
Scalar krnr() const
Returns non-wetting phase relative permeability at residual saturation of wetting phase...
Definition: EclEpsScalingPoints.hpp:257
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
void setKrwr(Scalar value)
Set wetting-phase relative permeability at residual saturation of non-wetting phase.
Definition: EclEpsScalingPoints.hpp:224
Scalar maxPcnw() const
Returns the maximum capillary pressure.
Definition: EclEpsScalingPoints.hpp:205
const std::array< Scalar, 3 > & saturationKrnPoints() const
Returns the points used for non-wetting phase relperm saturation scaling.
Definition: EclEpsScalingPoints.hpp:193
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 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