3.4
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Loading...
Searching...
No Matches
Dumux::FluidMatrix::ParkerVanGenuchtenMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy > Class Template Reference

#include <dumux/material/fluidmatrixinteractions/3p/parkervangenuchten.hh>

Inheritance diagram for Dumux::FluidMatrix::ParkerVanGenuchtenMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >:

Public Types

using Scalar = ScalarType
using BasicParams = typename BaseLaw::template Params<Scalar>
using EffToAbsParams = typename EffToAbsPolicy::template Params<Scalar>
using RegularizationParams = typename Regularization::template Params<Scalar>
using EffToAbs = EffToAbsPolicy

Public Member Functions

 ParkerVanGenuchtenMaterialLaw ()=delete
 Deleted default constructor (so we are never in an undefined state).
 ParkerVanGenuchtenMaterialLaw (const std::string &paramGroup)
 Construct from a subgroup from the global parameter tree.
 ParkerVanGenuchtenMaterialLaw (const BasicParams &baseParams, const EffToAbsParams &effToAbsParams={}, const RegularizationParams &regParams={})
 Construct from parameter structs.
template<bool enableRegularization = isRegularized()>
Scalar pcgw (const Scalar sw, const Scalar) const
 The capillary pressure-saturation curve for the gas and wetting phase.
template<bool enableRegularization = isRegularized()>
Scalar pcnw (const Scalar sw, const Scalar) const
 The capillary pressure-saturation curve for the nonwetting and wetting phase.
template<bool enableRegularization = isRegularized()>
Scalar pcgn (const Scalar sw, const Scalar sn) const
 The capillary pressure-saturation curve for the gas and nonwetting phase.
template<bool enableRegularization = isRegularized()>
Scalar pcAlpha (const Scalar, const Scalar sn) const
 This function ensures a continuous transition from 2 to 3 phases and vice versa.
template<bool enableRegularization = isRegularized()>
Scalar dpcgw_dsw (const Scalar sw, const Scalar) const
 The partial derivative of the capillary pressure w.r.t. the saturation.
template<bool enableRegularization = isRegularized()>
Scalar dpcnw_dsw (const Scalar sw, const Scalar) const
 The partial derivative of the capillary pressure w.r.t. the saturation.
template<bool enableRegularization = isRegularized()>
Scalar dpcgn_dst (const Scalar st, const Scalar) const
 The partial derivative of the capillary pressure w.r.t. the saturation.
template<bool enableRegularization = isRegularized()>
Scalar krw (const Scalar sw, const Scalar sn) const
 The relative permeability for the wetting phase.
template<bool enableRegularization = isRegularized()>
Scalar krn (const Scalar sw, const Scalar sn) const
 The relative permeability for the nonwetting phase.
template<bool enableRegularization = isRegularized()>
Scalar krg (const Scalar sw, const Scalar sn) const
 The relative permeability for the nonwetting phase.
template<bool enableRegularization = isRegularized()>
Scalar kr (const int phaseIdx, const Scalar sw, const Scalar sn) const
 The relative permeability for the nonwetting phase.
template<bool enableRegularization = isRegularized()>
Scalar dkrg_dst (const Scalar st) const
 The derivative of the relative permeability for the nonwetting phase w.r.t. saturation.
bool operator== (const ParkerVanGenuchtenMaterialLaw &o) const
 Equality comparison with another instance.
const BasicParams & basicParams () const
 Return the base law's parameters.
const EffToAbsParams & effToAbsParams () const
 Return the parameters of the EffToAbs policy.

Static Public Member Functions

static constexpr bool isRegularized ()
 Return whether this law is regularized.
static BasicParams makeBasicParams (const std::string &paramGroup)
 Create the base law's parameters using input file parameters.
static EffToAbsParams makeEffToAbsParams (const std::string &paramGroup)
 Create the parameters of the EffToAbs policy using input file parameters.

Member Typedef Documentation

◆ BasicParams

template<class ScalarType, class BaseLaw, class Regularization = NoRegularization, class EffToAbsPolicy = ParkerVanGenuchten3PEffToAbsPolicy>
using Dumux::FluidMatrix::ParkerVanGenuchtenMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >::BasicParams = typename BaseLaw::template Params<Scalar>

◆ EffToAbs

template<class ScalarType, class BaseLaw, class Regularization = NoRegularization, class EffToAbsPolicy = ParkerVanGenuchten3PEffToAbsPolicy>
using Dumux::FluidMatrix::ParkerVanGenuchtenMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >::EffToAbs = EffToAbsPolicy

◆ EffToAbsParams

template<class ScalarType, class BaseLaw, class Regularization = NoRegularization, class EffToAbsPolicy = ParkerVanGenuchten3PEffToAbsPolicy>
using Dumux::FluidMatrix::ParkerVanGenuchtenMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >::EffToAbsParams = typename EffToAbsPolicy::template Params<Scalar>

◆ RegularizationParams

template<class ScalarType, class BaseLaw, class Regularization = NoRegularization, class EffToAbsPolicy = ParkerVanGenuchten3PEffToAbsPolicy>
using Dumux::FluidMatrix::ParkerVanGenuchtenMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >::RegularizationParams = typename Regularization::template Params<Scalar>

◆ Scalar

template<class ScalarType, class BaseLaw, class Regularization = NoRegularization, class EffToAbsPolicy = ParkerVanGenuchten3PEffToAbsPolicy>
using Dumux::FluidMatrix::ParkerVanGenuchtenMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >::Scalar = ScalarType

Constructor & Destructor Documentation

◆ ParkerVanGenuchtenMaterialLaw() [1/3]

template<class ScalarType, class BaseLaw, class Regularization = NoRegularization, class EffToAbsPolicy = ParkerVanGenuchten3PEffToAbsPolicy>
Dumux::FluidMatrix::ParkerVanGenuchtenMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >::ParkerVanGenuchtenMaterialLaw ( )
delete

Deleted default constructor (so we are never in an undefined state).

Note
store owning pointers to laws instead if you need default-constructible objects

◆ ParkerVanGenuchtenMaterialLaw() [2/3]

template<class ScalarType, class BaseLaw, class Regularization = NoRegularization, class EffToAbsPolicy = ParkerVanGenuchten3PEffToAbsPolicy>
Dumux::FluidMatrix::ParkerVanGenuchtenMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >::ParkerVanGenuchtenMaterialLaw ( const std::string & paramGroup)
inlineexplicit

Construct from a subgroup from the global parameter tree.

Note
This will give you nice error messages if a mandatory parameter is missing

◆ ParkerVanGenuchtenMaterialLaw() [3/3]

template<class ScalarType, class BaseLaw, class Regularization = NoRegularization, class EffToAbsPolicy = ParkerVanGenuchten3PEffToAbsPolicy>
Dumux::FluidMatrix::ParkerVanGenuchtenMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >::ParkerVanGenuchtenMaterialLaw ( const BasicParams & baseParams,
const EffToAbsParams & effToAbsParams = {},
const RegularizationParams & regParams = {} )
inline

Construct from parameter structs.

Note
More efficient constructor but you need to ensure all parameters are initialized

Member Function Documentation

◆ basicParams()

template<class ScalarType, class BaseLaw, class Regularization = NoRegularization, class EffToAbsPolicy = ParkerVanGenuchten3PEffToAbsPolicy>
const BasicParams & Dumux::FluidMatrix::ParkerVanGenuchtenMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >::basicParams ( ) const
inline

Return the base law's parameters.

◆ dkrg_dst()

template<class ScalarType, class BaseLaw, class Regularization = NoRegularization, class EffToAbsPolicy = ParkerVanGenuchten3PEffToAbsPolicy>
template<bool enableRegularization = isRegularized()>
Scalar Dumux::FluidMatrix::ParkerVanGenuchtenMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >::dkrg_dst ( const Scalar st) const
inline

The derivative of the relative permeability for the nonwetting phase w.r.t. saturation.

Parameters
stTotal (wetting + nonwetting) saturation

◆ dpcgn_dst()

template<class ScalarType, class BaseLaw, class Regularization = NoRegularization, class EffToAbsPolicy = ParkerVanGenuchten3PEffToAbsPolicy>
template<bool enableRegularization = isRegularized()>
Scalar Dumux::FluidMatrix::ParkerVanGenuchtenMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >::dpcgn_dst ( const Scalar st,
const Scalar  ) const
inline

The partial derivative of the capillary pressure w.r.t. the saturation.

◆ dpcgw_dsw()

template<class ScalarType, class BaseLaw, class Regularization = NoRegularization, class EffToAbsPolicy = ParkerVanGenuchten3PEffToAbsPolicy>
template<bool enableRegularization = isRegularized()>
Scalar Dumux::FluidMatrix::ParkerVanGenuchtenMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >::dpcgw_dsw ( const Scalar sw,
const Scalar  ) const
inline

The partial derivative of the capillary pressure w.r.t. the saturation.

◆ dpcnw_dsw()

template<class ScalarType, class BaseLaw, class Regularization = NoRegularization, class EffToAbsPolicy = ParkerVanGenuchten3PEffToAbsPolicy>
template<bool enableRegularization = isRegularized()>
Scalar Dumux::FluidMatrix::ParkerVanGenuchtenMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >::dpcnw_dsw ( const Scalar sw,
const Scalar  ) const
inline

The partial derivative of the capillary pressure w.r.t. the saturation.

◆ effToAbsParams()

template<class ScalarType, class BaseLaw, class Regularization = NoRegularization, class EffToAbsPolicy = ParkerVanGenuchten3PEffToAbsPolicy>
const EffToAbsParams & Dumux::FluidMatrix::ParkerVanGenuchtenMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >::effToAbsParams ( ) const
inline

Return the parameters of the EffToAbs policy.

◆ isRegularized()

template<class ScalarType, class BaseLaw, class Regularization = NoRegularization, class EffToAbsPolicy = ParkerVanGenuchten3PEffToAbsPolicy>
constexpr bool Dumux::FluidMatrix::ParkerVanGenuchtenMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >::isRegularized ( )
inlinestaticconstexpr

Return whether this law is regularized.

◆ kr()

