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 &&
99 Sowcr == data.Sowcr &&
100 Sogcr == data.Sogcr &&
103 maxPcow == data.maxPcow &&
104 maxPcgo == data.maxPcgo &&
105 pcowLeverettFactor == data.pcowLeverettFactor &&
106 pcgoLeverettFactor == data.pcgoLeverettFactor &&
109 Krorw == data.Krorw &&
110 Krorg == data.Krorg &&
111 maxKrw == data.maxKrw &&
112 maxKrow == data.maxKrow &&
113 maxKrog == data.maxKrog &&
114 maxKrg == data.maxKrg;
128 const std::vector<double>::size_type satRegionIdx);
130 void update(Scalar& targetValue,
const double * value_ptr)
133 targetValue = *value_ptr;
143 unsigned activeIndex);
147 void extractGridPropertyValue_(Scalar& targetValue,
148 const std::vector<double>* propData,
149 unsigned cartesianCellIdx)
154 targetValue = (*propData)[cartesianCellIdx];
164template <
class Scalar>
179 { saturationPcPoints_[pointIdx] = value; }
185 {
return saturationPcPoints_; }
191 { saturationKrwPoints_[pointIdx] = value; }
197 {
return saturationKrwPoints_; }
203 { saturationKrnPoints_[pointIdx] = value; }
209 {
return saturationKrnPoints_; }
215 { maxPcnwOrLeverettFactor_ = value; }
221 {
return maxPcnwOrLeverettFactor_; }
227 { maxPcnwOrLeverettFactor_ = value; }
233 {
return maxPcnwOrLeverettFactor_; }
240 { this->Krwr_ = value; }
247 {
return this->Krwr_; }
266 { this->Krnr_ = value; }
273 {
return this->Krnr_; }
291 Scalar maxPcnwOrLeverettFactor_;
308 std::array<Scalar, 3> saturationPcPoints_;
311 std::array<Scalar, 3> saturationKrwPoints_;
314 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:166
const std::array< Scalar, 3 > & saturationKrwPoints() const
Returns the points used for wetting phase relperm saturation scaling.
Definition EclEpsScalingPoints.hpp:196
void setMaxKrn(Scalar value)
Sets the maximum wetting phase relative permeability.
Definition EclEpsScalingPoints.hpp:278
Scalar krnr() const
Returns non-wetting phase relative permeability at residual saturation of wetting phase.
Definition EclEpsScalingPoints.hpp:272
Scalar maxKrn() const
Returns the maximum wetting phase relative permeability.
Definition EclEpsScalingPoints.hpp:284
void setKrnr(Scalar value)
Set non-wetting phase relative permeability at residual saturation of wetting phase.
Definition EclEpsScalingPoints.hpp:265
void setMaxKrw(Scalar value)
Sets the maximum wetting phase relative permeability.
Definition EclEpsScalingPoints.hpp:252
Scalar maxKrw() const
Returns the maximum wetting phase relative permeability.
Definition EclEpsScalingPoints.hpp:258
void setSaturationKrwPoint(unsigned pointIdx, Scalar value)
Sets an saturation value for wetting-phase relperm saturation scaling.
Definition EclEpsScalingPoints.hpp:190
void setMaxPcnw(Scalar value)
Sets the maximum capillary pressure.
Definition EclEpsScalingPoints.hpp:214
Scalar krwr() const
Returns wetting-phase relative permeability at residual saturation of non-wetting phase.
Definition EclEpsScalingPoints.hpp:246
Scalar maxPcnw() const
Returns the maximum capillary pressure.
Definition EclEpsScalingPoints.hpp:220
void setKrwr(Scalar value)
Set wetting-phase relative permeability at residual saturation of non-wetting phase.
Definition EclEpsScalingPoints.hpp:239
void setSaturationPcPoint(unsigned pointIdx, Scalar value)
Sets an saturation value for capillary pressure saturation scaling.
Definition EclEpsScalingPoints.hpp:178
const std::array< Scalar, 3 > & saturationKrnPoints() const
Returns the points used for non-wetting phase relperm saturation scaling.
Definition EclEpsScalingPoints.hpp:208
void setLeverettFactor(Scalar value)
Sets the Leverett scaling factor for capillary pressure.
Definition EclEpsScalingPoints.hpp:226
const std::array< Scalar, 3 > & saturationPcPoints() const
Returns the points used for capillary pressure saturation scaling.
Definition EclEpsScalingPoints.hpp:184
void init(const EclEpsScalingPointsInfo< Scalar > &epsInfo, const EclEpsConfig &config, EclTwoPhaseSystemType epsSystemType)
Assigns the scaling points which actually ought to be used.
Definition EclEpsScalingPoints.cpp:202
void setSaturationKrnPoint(unsigned pointIdx, Scalar value)
Sets an saturation value for non-wetting phase relperm saturation scaling.
Definition EclEpsScalingPoints.hpp:202
Scalar leverettFactor() const
Returns the Leverett scaling factor for capillary pressure.
Definition EclEpsScalingPoints.hpp:232
Definition EclipseState.hpp:63
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