Opm::EclHysteresisTwoPhaseLawParams< EffLawT > Class Template Reference

A default implementation of the parameters for the material law which implements the ECL relative permeability and capillary pressure hysteresis. More...

#include <EclHysteresisTwoPhaseLawParams.hpp>

Inheritance diagram for Opm::EclHysteresisTwoPhaseLawParams< EffLawT >:
Inheritance graph

Public Types

using Traits = typename EffLawParams::Traits
 

Public Member Functions

 EclHysteresisTwoPhaseLawParams ()
 
void finalize ()
 Calculate all dependent quantities once the independent quantities of the parameter object have been set. More...
 
void setConfig (std::shared_ptr< EclHysteresisConfig > value)
 Set the endpoint scaling configuration object. More...
 
const EclHysteresisConfigconfig () const
 Returns the endpoint scaling configuration object. More...
 
void setDrainageParams (const EffLawParams &value, const EclEpsScalingPointsInfo< Scalar > &info, EclTwoPhaseSystemType twoPhaseSystem)
 Sets the parameters used for the drainage curve. More...
 
const EffLawParams & drainageParams () const
 Returns the parameters used for the drainage curve. More...
 
EffLawParams & drainageParams ()
 
void setImbibitionParams (const EffLawParams &value, const EclEpsScalingPointsInfo< Scalar > &info, EclTwoPhaseSystemType twoPhaseSystem)
 Sets the parameters used for the imbibition curve. More...
 
const EffLawParams & imbibitionParams () const
 Returns the parameters used for the imbibition curve. More...
 
EffLawParams & imbibitionParams ()
 
Scalar pcSwMdc () const
 Get the saturation of the wetting phase where the last switch from the main drainage curve to imbibition happend on the capillary pressure curve. More...
 
Scalar pcSwMic () const
 
bool initialImb () const
 Status of initial process. More...
 
void setKrwSwMdc (Scalar)
 Set the saturation of the wetting phase where the last switch from the main drainage curve (MDC) to imbibition happend on the relperm curve for the wetting phase. More...
 
Scalar krwSwMdc () const
 Get the saturation of the wetting phase where the last switch from the main drainage curve to imbibition happend on the relperm curve for the wetting phase. More...
 
void setKrnSwMdc (Scalar value)
 Set the saturation of the wetting phase where the last switch from the main drainage curve (MDC) to imbibition happend on the relperm curve for the non-wetting phase. More...
 
Scalar krnSwMdc () const
 Get the saturation of the wetting phase where the last switch from the main drainage curve to imbibition happend on the relperm curve for the non-wetting phase. More...
 
void setDeltaSwImbKrw (Scalar)
 Sets the saturation value which must be added if krw is calculated using the imbibition curve. More...
 
Scalar deltaSwImbKrw () const
 Returns the saturation value which must be added if krw is calculated using the imbibition curve. More...
 
void setDeltaSwImbKrn (Scalar value)
 Sets the saturation value which must be added if krn is calculated using the imbibition curve. More...
 
Scalar deltaSwImbKrn () const
 Returns the saturation value which must be added if krn is calculated using the imbibition curve. More...
 
Scalar Swcri () const
 
Scalar Swcrd () const
 
Scalar Swmaxi () const
 
Scalar Sncri () const
 
Scalar Sncrd () const
 
Scalar Sncrt () const
 
Scalar Snmaxd () const
 
Scalar Snhy () const
 
Scalar krnWght () const
 
Scalar pcWght () const
 
Scalar curvatureCapPrs () const
 
void update (Scalar pcSw, Scalar, Scalar krnSw)
 Notify the hysteresis law that a given wetting-phase saturation has been seen. More...
 

Protected Member Functions

void check () const
 

Detailed Description

template<class EffLawT>
class Opm::EclHysteresisTwoPhaseLawParams< EffLawT >

A default implementation of the parameters for the material law which implements the ECL relative permeability and capillary pressure hysteresis.

Member Typedef Documentation

◆ Traits

template<class EffLawT >
using Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::Traits = typename EffLawParams::Traits

Constructor & Destructor Documentation

◆ EclHysteresisTwoPhaseLawParams()

template<class EffLawT >
Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::EclHysteresisTwoPhaseLawParams ( )
inline

Member Function Documentation

◆ check()

void Opm::EnsureFinalized::check ( ) const
inlineprotectedinherited

