My Project
Loading...
Searching...
No Matches
Opm::PLScanningCurve< ScalarT > Class Template Reference

Represents a scanning curve in the Parker-Lenhard hysteresis model. More...

#include <ParkerLenhard.hpp>

Public Types

typedef ScalarT Scalar
 

Public Member Functions

 PLScanningCurve (Scalar Swr)
 Constructs main imbibition curve.
 
 ~PLScanningCurve ()
 Destructor.
 
PLScanningCurveprev () const
 Return the previous scanning curve, i.e.
 
PLScanningCurvenext () const
 Return the next scanning curve, i.e.
 
void setNext (Scalar SwReversal, Scalar pcnwReversal, Scalar SwMiCurve, Scalar SwMdCurve)
 Set the next scanning curve.
 
bool isValidAt_Sw (Scalar SwReversal)
 Returns true iff the given effective saturation Swei is within the scope of the curve, i.e.
 
bool isImbib ()
 Returns true iff the scanning curve is a imbibition curve.
 
bool isDrain ()
 Returns true iff the scanning curve is a drainage curve.
 
int loopNum ()
 The loop number of the scanning curve.
 
Scalar Sw () const
 Absolute wetting-phase saturation at the scanning curve's reversal point.
 
Scalar pcnw () const
 Capillary pressure at the last reversal point.
 
Scalar SwMic ()
 Apparent saturation of the last reversal point on the pressure MIC.
 
Scalar SwMdc ()
 Apparent saturation of the last reversal point on the pressure MDC.
 

Protected Member Functions

 PLScanningCurve (PLScanningCurve *prevSC, PLScanningCurve *nextSC, int loopN, Scalar SwReversal, Scalar pcnwReversal, Scalar SwMiCurve, Scalar SwMdCurve)
 

Detailed Description

template<class ScalarT>
class Opm::PLScanningCurve< ScalarT >

Represents a scanning curve in the Parker-Lenhard hysteresis model.

The class has pointers to the scanning curves with higher and lower loop number, this saving the history of the imbibitions and drainages.

Constructor & Destructor Documentation

◆ PLScanningCurve()

template<class ScalarT >
Opm::PLScanningCurve< ScalarT >::PLScanningCurve ( Scalar  Swr)
inline

Constructs main imbibition curve.

Further scanning curves can be added with setNext.

◆ ~PLScanningCurve()

template<class ScalarT >
Opm::PLScanningCurve< ScalarT >::~PLScanningCurve ( )
inline

Destructor.

After it was called all references to the next() curve are invalid!

Member Function Documentation

◆ isValidAt_Sw()

template<class ScalarT >
bool Opm::PLScanningCurve< ScalarT >::isValidAt_Sw ( Scalar  SwReversal)
inline

Returns true iff the given effective saturation Swei is within the scope of the curve, i.e.

whether Swei is part of the curve's domain and the curve thus applies to Swi.

◆ loopNum()

template<class ScalarT >
int Opm::PLScanningCurve< ScalarT >::loopNum ( )
inline

The loop number of the scanning curve.

The MDC is 0, PISC is 1, PDSC is 2, ...

◆ next()

template<class ScalarT >
PLScanningCurve * Opm::PLScanningCurve< ScalarT >::next ( ) const
inline

Return the next scanning curve, i.e.

the curve with one more reversal than the current one.

◆ prev()

template<class ScalarT >
PLScanningCurve * Opm::PLScanningCurve< ScalarT >::prev ( ) const
inline

Return the previous scanning curve, i.e.

the curve with one less reversal than the current one.

◆ setNext()

template<class ScalarT >
void Opm::PLScanningCurve< ScalarT >::setNext ( Scalar  SwReversal,
Scalar  pcnwReversal,
Scalar  SwMiCurve,
Scalar  SwMdCurve 
)
inline

Set the next scanning curve.

Next in the sense of the number of reversals from imbibition to drainage or vince versa. If this curve already has a list of next curves, it is deleted and thus forgotten.


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