Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT > Class Template Reference

Implementation of three-phase capillary pressure and relative permeability relations proposed by Parker and van Genuchten. More...

#include <ThreePhaseParkerVanGenuchten.hpp>

Public Types

typedef TraitsT Traits
 
typedef ParamsT Params
 
typedef Traits::Scalar Scalar
 

Static Public Member Functions

template<class ContainerT , class FluidState >
static void capillaryPressures (ContainerT &values, const Params &params, const FluidState &fluidState)
 Implements the three phase capillary pressure law proposed by Parker and van Genuchten. More...
 
template<class FluidState , class Evaluation = typename FluidState::Scalar>
static Evaluation pcgn (const Params &params, const FluidState &fluidState)
 Capillary pressure between the gas and the non-wetting liquid (i.e., oil) phase. More...
 
template<class FluidState , class Evaluation = typename FluidState::Scalar>
static Evaluation pcnw (const Params &params, const FluidState &fluidState)
 Capillary pressure between the non-wetting liquid (i.e., oil) and the wetting liquid (i.e., water) phase. More...
 
template<class ContainerT , class FluidState >
static void saturations (ContainerT &, const Params &, const FluidState &)
 The saturation-capillary pressure curve. More...
 
template<class FluidState , class Evaluation = typename FluidState::Scalar>
static Evaluation Sg (const Params &, const FluidState &)
 The saturation of the gas phase. More...
 
template<class FluidState , class Evaluation = typename FluidState::Scalar>
static Evaluation Sn (const Params &, const FluidState &)
 The saturation of the non-wetting (i.e., oil) phase. More...
 
template<class FluidState , class Evaluation = typename FluidState::Scalar>
static Evaluation Sw (const Params &, const FluidState &)
 The saturation of the wetting (i.e., water) phase. More...
 
template<class ContainerT , class FluidState >
static void relativePermeabilities (ContainerT &values, const Params &params, const FluidState &fluidState)
 The relative permeability of all phases. More...
 
template<class FluidState , class Evaluation = typename FluidState::Scalar>
static Evaluation krw (const Params &params, const FluidState &fluidState)
 The relative permeability for the wetting phase of the medium implied by van Genuchten's parameterization. More...
 
template<class FluidState , class Evaluation = typename FluidState::Scalar>
static Evaluation krn (const Params &params, const FluidState &fluidState)
 The relative permeability for the non-wetting phase due to the model of Parker et al. (1987). More...
 
template<class FluidState , class Evaluation = typename FluidState::Scalar>
static Evaluation krg (const Params &params, const FluidState &fluidState)
 The relative permeability for the non-wetting phase of the medium implied by van Genuchten's parameterization. More...
 

Static Public Attributes

static const int numPhases = 3
 
static const int wettingPhaseIdx = Traits::wettingPhaseIdx
 
static const int nonWettingPhaseIdx = Traits::nonWettingPhaseIdx
 
static const int gasPhaseIdx = Traits::gasPhaseIdx
 
static const bool implementsTwoPhaseApi = false
 
static const bool implementsTwoPhaseSatApi = false
 
static const bool isSaturationDependent = true
 
static const bool isPressureDependent = false
 
static const bool isTemperatureDependent = false
 
static const bool isCompositionDependent = false
 

Detailed Description

template<class TraitsT, class ParamsT = ThreePhaseParkerVanGenuchtenParams<TraitsT>>
class Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >

Implementation of three-phase capillary pressure and relative permeability relations proposed by Parker and van Genuchten.

Reference: J.B. Kool, J.C. Parker, M.Th. van Genuchten: Parameter Estimation for Unsaturated Flow and Transport Models – A Review; Journal of Hydrology, 91 (1987) 255-293

Member Typedef Documentation

◆ Params

template<class TraitsT , class ParamsT = ThreePhaseParkerVanGenuchtenParams<TraitsT>>
typedef ParamsT Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::Params

◆ Scalar

template<class TraitsT , class ParamsT = ThreePhaseParkerVanGenuchtenParams<TraitsT>>
typedef Traits::Scalar Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::Scalar

◆ Traits

template<class TraitsT , class ParamsT = ThreePhaseParkerVanGenuchtenParams<TraitsT>>
typedef TraitsT Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::Traits

Member Function Documentation

◆ capillaryPressures()

template<class TraitsT , class ParamsT = ThreePhaseParkerVanGenuchtenParams<TraitsT>>
template<class ContainerT , class FluidState >
static void Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::capillaryPressures ( ContainerT &  values,
const Params params,
const FluidState &  fluidState 
)
inlinestatic

Implements the three phase capillary pressure law proposed by Parker and van Genuchten.

This material law is valid for three fluid phases and only depends on the saturations.

Parameters
valuesContainer for the return values
paramsParameters
stateThe fluid state

References Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::gasPhaseIdx, Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::nonWettingPhaseIdx, and Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::wettingPhaseIdx.

◆ krg()

template<class TraitsT , class ParamsT = ThreePhaseParkerVanGenuchtenParams<TraitsT>>
template<class FluidState , class Evaluation = typename FluidState::Scalar>
static Evaluation Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::krg ( const Params params,
const FluidState &  fluidState 
)
inlinestatic

The relative permeability for the non-wetting phase of the medium implied by van Genuchten's parameterization.

The permeability of gas in a three-phase system equals the standard two-phase description. (see p61. of "Comparison of the Three-Phase Oil Relative Permeability Models" M. Delshad and G. A. Pope, Transport in Porous Media 4 (1989), 59-83.)

References Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::gasPhaseIdx, Opm::min(), Opm::pow(), and Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::Sg().

◆ krn()

template<class TraitsT , class ParamsT = ThreePhaseParkerVanGenuchtenParams<TraitsT>>
template<class FluidState , class Evaluation = typename FluidState::Scalar>
static Evaluation Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::krn ( const Params params,
const FluidState &  fluidState 
)
inlinestatic

The relative permeability for the non-wetting phase due to the model of Parker et al. (1987).

See model 7 of "Comparison of the Three-Phase Oil Relative Permeability Models" M. Delshad and G. A. Pope, Transport in Porous Media 4 (1989), 59-83; or – more comprehensively – "Estimation of primary drainage three-phase relative permeability for organic liquid transport in the vadose zone", L. I. Oliveira, A. H. Demond, Journal of Contaminant Hydrology 66 (2003), 261-285

References Opm::max(), Opm::min(), Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::nonWettingPhaseIdx, Opm::pow(), Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::Sn(), Opm::sqrt(), Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::Sw(), and Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::wettingPhaseIdx.

◆ krw()

template<class TraitsT , class ParamsT = ThreePhaseParkerVanGenuchtenParams<TraitsT>>
template<class FluidState , class Evaluation = typename FluidState::Scalar>
static Evaluation Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::krw ( const Params params,
const FluidState &  fluidState 
)
inlinestatic

The relative permeability for the wetting phase of the medium implied by van Genuchten's parameterization.

The permeability of water in a 3p system equals the standard 2p description. (see p61. in "Comparison of the Three-Phase Oil Relative Permeability Models" MOJDEH DELSHAD and GARY A. POPE, Transport in Porous Media 4 (1989), 59-83.)

References Opm::pow(), Opm::sqrt(), Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::Sw(), and Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::wettingPhaseIdx.

◆ pcgn()

template<class TraitsT , class ParamsT = ThreePhaseParkerVanGenuchtenParams<TraitsT>>
template<class FluidState , class Evaluation = typename FluidState::Scalar>
static Evaluation Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::pcgn ( const Params params,
const FluidState &  fluidState 
)
inlinestatic

Capillary pressure between the gas and the non-wetting liquid (i.e., oil) phase.

This is defined as

\[
p_{c,gn} = p_g - p_n
\]

References Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::nonWettingPhaseIdx, Opm::pow(), and Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::wettingPhaseIdx.

◆ pcnw()

template<class TraitsT , class ParamsT = ThreePhaseParkerVanGenuchtenParams<TraitsT>>
template<class FluidState , class Evaluation = typename FluidState::Scalar>
static Evaluation Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::pcnw ( const Params params,
const FluidState &  fluidState 
)
inlinestatic

Capillary pressure between the non-wetting liquid (i.e., oil) and the wetting liquid (i.e., water) phase.

This is defined as

\[
p_{c,nw} = p_n - p_w
\]

References Opm::pow(), Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::Sw(), and Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::wettingPhaseIdx.

◆ relativePermeabilities()

template<class TraitsT , class ParamsT = ThreePhaseParkerVanGenuchtenParams<TraitsT>>
template<class ContainerT , class FluidState >
static void Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::relativePermeabilities ( ContainerT &  values,
const Params params,
const FluidState &  fluidState 
)
inlinestatic

◆ saturations()

template<class TraitsT , class ParamsT = ThreePhaseParkerVanGenuchtenParams<TraitsT>>
template<class ContainerT , class FluidState >
static void Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::saturations ( ContainerT &  ,
const Params ,
const FluidState &   
)
inlinestatic

The saturation-capillary pressure curve.

◆ Sg()

template<class TraitsT , class ParamsT = ThreePhaseParkerVanGenuchtenParams<TraitsT>>
template<class FluidState , class Evaluation = typename FluidState::Scalar>
static Evaluation Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::Sg ( const Params ,
const FluidState &   
)
inlinestatic

The saturation of the gas phase.

Referenced by Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::krg().

◆ Sn()

template<class TraitsT , class ParamsT = ThreePhaseParkerVanGenuchtenParams<TraitsT>>
template<class FluidState , class Evaluation = typename FluidState::Scalar>
static Evaluation Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::Sn ( const Params ,
const FluidState &   
)
inlinestatic

The saturation of the non-wetting (i.e., oil) phase.

Referenced by Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::krn().

◆ Sw()

template<class TraitsT , class ParamsT = ThreePhaseParkerVanGenuchtenParams<TraitsT>>
template<class FluidState , class Evaluation = typename FluidState::Scalar>
static Evaluation Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::Sw ( const Params ,
const FluidState &   
)
inlinestatic

Member Data Documentation

◆ gasPhaseIdx

template<class TraitsT , class ParamsT = ThreePhaseParkerVanGenuchtenParams<TraitsT>>
const int Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::gasPhaseIdx = Traits::gasPhaseIdx
static

◆ implementsTwoPhaseApi

template<class TraitsT , class ParamsT = ThreePhaseParkerVanGenuchtenParams<TraitsT>>
const bool Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::implementsTwoPhaseApi = false
static

Specify whether this material law implements the two-phase convenience API

◆ implementsTwoPhaseSatApi

template<class TraitsT , class ParamsT = ThreePhaseParkerVanGenuchtenParams<TraitsT>>
const bool Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::implementsTwoPhaseSatApi = false
static

Specify whether this material law implements the two-phase convenience API which only depends on the phase saturations

◆ isCompositionDependent

template<class TraitsT , class ParamsT = ThreePhaseParkerVanGenuchtenParams<TraitsT>>
const bool Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::isCompositionDependent = false
static

Specify whether the quantities defined by this material law are dependent on the phase composition

◆ isPressureDependent

template<class TraitsT , class ParamsT = ThreePhaseParkerVanGenuchtenParams<TraitsT>>
const bool Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::isPressureDependent = false
static

Specify whether the quantities defined by this material law are dependent on the absolute pressure

◆ isSaturationDependent

template<class TraitsT , class ParamsT = ThreePhaseParkerVanGenuchtenParams<TraitsT>>
const bool Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::isSaturationDependent = true
static

Specify whether the quantities defined by this material law are saturation dependent

◆ isTemperatureDependent

template<class TraitsT , class ParamsT = ThreePhaseParkerVanGenuchtenParams<TraitsT>>
const bool Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::isTemperatureDependent = false
static

Specify whether the quantities defined by this material law are temperature dependent

◆ nonWettingPhaseIdx

◆ numPhases

template<class TraitsT , class ParamsT = ThreePhaseParkerVanGenuchtenParams<TraitsT>>
const int Opm::ThreePhaseParkerVanGenuchten< TraitsT, ParamsT >::numPhases = 3
static

◆ wettingPhaseIdx


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