Referenced by Opm::ThreePhaseParkerVanGenuchtenParams< TraitsT >::betaGN(), Opm::ThreePhaseParkerVanGenuchtenParams< TraitsT >::betaNW(), Opm::ParkerLenhardParams< TraitsT >::csc(), Opm::ParkerLenhardParams< TraitsT >::currentSnr(), Opm::EclHeatcrLawParams< ScalarT >::dRockHeatCapacity_dT(), Opm::TwoPhaseLETCurvesParams< TraitsT >::dS(), Opm::TwoPhaseLETCurvesParams< TraitsT >::dSpc(), Opm::EclThconrLawParams< ScalarT >::dTotalThermalConductivity_dSg(), Opm::TwoPhaseLETCurvesParams< TraitsT >::E(), Opm::BrooksCoreyParams< TraitsT >::entryPressure(), Opm::TwoPhaseLETCurvesParams< TraitsT >::Epc(), Opm::EclStone1MaterialParams< Traits, GasOilLawT, OilWaterLawT >::eta(), Opm::EclDefaultMaterialParams< Traits, GasOilParamsT, OilWaterParamsT >::gasOilParams(), Opm::EclStone1MaterialParams< Traits, GasOilLawT, OilWaterLawT >::gasOilParams(), Opm::EclStone2MaterialParams< Traits, GasOilParamsT, OilWaterParamsT >::gasOilParams(), Opm::EclTwoPhaseMaterialParams< Traits, GasOilParamsT, OilWaterParamsT, GasWaterParamsT >::gasOilParams(), Opm::EclTwoPhaseMaterialParams< Traits, GasOilParamsT, OilWaterParamsT, GasWaterParamsT >::gasWaterParams(), Opm::EclSpecrockLawParams< ScalarT >::internalEnergyFunction(), Opm::PiecewiseLinearTwoPhaseMaterialParams< TraitsT >::krnSamples(), Opm::SplineTwoPhaseMaterialParams< TraitsT >::krnSpline(), Opm::EclStone1MaterialParams< Traits, GasOilLawT, OilWaterLawT >::krocw(), Opm::ThreePhaseParkerVanGenuchtenParams< TraitsT >::krRegardsSnr(), Opm::TwoPhaseLETCurvesParams< TraitsT >::Krt(), Opm::PiecewiseLinearTwoPhaseMaterialParams< TraitsT >::krwSamples(), Opm::SplineTwoPhaseMaterialParams< TraitsT >::krwSpline(), Opm::TwoPhaseLETCurvesParams< TraitsT >::L(), Opm::BrooksCoreyParams< TraitsT >::lambda(), Opm::TwoPhaseLETCurvesParams< TraitsT >::Lpc(), Opm::ParkerLenhardParams< TraitsT >::mdc(), Opm::ParkerLenhardParams< TraitsT >::mdcParams(), Opm::ParkerLenhardParams< TraitsT >::micParams(), Opm::EclDefaultMaterialParams< Traits, GasOilParamsT, OilWaterParamsT >::oilWaterParams(), Opm::EclStone1MaterialParams< Traits, GasOilLawT, OilWaterLawT >::oilWaterParams(), Opm::EclStone2MaterialParams< Traits, GasOilParamsT, OilWaterParamsT >::oilWaterParams(), Opm::EclTwoPhaseMaterialParams< Traits, GasOilParamsT, OilWaterParamsT, GasWaterParamsT >::oilWaterParams(), Opm::TwoPhaseLETCurvesParams< TraitsT >::Pcir(), Opm::LinearMaterialParams< TraitsT >::pcMaxSat(), Opm::LinearMaterialParams< TraitsT >::pcMinSat(), Opm::RegularizedBrooksCoreyParams< TraitsT >::pcnwHigh(), Opm::RegularizedVanGenuchtenParams< TraitsT >::pcnwHigh(), Opm::RegularizedVanGenuchtenParams< TraitsT >::pcnwHighSpline(), Opm::RegularizedVanGenuchtenParams< TraitsT >::pcnwHighSw(), Opm::RegularizedBrooksCoreyParams< TraitsT >::pcnwLow(), Opm::RegularizedVanGenuchtenParams< TraitsT >::pcnwLow(), Opm::RegularizedBrooksCoreyParams< TraitsT >::pcnwLowSw(), Opm::RegularizedVanGenuchtenParams< TraitsT >::pcnwLowSw(), Opm::PiecewiseLinearTwoPhaseMaterialParams< TraitsT >::pcnwSamples(), Opm::RegularizedBrooksCoreyParams< TraitsT >::pcnwSlopeHigh(), Opm::RegularizedVanGenuchtenParams< TraitsT >::pcnwSlopeHigh(), Opm::RegularizedBrooksCoreyParams< TraitsT >::pcnwSlopeLow(), Opm::RegularizedVanGenuchtenParams< TraitsT >::pcnwSlopeLow(), Opm::SplineTwoPhaseMaterialParams< TraitsT >::pcnwSpline(), Opm::TwoPhaseLETCurvesParams< TraitsT >::Pct(), Opm::ParkerLenhardParams< TraitsT >::pisc(), Opm::EclThcLawParams< ScalarT >::porosity(), Opm::EclHeatcrLawParams< ScalarT >::referenceRockHeatCapacity(), Opm::EclThconrLawParams< ScalarT >::referenceTotalThermalConductivity(), Opm::EffToAbsLawParams< EffLawParamsT, numPhases >::residualSaturation(), Opm::ThreePhaseParkerVanGenuchtenParams< TraitsT >::Sgr(), Opm::TwoPhaseLETCurvesParams< TraitsT >::Smin(), Opm::TwoPhaseLETCurvesParams< TraitsT >::Sminpc(), Opm::ParkerLenhardParams< TraitsT >::Snr(), Opm::ThreePhaseParkerVanGenuchtenParams< TraitsT >::Snr(), Opm::ConstantSolidHeatCapLawParams< ScalarT >::solidHeatCapacity(), Opm::EffToAbsLawParams< EffLawParamsT, numPhases >::sumResidualSaturations(), Opm::PiecewiseLinearTwoPhaseMaterialParams< TraitsT >::SwKrnSamples(), Opm::PiecewiseLinearTwoPhaseMaterialParams< TraitsT >::SwKrwSamples(), Opm::EclDefaultMaterialParams< Traits, GasOilParamsT, OilWaterParamsT >::Swl(), Opm::EclStone1MaterialParams< Traits, GasOilLawT, OilWaterLawT >::Swl(), Opm::EclStone2MaterialParams< Traits, GasOilParamsT, OilWaterParamsT >::Swl(), Opm::PiecewiseLinearTwoPhaseMaterialParams< TraitsT >::SwPcwnSamples(), Opm::ThreePhaseParkerVanGenuchtenParams< TraitsT >::Swr(), Opm::ParkerLenhardParams< TraitsT >::SwrKr(), Opm::ParkerLenhardParams< TraitsT >::SwrPc(), Opm::ThreePhaseParkerVanGenuchtenParams< TraitsT >::Swrx(), Opm::TwoPhaseLETCurvesParams< TraitsT >::T(), Opm::EclThcLawParams< ScalarT >::thcgas(), Opm::EclThcLawParams< ScalarT >::thcoil(), Opm::EclThcLawParams< ScalarT >::thcrock(), Opm::EclThcLawParams< ScalarT >::thcwater(), Opm::TwoPhaseLETCurvesParams< TraitsT >::Tpc(), Opm::ThreePhaseParkerVanGenuchtenParams< TraitsT >::vgAlpha(), Opm::VanGenuchtenParams< TraitsT >::vgAlpha(), Opm::ThreePhaseParkerVanGenuchtenParams< TraitsT >::vgM(), Opm::VanGenuchtenParams< TraitsT >::vgM(), Opm::ThreePhaseParkerVanGenuchtenParams< TraitsT >::vgN(), and Opm::VanGenuchtenParams< TraitsT >::vgN().

