27 #ifndef OPM_ECL_EPS_SCALING_POINTS_HPP 28 #define OPM_ECL_EPS_SCALING_POINTS_HPP 30 #include <opm/common/utility/gpuDecorators.hpp> 41 class EclEpsGridProperties;
44 struct RawTableEndPoints;
45 struct RawFunctionValues;
55 template <
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)
128 const std::vector<double>::size_type satRegionIdx);
137 unsigned activeIndex);
140 void calculateLeverettFactors(
const EclipseState& eclState,
142 unsigned activeIndex);
151 template <
class Scalar>
166 { saturationPcPoints_[pointIdx] =
value; }
172 {
return saturationPcPoints_; }
178 { saturationKrwPoints_[pointIdx] =
value; }
184 {
return saturationKrwPoints_; }
190 { saturationKrnPoints_[pointIdx] =
value; }
196 {
return saturationKrnPoints_; }
202 { maxPcnwOrLeverettFactor_ =
value; }
208 {
return maxPcnwOrLeverettFactor_; }
214 { maxPcnwOrLeverettFactor_ =
value; }
220 {
return maxPcnwOrLeverettFactor_; }
227 { this->Krwr_ =
value; }
233 OPM_HOST_DEVICE Scalar
krwr()
const 234 {
return this->Krwr_; }
253 { this->Krnr_ =
value; }
259 OPM_HOST_DEVICE Scalar
krnr()
const 260 {
return this->Krnr_; }
278 Scalar maxPcnwOrLeverettFactor_{};
295 std::array<Scalar, 3> saturationPcPoints_{};
298 std::array<Scalar, 3> saturationKrwPoints_{};
301 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:239
EclTwoPhaseSystemType
Specified which fluids are involved in a given twophase material law for endpoint scaling...
Definition: EclEpsConfig.hpp:42
void setSaturationPcPoint(unsigned pointIdx, Scalar value)
Sets an saturation value for capillary pressure saturation scaling.
Definition: EclEpsScalingPoints.hpp:165
void setMaxPcnw(Scalar value)
Sets the maximum capillary pressure.
Definition: EclEpsScalingPoints.hpp:201
OPM_HOST_DEVICE Scalar maxKrn() const
Returns the maximum wetting phase relative permeability.
Definition: EclEpsScalingPoints.hpp:271
void setSaturationKrnPoint(unsigned pointIdx, Scalar value)
Sets an saturation value for non-wetting phase relperm saturation scaling.
Definition: EclEpsScalingPoints.hpp:189
OPM_HOST_DEVICE Scalar krnr() const
Returns non-wetting phase relative permeability at residual saturation of wetting phase...
Definition: EclEpsScalingPoints.hpp:259
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
OPM_HOST_DEVICE const std::array< Scalar, 3 > & saturationKrnPoints() const
Returns the points used for non-wetting phase relperm saturation scaling.
Definition: EclEpsScalingPoints.hpp:195
void setSaturationKrwPoint(unsigned pointIdx, Scalar value)
Sets an saturation value for wetting-phase relperm saturation scaling.
Definition: EclEpsScalingPoints.hpp:177
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:55
void setKrnr(Scalar value)
Set non-wetting phase relative permeability at residual saturation of wetting phase.
Definition: EclEpsScalingPoints.hpp:252
Collection of unscaled/raw saturation function value range endpoints extracted directly from tables o...
Definition: SatfuncPropertyInitializers.hpp:92
This structure represents all values which can be possibly used as scaling points in the endpoint sca...
Definition: EclEpsScalingPoints.hpp:56
OPM_HOST_DEVICE Scalar krwr() const
Returns wetting-phase relative permeability at residual saturation of non-wetting phase...
Definition: EclEpsScalingPoints.hpp:233
OPM_HOST_DEVICE Scalar leverettFactor() const
Returns the Leverett scaling factor for capillary pressure.
Definition: EclEpsScalingPoints.hpp:219
Definition: EclipseState.hpp:66
Represents the points on the X and Y axis to be scaled if endpoint scaling is used.
Definition: EclEpsScalingPoints.hpp:152
void setLeverettFactor(Scalar value)
Sets the Leverett scaling factor for capillary pressure.
Definition: EclEpsScalingPoints.hpp:213
void setMaxKrn(Scalar value)
Sets the maximum wetting phase relative permeability.
Definition: EclEpsScalingPoints.hpp:265
void setKrwr(Scalar value)
Set wetting-phase relative permeability at residual saturation of non-wetting phase.
Definition: EclEpsScalingPoints.hpp:226
OPM_HOST_DEVICE const std::array< Scalar, 3 > & saturationKrwPoints() const
Returns the points used for wetting phase relperm saturation scaling.
Definition: EclEpsScalingPoints.hpp:183
OPM_HOST_DEVICE Scalar maxKrw() const
Returns the maximum wetting phase relative permeability.
Definition: EclEpsScalingPoints.hpp:245
OPM_HOST_DEVICE const std::array< Scalar, 3 > & saturationPcPoints() const
Returns the points used for capillary pressure saturation scaling.
Definition: EclEpsScalingPoints.hpp:171
OPM_HOST_DEVICE Scalar maxPcnw() const
Returns the maximum capillary pressure.
Definition: EclEpsScalingPoints.hpp:207
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