27#ifndef OPM_PARKER_LENHARD_PARAMS_HPP
28#define OPM_PARKER_LENHARD_PARAMS_HPP
38template <
class ScalarT>
45template <
class TraitsT>
51 using Scalar =
typename TraitsT::Scalar;
53 using VanGenuchtenParams =
typename VanGenuchten::Params;
58 , mdc_(
new ScanningCurve(0))
62 ParkerLenhardParams(
const ParkerLenhardParams& p)
66 , mdc_(
new ScanningCurve(SwrPc_))
70 ParkerLenhardParams& operator=(
const ParkerLenhardParams&) =
delete;
72 ~ParkerLenhardParams()
80 { EnsureFinalized::check();
return *micParams_; }
94 { EnsureFinalized::check();
return *mdcParams_; }
101 { mdcParams_ = val; }
107 { EnsureFinalized::check();
return Snr_; }
119 { EnsureFinalized::check();
return SwrPc_; }
125 { EnsureFinalized::check();
return SwrKr_; }
131 void setSwr(Scalar pcSwr, Scalar krSwr = -1)
134 SwrKr_ = krSwr < 0 ? pcSwr : krSwr;
141 { EnsureFinalized::check();
return currentSnr_; }
147 { currentSnr_ = val; }
152 ScanningCurve*
mdc()
const
153 { EnsureFinalized::check();
return mdc_; }
165 { EnsureFinalized::check();
return pisc_; }
176 ScanningCurve*
csc()
const
177 { EnsureFinalized::check();
return csc_; }
187 const VanGenuchtenParams* mdcParams_{
nullptr};
191 Scalar currentSnr_{};
192 mutable ScanningCurve* mdc_{
nullptr};
193 mutable ScanningCurve* pisc_{
nullptr};
194 mutable ScanningCurve* csc_{
nullptr};
Default implementation for asserting finalization of parameter objects.
Implementation of the regularized van Genuchten's capillary pressure / relative permeability <-> satu...
OPM_HOST_DEVICE EnsureFinalized()
The default constructor.
Definition EnsureFinalized.hpp:58
OPM_HOST_DEVICE void finalize()
Mark the object as finalized.
Definition EnsureFinalized.hpp:82
Represents a scanning curve in the Parker-Lenhard hysteresis model.
Definition ParkerLenhard.hpp:48
Scalar SwrPc() const
Returns wetting phase residual saturation for the capillary pressure curve.
Definition ParkerLenhardParams.hpp:118
void setSwr(Scalar pcSwr, Scalar krSwr=-1)
Set the wetting phase residual saturation for the capillary pressure and the relative permeabilities.
Definition ParkerLenhardParams.hpp:131
void setSnr(Scalar val)
Set the non-wetting phase residual saturation.
Definition ParkerLenhardParams.hpp:112
void setPisc(ScanningCurve *val)
Set the primary imbibition scanning curve.
Definition ParkerLenhardParams.hpp:170
ScanningCurve * mdc() const
Returns the main drainage curve.
Definition ParkerLenhardParams.hpp:152
void setMicParams(const VanGenuchtenParams *val)
Sets the parameters of the main imbibition curve (which uses the van Genuchten capillary pressure mod...
Definition ParkerLenhardParams.hpp:86
ScanningCurve * pisc() const
Returns the primary imbibition scanning curve.
Definition ParkerLenhardParams.hpp:164
void setCsc(ScanningCurve *val)
Set the current scanning curve.
Definition ParkerLenhardParams.hpp:182
Scalar currentSnr() const
Returns the current effective residual saturation.
Definition ParkerLenhardParams.hpp:140
Scalar Snr() const
Returns non-wetting phase residual saturation.
Definition ParkerLenhardParams.hpp:106
const VanGenuchtenParams & mdcParams() const
Returns the parameters of the main drainage curve (which uses the van Genuchten capillary pressure mo...
Definition ParkerLenhardParams.hpp:93
void setMdcParams(const VanGenuchtenParams *val)
Sets the parameters of the main drainage curve (which uses the van Genuchten capillary pressure model...
Definition ParkerLenhardParams.hpp:100
Scalar SwrKr() const
Returns wetting phase residual saturation for the residual saturation curves.
Definition ParkerLenhardParams.hpp:124
void setCurrentSnr(Scalar val)
Set the current effective residual saturation.
Definition ParkerLenhardParams.hpp:146
const VanGenuchtenParams & micParams() const
Returns the parameters of the main imbibition curve (which uses the van Genuchten capillary pressure ...
Definition ParkerLenhardParams.hpp:79
ScanningCurve * csc() const
Returns the current scanning curve.
Definition ParkerLenhardParams.hpp:176
void setMdc(ScanningCurve *val)
Set the main drainage curve.
Definition ParkerLenhardParams.hpp:158
Implementation of the regularized van Genuchten's capillary pressure / relative permeability <-> satu...
Definition RegularizedVanGenuchten.hpp:72
Specification of the material parameters for the van Genuchten constitutive relations.
Definition VanGenuchtenParams.hpp:45
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30