Wrapper class to implement regularized material laws (pc-sw, kr-sw) with a conversion policy between absolution and effective saturations. More...
#include <dumux/material/fluidmatrixinteractions/2p/materiallaw.hh>
Wrapper class to implement regularized material laws (pc-sw, kr-sw) with a conversion policy between absolution and effective saturations.
ScalarType | the scalar type |
BaseLaw | the base law (e.g. VanGenuchten, BrooksCorey, Linear, ...) |
Regularization | the regularization type (set to NoRegularization to turn it off) |
EffToAbsPolicy | the policy how to convert effective <-> absolute saturations |
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 | |
TwoPMaterialLaw ()=delete | |
Deleted default constructor (so we are never in an undefined state) More... | |
TwoPMaterialLaw (const std::string ¶mGroup) | |
Construct from a subgroup from the global parameter tree. More... | |
TwoPMaterialLaw (const BasicParams &baseParams, const EffToAbsParams &effToAbsParams={}, const RegularizationParams ®Params={}) | |
Construct from parameter structs. More... | |
template<bool enableRegularization = isRegularized()> | |
Scalar | pc (const Scalar sw) const |
The capillary pressure-saturation curve. More... | |
template<bool enableRegularization = isRegularized()> | |
Scalar | dpc_dsw (const Scalar sw) const |
The partial derivative of the capillary pressure w.r.t. the saturation. More... | |
Scalar | endPointPc () const |
The capillary pressure at Swe = 1.0 also called end point capillary pressure. More... | |
template<bool enableRegularization = isRegularized()> | |
Scalar | sw (const Scalar pc) const |
The saturation-capillary pressure curve. More... | |
template<bool enableRegularization = isRegularized()> | |
Scalar | dsw_dpc (const Scalar pc) const |
The partial derivative of the saturation to the capillary pressure. More... | |
template<bool enableRegularization = isRegularized()> | |
Scalar | krw (const Scalar sw) const |
The relative permeability for the wetting phase. More... | |
template<bool enableRegularization = isRegularized()> | |
Scalar | dkrw_dsw (const Scalar sw) const |
The derivative of the relative permeability for the wetting phase w.r.t. saturation. More... | |
template<bool enableRegularization = isRegularized()> | |
Scalar | krn (const Scalar sw) const |
The relative permeability for the non-wetting phase. More... | |
template<bool enableRegularization = isRegularized()> | |
Scalar | dkrn_dsw (const Scalar sw) const |
The derivative of the relative permeability for the non-wetting phase w.r.t. saturation. More... | |
bool | operator== (const TwoPMaterialLaw &o) const |
Equality comparison with another instance. More... | |
const BasicParams & | basicParams () const |
Return the base law's parameters. More... | |
const EffToAbsParams & | effToAbsParams () const |
Return the parameters of the EffToAbs policy. More... | |
Static Public Member Functions | |
static constexpr int | numFluidPhases () |
Return the number of fluid phases. More... | |
static constexpr bool | isRegularized () |
Return whether this law is regularized. More... | |
static BasicParams | makeBasicParams (const std::string ¶mGroup) |
Create the base law's parameters using input file parameters. More... | |
static EffToAbsParams | makeEffToAbsParams (const std::string ¶mGroup) |
Create the parameters of the EffToAbs policy using input file parameters. More... | |
using Dumux::FluidMatrix::TwoPMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >::BasicParams = typename BaseLaw::template Params<Scalar> |
using Dumux::FluidMatrix::TwoPMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >::EffToAbs = EffToAbsPolicy |
using Dumux::FluidMatrix::TwoPMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >::EffToAbsParams = typename EffToAbsPolicy::template Params<Scalar> |
using Dumux::FluidMatrix::TwoPMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >::RegularizationParams = typename Regularization::template Params<Scalar> |
using Dumux::FluidMatrix::TwoPMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >::Scalar = ScalarType |
|
delete |
Deleted default constructor (so we are never in an undefined state)
|
inlineexplicit |
Construct from a subgroup from the global parameter tree.
|
inline |
Construct from parameter structs.
|
inline |
Return the base law's parameters.
|
inline |
The derivative of the relative permeability for the non-wetting phase w.r.t. saturation.
|
inline |
The derivative of the relative permeability for the wetting phase w.r.t. saturation.
|
inline |
The partial derivative of the capillary pressure w.r.t. the saturation.
|
inline |
The partial derivative of the saturation to the capillary pressure.
|
inline |
Return the parameters of the EffToAbs policy.
|
inline |
The capillary pressure at Swe = 1.0 also called end point capillary pressure.
|
inlinestaticconstexpr |
Return whether this law is regularized.
|
inline |
The relative permeability for the non-wetting phase.
|
inline |
The relative permeability for the wetting phase.
|
inlinestatic |
Create the base law's parameters using input file parameters.
|
inlinestatic |
Create the parameters of the EffToAbs policy using input file parameters.
|
inlinestaticconstexpr |
Return the number of fluid phases.
|
inline |
Equality comparison with another instance.
|
inline |
The capillary pressure-saturation curve.
|
inline |
The saturation-capillary pressure curve.