template<class ScalarType, class BaseLaw, class Regularization = NoRegularization, class EffToAbsPolicy = ParkerVanGenuchten3PEffToAbsPolicy>
template<bool enableRegularization = isRegularized()>
Scalar Dumux::FluidMatrix::ParkerVanGenuchtenMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >::kr ( const int phaseIdx,
const Scalar sw,
const Scalar sn ) const
inline

The relative permeability for the nonwetting phase.

Parameters
phaseIdxIndicator, The saturation of all phases.
swWetting saturation
snNonwetting saturation

◆ krg()

template<class ScalarType, class BaseLaw, class Regularization = NoRegularization, class EffToAbsPolicy = ParkerVanGenuchten3PEffToAbsPolicy>
template<bool enableRegularization = isRegularized()>
Scalar Dumux::FluidMatrix::ParkerVanGenuchtenMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >::krg ( const Scalar sw,
const Scalar sn ) const
inline

The relative permeability for the nonwetting phase.

Parameters
swWetting saturation
snNonwetting saturation

◆ krn()

template<class ScalarType, class BaseLaw, class Regularization = NoRegularization, class EffToAbsPolicy = ParkerVanGenuchten3PEffToAbsPolicy>
template<bool enableRegularization = isRegularized()>
Scalar Dumux::FluidMatrix::ParkerVanGenuchtenMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >::krn ( const Scalar sw,
const Scalar sn ) const
inline

The relative permeability for the nonwetting phase.

Parameters
swWetting saturation
snNonwetting saturation

◆ krw()

template<class ScalarType, class BaseLaw, class Regularization = NoRegularization, class EffToAbsPolicy = ParkerVanGenuchten3PEffToAbsPolicy>
template<bool enableRegularization = isRegularized()>
Scalar Dumux::FluidMatrix::ParkerVanGenuchtenMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >::krw ( const Scalar sw,
const Scalar sn ) const
inline

The relative permeability for the wetting phase.

Parameters
swWetting saturation
snNonwetting saturation

◆ makeBasicParams()

template<class ScalarType, class BaseLaw, class Regularization = NoRegularization, class EffToAbsPolicy = ParkerVanGenuchten3PEffToAbsPolicy>
BasicParams Dumux::FluidMatrix::ParkerVanGenuchtenMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >::makeBasicParams ( const std::string & paramGroup)
inlinestatic

Create the base law's parameters using input file parameters.

◆ makeEffToAbsParams()

template<class ScalarType, class BaseLaw, class Regularization = NoRegularization, class EffToAbsPolicy = ParkerVanGenuchten3PEffToAbsPolicy>
EffToAbsParams Dumux::FluidMatrix::ParkerVanGenuchtenMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >::makeEffToAbsParams ( const std::string & paramGroup)
inlinestatic

Create the parameters of the EffToAbs policy using input file parameters.

◆ operator==()

template<class ScalarType, class BaseLaw, class Regularization = NoRegularization, class EffToAbsPolicy = ParkerVanGenuchten3PEffToAbsPolicy>
bool Dumux::FluidMatrix::ParkerVanGenuchtenMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >::operator== ( const ParkerVanGenuchtenMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy > & o) const
inline

Equality comparison with another instance.

◆ pcAlpha()

template<class ScalarType, class BaseLaw, class Regularization = NoRegularization, class EffToAbsPolicy = ParkerVanGenuchten3PEffToAbsPolicy>
template<bool enableRegularization = isRegularized()>
Scalar Dumux::FluidMatrix::ParkerVanGenuchtenMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >::pcAlpha ( const Scalar ,
const Scalar sn ) const
inline

This function ensures a continuous transition from 2 to 3 phases and vice versa.

◆ pcgn()

template<class ScalarType, class BaseLaw, class Regularization = NoRegularization, class EffToAbsPolicy = ParkerVanGenuchten3PEffToAbsPolicy>
template<bool enableRegularization = isRegularized()>
Scalar Dumux::FluidMatrix::ParkerVanGenuchtenMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >::pcgn ( const Scalar sw,
const Scalar sn ) const
inline

The capillary pressure-saturation curve for the gas and nonwetting phase.

Parameters
swWetting saturation
snNonwetting saturation

◆ pcgw()

template<class ScalarType, class BaseLaw, class Regularization = NoRegularization, class EffToAbsPolicy = ParkerVanGenuchten3PEffToAbsPolicy>
template<bool enableRegularization = isRegularized()>
Scalar Dumux::FluidMatrix::ParkerVanGenuchtenMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >::pcgw ( const Scalar sw,
const Scalar  ) const
inline

The capillary pressure-saturation curve for the gas and wetting phase.

◆ pcnw()

template<class ScalarType, class BaseLaw, class Regularization = NoRegularization, class EffToAbsPolicy = ParkerVanGenuchten3PEffToAbsPolicy>
template<bool enableRegularization = isRegularized()>
Scalar Dumux::FluidMatrix::ParkerVanGenuchtenMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >::pcnw ( const Scalar sw,
const Scalar  ) const
inline

The capillary pressure-saturation curve for the nonwetting and wetting phase.


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