Implementation of the van Genuchten capillary pressure - saturation relation. More...
#include <VanGenuchten.hpp>
Public Types | |
typedef TraitsT | Traits |
The traits class for this material law. | |
typedef ParamsT | Params |
The type of the parameter objects for this law. | |
typedef Traits::Scalar | Scalar |
The type of the scalar values for this law. | |
Public Member Functions | |
static_assert (numPhases==2,"The van Genuchten capillary pressure law only ""applies to the case of two fluid phases") | |
Static Public Member Functions | |
template<class Container , class FluidState > | |
static void | capillaryPressures (Container &values, const Params ¶ms, const FluidState &fs) |
The capillary pressure-saturation curves according to van Genuchten. | |
template<class Container , class FluidState > | |
static void | saturations (Container &values, const Params ¶ms, const FluidState &fs) |
Calculate the saturations of the phases starting from their pressure differences. | |
template<class Container , class FluidState > | |
static void | relativePermeabilities (Container &values, const Params ¶ms, const FluidState &fs) |
The relative permeability-saturation curves according to van Genuchten. | |
template<class FluidState , class Evaluation = typename FluidState::Scalar> | |
static Evaluation | pcnw (const Params ¶ms, const FluidState &fs) |
The capillary pressure-saturation curve according to van Genuchten. | |
template<class Evaluation > | |
static Evaluation | twoPhaseSatPcnw (const Params ¶ms, const Evaluation &Sw) |
The saturation-capillary pressure curve according to van Genuchten using a material law specific API. | |
template<class FluidState , class Evaluation = typename FluidState::Scalar> | |
static Evaluation | Sw (const Params ¶ms, const FluidState &fs) |
The saturation-capillary pressure curve according to van Genuchten. | |
template<class Evaluation > | |
static Evaluation | twoPhaseSatSw (const Params ¶ms, const Evaluation &pC) |
template<class FluidState , class Evaluation = typename FluidState::Scalar> | |
static Evaluation | Sn (const Params ¶ms, const FluidState &fs) |
Calculate the non-wetting phase saturations depending on the phase pressures. | |
template<class Evaluation > | |
static Evaluation | twoPhaseSatSn (const Params ¶ms, const Evaluation &pC) |
template<class FluidState , class Evaluation = typename FluidState::Scalar> | |
static Evaluation | krw (const Params ¶ms, const FluidState &fs) |
The relative permeability for the wetting phase of the medium according to van Genuchten's curve with Mualem parameterization. | |
template<class Evaluation > | |
static Evaluation | twoPhaseSatKrw (const Params ¶ms, const Evaluation &Sw) |
template<class FluidState , class Evaluation = typename FluidState::Scalar> | |
static Evaluation | krn (const Params ¶ms, const FluidState &fs) |
The relative permeability for the non-wetting phase of the medium according to van Genuchten. | |
template<class Evaluation > | |
static Evaluation | twoPhaseSatKrn (const Params ¶ms, Evaluation Sw) |
Static Public Attributes | |
static const int | numPhases = Traits::numPhases |
The number of fluid phases. | |
static const bool | implementsTwoPhaseApi = true |
Specify whether this material law implements the two-phase convenience API. | |
static const bool | implementsTwoPhaseSatApi = true |
Specify whether this material law implements the two-phase convenience API which only depends on the phase saturations. | |
static const bool | isSaturationDependent = true |
Specify whether the quantities defined by this material law are saturation dependent. | |
static const bool | isPressureDependent = false |
Specify whether the quantities defined by this material law are dependent on the absolute pressure. | |
static const bool | isTemperatureDependent = false |
Specify whether the quantities defined by this material law are temperature dependent. | |
static const bool | isCompositionDependent = false |
Specify whether the quantities defined by this material law are dependent on the phase composition. |
Implementation of the van Genuchten capillary pressure - saturation relation.
This class only implements the "raw" van-Genuchten curves as static members and doesn't concern itself converting absolute to effective saturations and vice versa.
The converion from and to effective saturations can be done using, e.g. EffToAbsLaw.
static void Opm::VanGenuchten< TraitsT, ParamsT >::capillaryPressures | ( | Container & | values, | |
const Params & | params, | |||
const FluidState & | fs | |||
) | [inline, static] |
The capillary pressure-saturation curves according to van Genuchten.
Van Genuchten's empirical capillary pressure <-> saturation function is given by
values | A random access container which stores the relative pressure of each fluid phase. | |
params | The parameter object expressing the coefficients required by the van Genuchten law. | |
fs | The fluid state for which the capillary pressure ought to be calculated |
static Evaluation Opm::VanGenuchten< TraitsT, ParamsT >::krn | ( | const Params & | params, | |
const FluidState & | fs | |||
) | [inline, static] |
The relative permeability for the non-wetting phase of the medium according to van Genuchten.
params | The parameter object expressing the coefficients required by the van Genuchten law. | |
fs | The fluid state for which the derivative ought to be calculated |
static Evaluation Opm::VanGenuchten< TraitsT, ParamsT >::krw | ( | const Params & | params, | |
const FluidState & | fs | |||
) | [inline, static] |
The relative permeability for the wetting phase of the medium according to van Genuchten's curve with Mualem parameterization.
params | The parameter object expressing the coefficients required by the van Genuchten law. | |
fs | The fluid state for which the relative permeability ought to be calculated |
static Evaluation Opm::VanGenuchten< TraitsT, ParamsT >::pcnw | ( | const Params & | params, | |
const FluidState & | fs | |||
) | [inline, static] |
The capillary pressure-saturation curve according to van Genuchten.
Van Genuchten's empirical capillary pressure <-> saturation function is given by
params | The parameter object expressing the coefficients required by the van Genuchten law. | |
fs | The fluid state for which the capillary pressure ought to be calculated |
static void Opm::VanGenuchten< TraitsT, ParamsT >::relativePermeabilities | ( | Container & | values, | |
const Params & | params, | |||
const FluidState & | fs | |||
) | [inline, static] |
The relative permeability-saturation curves according to van Genuchten.
values | A random access container which stores the relative permeability of each fluid phase. | |
params | The parameter object expressing the coefficients required by the van Genuchten law. | |
fs | The fluid state for which the relative permeabilities ought to be calculated |
static Evaluation Opm::VanGenuchten< TraitsT, ParamsT >::Sw | ( | const Params & | params, | |
const FluidState & | fs | |||
) | [inline, static] |
The saturation-capillary pressure curve according to van Genuchten.
This is the inverse of the capillary pressure-saturation curve:
params | The parameter object expressing the coefficients required by the van Genuchten law. | |
fs | The fluid state containing valid phase pressures |
static Evaluation Opm::VanGenuchten< TraitsT, ParamsT >::twoPhaseSatPcnw | ( | const Params & | params, | |
const Evaluation & | Sw | |||
) | [inline, static] |
The saturation-capillary pressure curve according to van Genuchten using a material law specific API.
The advantage of this model is that it is simpler to use because the baggage of the fluid state API does not need to be carried along. The disavantage of this is, that it is very specific to the van Genuchten law (i.e., depends only on the wetting phase saturation, assumes two fluid phases, etc)
params | The parameter object expressing the coefficients required by the van Genuchten law. | |
Sw | The effective wetting phase saturation |