◆ config()

◆ curvatureCapPrs()

template<class EffLawT >
Scalar Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::curvatureCapPrs ( ) const
inline

◆ deltaSwImbKrn()

template<class EffLawT >
Scalar Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::deltaSwImbKrn ( ) const
inline

Returns the saturation value which must be added if krn is calculated using the imbibition curve.

This means that krn(Sw) = krn_drainage(Sw) if Sw < SwMdc and krn(Sw) = krn_imbibition(Sw + Sw_shift,krn) else

◆ deltaSwImbKrw()

template<class EffLawT >
Scalar Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::deltaSwImbKrw ( ) const
inline

Returns the saturation value which must be added if krw is calculated using the imbibition curve.

This means that krw(Sw) = krw_drainage(Sw) if Sw < SwMdc and krw(Sw) = krw_imbibition(Sw + Sw_shift,krw) else

◆ drainageParams() [1/2]

template<class EffLawT >
EffLawParams & Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::drainageParams ( )
inline

◆ drainageParams() [2/2]

template<class EffLawT >
const EffLawParams & Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::drainageParams ( ) const
inline

◆ finalize()

template<class EffLawT >
void Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::finalize ( )
inline

Calculate all dependent quantities once the independent quantities of the parameter object have been set.

References Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::config(), Opm::EclHysteresisConfig::curvatureCapPrs(), and Opm::EnsureFinalized::finalize().

◆ imbibitionParams() [1/2]

template<class EffLawT >
EffLawParams & Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::imbibitionParams ( )
inline

◆ imbibitionParams() [2/2]

template<class EffLawT >
const EffLawParams & Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::imbibitionParams ( ) const
inline

Returns the parameters used for the imbibition curve.

◆ initialImb()

template<class EffLawT >
bool Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::initialImb ( ) const
inline

Status of initial process.

◆ krnSwMdc()

template<class EffLawT >
Scalar Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::krnSwMdc ( ) const
inline

Get the saturation of the wetting phase where the last switch from the main drainage curve to imbibition happend on the relperm curve for the non-wetting phase.

◆ krnWght()

template<class EffLawT >
Scalar Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::krnWght ( ) const
inline

◆ krwSwMdc()

template<class EffLawT >
Scalar Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::krwSwMdc ( ) const
inline

Get the saturation of the wetting phase where the last switch from the main drainage curve to imbibition happend on the relperm curve for the wetting phase.

◆ pcSwMdc()

template<class EffLawT >
Scalar Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::pcSwMdc ( ) const
inline

Get the saturation of the wetting phase where the last switch from the main drainage curve to imbibition happend on the capillary pressure curve.

◆ pcSwMic()

template<class EffLawT >
Scalar Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::pcSwMic ( ) const
inline

◆ pcWght()

template<class EffLawT >
Scalar Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::pcWght ( ) const
inline

◆ setConfig()

template<class EffLawT >
void Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::setConfig ( std::shared_ptr< EclHysteresisConfig value)
inline

Set the endpoint scaling configuration object.

◆ setDeltaSwImbKrn()

template<class EffLawT >
void Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::setDeltaSwImbKrn ( Scalar  value)
inline

Sets the saturation value which must be added if krn is calculated using the imbibition curve.

This means that krn(Sw) = krn_drainage(Sw) if Sw < SwMdc and krn(Sw) = krn_imbibition(Sw + Sw_shift,krn) else

◆ setDeltaSwImbKrw()

template<class EffLawT >
void Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::setDeltaSwImbKrw ( Scalar  )
inline

Sets the saturation value which must be added if krw is calculated using the imbibition curve.

This means that krw(Sw) = krw_drainage(Sw) if Sw < SwMdc and krw(Sw) = krw_imbibition(Sw + Sw_shift,krw) else

◆ setDrainageParams()

◆ setImbibitionParams()

◆ setKrnSwMdc()

template<class EffLawT >
void Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::setKrnSwMdc ( Scalar  value)
inline

Set the saturation of the wetting phase where the last switch from the main drainage curve (MDC) to imbibition happend on the relperm curve for the non-wetting phase.

◆ setKrwSwMdc()

template<class EffLawT >
void Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::setKrwSwMdc ( Scalar  )
inline

Set the saturation of the wetting phase where the last switch from the main drainage curve (MDC) to imbibition happend on the relperm curve for the wetting phase.

◆ Sncrd()

template<class EffLawT >
Scalar Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::Sncrd ( ) const
inline

◆ Sncri()

template<class EffLawT >
Scalar Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::Sncri ( ) const
inline

◆ Sncrt()

template<class EffLawT >
Scalar Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::Sncrt ( ) const
inline

◆ Snhy()

template<class EffLawT >
Scalar Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::Snhy ( ) const
inline

◆ Snmaxd()

template<class EffLawT >
Scalar Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::Snmaxd ( ) const
inline

◆ Swcrd()

template<class EffLawT >
Scalar Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::Swcrd ( ) const
inline

◆ Swcri()

template<class EffLawT >
Scalar Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::Swcri ( ) const
inline

◆ Swmaxi()

template<class EffLawT >
Scalar Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::Swmaxi ( ) const
inline

◆ update()

template<class EffLawT >
void Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::update ( Scalar  pcSw,
Scalar  ,
Scalar  krnSw 
)
inline

Notify the hysteresis law that a given wetting-phase saturation has been seen.

This updates the scanning curves and the imbibition<->drainage reversal points as appropriate.

References Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::config(), and Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::drainageParams().


The documentation for this class was generated from the following file: