3.6-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Public Types | Public Member Functions | Static Public Member Functions | List of all members
Dumux::FluidMatrix::ParkerVanGenuchtenMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy > Class Template Reference

Parker van Genuchten material law. More...

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

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

Description

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

Parker van Genuchten material law.

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) More...
 
 ParkerVanGenuchtenMaterialLaw (const std::string &paramGroup)
 Construct from a subgroup from the global parameter tree. More...
 
 ParkerVanGenuchtenMaterialLaw (const BasicParams &baseParams, const EffToAbsParams &effToAbsParams={}, const RegularizationParams &regParams={})
 Construct from parameter structs. More...
 
template<bool enableRegularization = isRegularized()>
Scalar pcgw (const Scalar sw, const Scalar) const
 The capillary pressure-saturation curve for the gas and wetting phase. More...
 
template<bool enableRegularization = isRegularized()>
Scalar pcnw (const Scalar sw, const Scalar) const
 The capillary pressure-saturation curve for the nonwetting and wetting phase. More...
 
template<bool enableRegularization = isRegularized()>
Scalar pcgn (const Scalar sw, const Scalar sn) const
 The capillary pressure-saturation curve for the gas and nonwetting phase. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
template<bool enableRegularization = isRegularized()>
Scalar krw (const Scalar sw, const Scalar sn) const
 The relative permeability for the wetting phase. More...
 
template<bool enableRegularization = isRegularized()>
Scalar krn (const Scalar sw, const Scalar sn) const
 The relative permeability for the nonwetting phase. More...
 
template<bool enableRegularization = isRegularized()>
Scalar krg (const Scalar sw, const Scalar sn) const
 The relative permeability for the nonwetting phase. More...
 
template<bool enableRegularization = isRegularized()>
Scalar kr (const int phaseIdx, const Scalar sw, const Scalar sn) const
 The relative permeability for the nonwetting phase. More...
 
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. More...
 
bool operator== (const ParkerVanGenuchtenMaterialLaw &o) const
 Equality comparison with another instance. More...
 
const BasicParamsbasicParams () const
 Return the base law's parameters. More...
 
const EffToAbsParamseffToAbsParams () const
 Return the parameters of the EffToAbs policy. More...
 

Static Public Member Functions

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

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>
static 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>
static 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>
static 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: