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

Implementation of a tabulated, piecewise linear capillary pressure law. More...

#include <PiecewiseLinearTwoPhaseMaterial.hpp>

Inheritance diagram for Opm::PiecewiseLinearTwoPhaseMaterial< TraitsT, ParamsT >:
Inheritance graph

Public Types

using Traits = TraitsT
 The traits class for this material law. More...
 
using Params = ParamsT
 The type of the parameter objects for this law. More...
 
using Scalar = typename Traits::Scalar
 The type of the scalar values for this law. More...
 

Static Public Member Functions

template<class Container , class FluidState >
static void capillaryPressures (Container &values, const Params &params, const FluidState &fs)
 The capillary pressure-saturation curve. More...
 
template<class Container , class FluidState >
static void saturations (Container &, const Params &, const FluidState &)
 The saturations of the fluid phases starting from their pressure differences. More...
 
template<class Container , class FluidState >
static void relativePermeabilities (Container &values, const Params &params, const FluidState &fs)
 The relative permeabilities. More...
 
template<class FluidState , class Evaluation = typename FluidState::Scalar>
static Evaluation pcnw (const Params &params, const FluidState &fs)
 The capillary pressure-saturation curve. More...
 
template<class Evaluation >
static Evaluation twoPhaseSatPcnw (const Params &params, const Evaluation &Sw)
 The saturation-capillary pressure curve. More...
 
template<class Evaluation >
static Evaluation twoPhaseSatPcnwInv (const Params &params, const Evaluation &pcnw)
 
template<class FluidState , class Evaluation = typename FluidState::Scalar>
static Evaluation Sw (const Params &, const FluidState &)
 The saturation-capillary pressure curve. More...
 
template<class Evaluation >
static Evaluation twoPhaseSatSw (const Params &, const Evaluation &)
 
template<class FluidState , class Evaluation = typename FluidState::Scalar>
static Evaluation Sn (const Params &params, const FluidState &fs)
 Calculate the non-wetting phase saturations depending on the phase pressures. More...
 
template<class Evaluation >
static Evaluation twoPhaseSatSn (const Params &params, const Evaluation &pC)
 
template<class FluidState , class Evaluation = typename FluidState::Scalar>
static Evaluation krw (const Params &params, const FluidState &fs)
 The relative permeability for the wetting phase of the porous medium. More...
 
template<class Evaluation >
static Evaluation twoPhaseSatKrw (const Params &params, const Evaluation &Sw)
 
template<class Evaluation >
static Evaluation twoPhaseSatKrwInv (const Params &params, const Evaluation &krw)
 
template<class FluidState , class Evaluation = typename FluidState::Scalar>
static Evaluation krn (const Params &params, const FluidState &fs)
 The relative permeability for the non-wetting phase of the porous medium. More...
 
template<class Evaluation >
static Evaluation twoPhaseSatKrn (const Params &params, const Evaluation &Sw)
 
template<class Evaluation >
static Evaluation twoPhaseSatKrnInv (const Params &params, const Evaluation &krn)
 

Static Public Attributes

static constexpr int numPhases = Traits::numPhases
 The number of fluid phases. More...
 
static constexpr bool implementsTwoPhaseApi = true
 
static constexpr bool implementsTwoPhaseSatApi = true
 
static constexpr bool isSaturationDependent = true
 
static constexpr bool isPressureDependent = false
 
static constexpr bool isTemperatureDependent = false
 
static constexpr bool isCompositionDependent = false
 

Detailed Description

template<class TraitsT, class ParamsT = PiecewiseLinearTwoPhaseMaterialParams<TraitsT>>
class Opm::PiecewiseLinearTwoPhaseMaterial< TraitsT, ParamsT >

Implementation of a tabulated, piecewise linear capillary pressure law.

It would be equally possible to use cubic splines, but since the ECLIPSE reservoir simulator uses linear interpolation for capillary pressure and relperm curves, we do the same.

Member Typedef Documentation

◆ Params

template<class TraitsT , class ParamsT = PiecewiseLinearTwoPhaseMaterialParams<TraitsT>>
using Opm::PiecewiseLinearTwoPhaseMaterial< TraitsT, ParamsT >::Params = ParamsT

The type of the parameter objects for this law.

◆ Scalar

template<class TraitsT , class ParamsT = PiecewiseLinearTwoPhaseMaterialParams<TraitsT>>
using Opm::PiecewiseLinearTwoPhaseMaterial< TraitsT, ParamsT >::Scalar = typename Traits::Scalar

The type of the scalar values for this law.

◆ Traits

template<class TraitsT , class ParamsT = PiecewiseLinearTwoPhaseMaterialParams<TraitsT>>
using Opm::PiecewiseLinearTwoPhaseMaterial< TraitsT, ParamsT >::Traits = TraitsT

The traits class for this material law.

Member Function Documentation

◆ capillaryPressures()

template<class TraitsT , class ParamsT = PiecewiseLinearTwoPhaseMaterialParams<TraitsT>>
template<class Container , class FluidState >
static void Opm::PiecewiseLinearTwoPhaseMaterial< TraitsT, ParamsT >::capillaryPressures ( Container &  values,
const Params params,
const FluidState &  fs 
)
inlinestatic

The capillary pressure-saturation curve.

Referenced by Opm::SatCurveMultiplexer< TraitsT, ParamsT >::capillaryPressures().

◆ krn()

template<class TraitsT , class ParamsT = PiecewiseLinearTwoPhaseMaterialParams<TraitsT>>
template<class FluidState , class Evaluation = typename FluidState::Scalar>
static Evaluation Opm::PiecewiseLinearTwoPhaseMaterial< TraitsT, ParamsT >::krn ( const Params params,
const FluidState &  fs 
)
inlinestatic

◆ krw()

template<class TraitsT , class ParamsT = PiecewiseLinearTwoPhaseMaterialParams<TraitsT>>
template<class FluidState , class Evaluation = typename FluidState::Scalar>
static Evaluation Opm::PiecewiseLinearTwoPhaseMaterial< TraitsT, ParamsT >::krw ( const Params params,
const FluidState &  fs 
)
inlinestatic

◆ pcnw()

template<class TraitsT , class ParamsT = PiecewiseLinearTwoPhaseMaterialParams<TraitsT>>
template<class FluidState , class Evaluation = typename FluidState::Scalar>
static Evaluation Opm::PiecewiseLinearTwoPhaseMaterial< TraitsT, ParamsT >::pcnw ( const Params params,
const FluidState &  fs 
)
inlinestatic

◆ relativePermeabilities()

template<class TraitsT , class ParamsT = PiecewiseLinearTwoPhaseMaterialParams<TraitsT>>
template<class Container , class FluidState >
static void Opm::PiecewiseLinearTwoPhaseMaterial< TraitsT, ParamsT >::relativePermeabilities ( Container &  values,
const Params params,
const FluidState &  fs 
)
inlinestatic

◆ saturations()

template<class TraitsT , class ParamsT = PiecewiseLinearTwoPhaseMaterialParams<TraitsT>>
template<class Container , class FluidState >
static void Opm::PiecewiseLinearTwoPhaseMaterial< TraitsT, ParamsT >::saturations ( Container &  ,
const Params ,
const FluidState &   
)
inlinestatic

The saturations of the fluid phases starting from their pressure differences.

Referenced by Opm::SatCurveMultiplexer< TraitsT, ParamsT >::saturations().

◆ Sn()

template<class TraitsT , class ParamsT = PiecewiseLinearTwoPhaseMaterialParams<TraitsT>>
template<class FluidState , class Evaluation = typename FluidState::Scalar>
static Evaluation Opm::PiecewiseLinearTwoPhaseMaterial< TraitsT, ParamsT >::Sn ( const Params params,
const FluidState &  fs 
)
inlinestatic

Calculate the non-wetting phase saturations depending on the phase pressures.

Referenced by Opm::SatCurveMultiplexer< TraitsT, ParamsT >::Sn().

◆ Sw()

◆ twoPhaseSatKrn()

template<class TraitsT , class ParamsT = PiecewiseLinearTwoPhaseMaterialParams<TraitsT>>
template<class Evaluation >
static Evaluation Opm::PiecewiseLinearTwoPhaseMaterial< TraitsT, ParamsT >::twoPhaseSatKrn ( const Params params,
const Evaluation &  Sw 
)
inlinestatic

◆ twoPhaseSatKrnInv()

template<class TraitsT , class ParamsT = PiecewiseLinearTwoPhaseMaterialParams<TraitsT>>
template<class Evaluation >
static Evaluation Opm::PiecewiseLinearTwoPhaseMaterial< TraitsT, ParamsT >::twoPhaseSatKrnInv ( const Params params,
const Evaluation &  krn 
)
inlinestatic

◆ twoPhaseSatKrw()

template<class TraitsT , class ParamsT = PiecewiseLinearTwoPhaseMaterialParams<TraitsT>>
template<class Evaluation >
static Evaluation Opm::PiecewiseLinearTwoPhaseMaterial< TraitsT, ParamsT >::twoPhaseSatKrw ( const Params params,
const Evaluation &  Sw 
)
inlinestatic

◆ twoPhaseSatKrwInv()

template<class TraitsT , class ParamsT = PiecewiseLinearTwoPhaseMaterialParams<TraitsT>>
template<class Evaluation >
static Evaluation Opm::PiecewiseLinearTwoPhaseMaterial< TraitsT, ParamsT >::twoPhaseSatKrwInv ( const Params params,
const Evaluation &  krw 
)
inlinestatic

◆ twoPhaseSatPcnw()

template<class TraitsT , class ParamsT = PiecewiseLinearTwoPhaseMaterialParams<TraitsT>>
template<class Evaluation >
static Evaluation Opm::PiecewiseLinearTwoPhaseMaterial< TraitsT, ParamsT >::twoPhaseSatPcnw ( const Params params,
const Evaluation &  Sw 
)
inlinestatic

◆ twoPhaseSatPcnwInv()

template<class TraitsT , class ParamsT = PiecewiseLinearTwoPhaseMaterialParams<TraitsT>>
template<class Evaluation >
static Evaluation Opm::PiecewiseLinearTwoPhaseMaterial< TraitsT, ParamsT >::twoPhaseSatPcnwInv ( const Params params,
const Evaluation &  pcnw 
)
inlinestatic

◆ twoPhaseSatSn()

template<class TraitsT , class ParamsT = PiecewiseLinearTwoPhaseMaterialParams<TraitsT>>
template<class Evaluation >
static Evaluation Opm::PiecewiseLinearTwoPhaseMaterial< TraitsT, ParamsT >::twoPhaseSatSn ( const Params params,
const Evaluation &  pC 
)
inlinestatic

◆ twoPhaseSatSw()

template<class TraitsT , class ParamsT = PiecewiseLinearTwoPhaseMaterialParams<TraitsT>>
template<class Evaluation >
static Evaluation Opm::PiecewiseLinearTwoPhaseMaterial< TraitsT, ParamsT >::twoPhaseSatSw ( const Params ,
const Evaluation &   
)
inlinestatic

Member Data Documentation

◆ implementsTwoPhaseApi

template<class TraitsT , class ParamsT = PiecewiseLinearTwoPhaseMaterialParams<TraitsT>>
constexpr bool Opm::PiecewiseLinearTwoPhaseMaterial< TraitsT, ParamsT >::implementsTwoPhaseApi = true
staticconstexpr

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

◆ implementsTwoPhaseSatApi

template<class TraitsT , class ParamsT = PiecewiseLinearTwoPhaseMaterialParams<TraitsT>>
constexpr bool Opm::PiecewiseLinearTwoPhaseMaterial< TraitsT, ParamsT >::implementsTwoPhaseSatApi = true
staticconstexpr

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

◆ isCompositionDependent

template<class TraitsT , class ParamsT = PiecewiseLinearTwoPhaseMaterialParams<TraitsT>>
constexpr bool Opm::PiecewiseLinearTwoPhaseMaterial< TraitsT, ParamsT >::isCompositionDependent = false
staticconstexpr

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

◆ isPressureDependent

template<class TraitsT , class ParamsT = PiecewiseLinearTwoPhaseMaterialParams<TraitsT>>
constexpr bool Opm::PiecewiseLinearTwoPhaseMaterial< TraitsT, ParamsT >::isPressureDependent = false
staticconstexpr

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

◆ isSaturationDependent

template<class TraitsT , class ParamsT = PiecewiseLinearTwoPhaseMaterialParams<TraitsT>>
constexpr bool Opm::PiecewiseLinearTwoPhaseMaterial< TraitsT, ParamsT >::isSaturationDependent = true
staticconstexpr

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

◆ isTemperatureDependent

template<class TraitsT , class ParamsT = PiecewiseLinearTwoPhaseMaterialParams<TraitsT>>
constexpr bool Opm::PiecewiseLinearTwoPhaseMaterial< TraitsT, ParamsT >::isTemperatureDependent = false
staticconstexpr

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

◆ numPhases

template<class TraitsT , class ParamsT = PiecewiseLinearTwoPhaseMaterialParams<TraitsT>>
constexpr int Opm::PiecewiseLinearTwoPhaseMaterial< TraitsT, ParamsT >::numPhases = Traits::numPhases
staticconstexpr

The number of fluid phases.


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