Loading...
Searching...
No Matches
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 >:

## Public Types

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

## Static Public Member Functions

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

## Static Public Attributes

static constexpr int | numPhases = Traits::numPhases
| The number of fluid phases.
static constexpr bool | implementsTwoPhaseApi = true
| Specify whether this material law implements the two-phase convenience API.
static constexpr bool | implementsTwoPhaseSatApi = true
| Specify whether this material law implements the two-phase convenience API which only depends on the phase saturations.
static constexpr bool | isSaturationDependent = true
| Specify whether the quantities defined by this material law are saturation dependent.
static constexpr bool | isPressureDependent = false
| Specify whether the quantities defined by this material law are dependent on the absolute pressure.
static constexpr bool | isTemperatureDependent = false
| Specify whether the quantities defined by this material law are temperature dependent.
static constexpr bool | isCompositionDependent = false
| Specify whether the quantities defined by this material law are dependent on the phase composition.

## 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.

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

- opm/material/fluidmatrixinteractions/PiecewiseLinearTwoPhaseMaterial.hpp