opm-common
Loading...
Searching...
No Matches
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 >:
Opm::EnsureFinalized

Public Types

using Traits = typename EffLawParams::Traits

Public Member Functions

void finalize ()
 Calculate all dependent quantities once the independent quantities of the parameter object have been set.
void setConfig (const EclHysteresisConfig &value)
 Set the hysteresis configuration object.
const EclHysteresisConfigconfig () const
 Returns the hysteresis configuration object.
void setWagConfig (std::shared_ptr< WagHysteresisConfig::WagHysteresisConfigRecord > value)
 Set the WAG-hysteresis configuration object.
const WagHysteresisConfig::WagHysteresisConfigRecordwagConfig () const
 Returns the WAG-hysteresis configuration object.
void setDrainageParams (const EffLawParams &value, const EclEpsScalingPointsInfo< Scalar > &info, EclTwoPhaseSystemType twoPhaseSystem)
 Sets the parameters used for the drainage curve.
const EffLawParams & drainageParams () const
 Returns the parameters used for the drainage curve.
EffLawParams & drainageParams ()
void setImbibitionParams (const EffLawParams &value, const EclEpsScalingPointsInfo< Scalar > &info, EclTwoPhaseSystemType twoPhaseSystem)
 Sets the parameters used for the imbibition curve.
const EffLawParams & imbibitionParams () const
 Returns the parameters used for the imbibition curve.
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.
Scalar pcSwMic () const
bool initialImb () const
 Status of initial process.
void setKrwSwMdc (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 wetting phase.
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.
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.
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.
void setDeltaSwImbKrn (Scalar value)
 Sets the saturation value which must be added if krw is calculated using the imbibition curve.
Scalar deltaSwImbKrn () const
 Returns the saturation value which must be added if krn is calculated using the imbibition curve.
Scalar Swcri () const
Scalar Swcrd () const
Scalar Swmaxi () const
Scalar Sncri () const
Scalar Sncrd () const
Scalar Sncrt () const
Scalar Swcrt () const
Scalar SnTrapped (bool maximumTrapping) const
Scalar SnStranded (Scalar sg, Scalar krg) const
Scalar SwTrapped () const
Scalar SncrtWAG () const
Scalar Snmaxd () const
Scalar Swmaxd () const
Scalar Snhy () const
Scalar Swhy () const
Scalar Swco () const
Scalar krnWght () const
template<class Evaluation>
Evaluation krwWght (const Evaluation &Krwd) const
Scalar krwdMax () const
Scalar KrwdHy () const
Scalar Krwd_sncri () const
Scalar Krwi_snmax () const
Scalar Krwi_snrmax () const
Scalar Krwd_sncrt () const
Scalar pcWght () const
Scalar curvatureCapPrs () const
bool gasOilHysteresisWAG () const
Scalar reductionDrain () const
Scalar reductionDrainNxt () const
bool threePhaseState () const
Scalar nState () const
Scalar krnSwDrainRevert () const
Scalar krnDrainStart () const
Scalar krnDrainStartNxt () const
Scalar krnImbStart () const
Scalar krnImbStartNxt () const
Scalar krnSwWAG () const
Scalar krnSwDrainStart () const
Scalar krnSwDrainStartNxt () const
Scalar krnSwImbStart () const
Scalar tolWAG () const
template<class Evaluation>
Evaluation computeSwf (const Evaluation &Sw) const
template<class Evaluation>
Evaluation computeKrImbWAG (const Evaluation &Sw) const
bool update (Scalar pcSw, Scalar krwSw, Scalar krnSw)
 Notify the hysteresis law that a given wetting-phase saturation has been seen.
template<class Serializer>
void serializeOp (Serializer &serializer)
bool operator== (const EclHysteresisTwoPhaseLawParams &rhs) const
Public Member Functions inherited from Opm::EnsureFinalized
OPM_HOST_DEVICE void finalize ()
 Mark the object as finalized.

Static Public Member Functions

static EclHysteresisTwoPhaseLawParams serializationTestObject ()

Additional Inherited Members

Protected Member Functions inherited from Opm::EnsureFinalized
OPM_HOST_DEVICE EnsureFinalized ()
 The default constructor.
OPM_HOST_DEVICE 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 Function Documentation

◆ 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

◆ setDeltaSwImbKrn()

template<class EffLawT>
void Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::setDeltaSwImbKrn ( Scalar value)
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

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

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

◆ update()

template<class EffLawT>
bool Opm::EclHysteresisTwoPhaseLawParams< EffLawT >::update ( Scalar pcSw,
Scalar krwSw,
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.


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