A spline approximation wrapper for 2p material laws. More...
#include <dumux/material/fluidmatrixinteractions/2p/splinemateriallaw.hh>
A spline approximation wrapper for 2p material laws.
TwoPMaterialLaw | the type of material law to be wrapped |
approximatePcSwInverse | if this is set true, the spline approximates sw(pc) and evaluating pc(sw) needs spline inversion. if this is false, the spline approximates pc(sw) and evaluating sw(pc) needs spline inversion. Spline inversion is rather expensive since it has to be done numerically. |
Public Types | |
using | Scalar = typename TwoPMaterialLaw::Scalar |
using | BasicParams = typename TwoPMaterialLaw::BasicParams |
using | EffToAbsParams = typename TwoPMaterialLaw::BasicParams |
using | RegularizationParams = typename TwoPMaterialLaw::RegularizationParams |
using | EffToAbs = EffToAbsPolicy |
Public Member Functions | |
SplineTwoPMaterialLaw ()=delete | |
Deleted default constructor (so we are never in an undefined state) More... | |
SplineTwoPMaterialLaw (const std::string ¶mGroup) | |
Construct from a subgroup from the global parameter tree. More... | |
SplineTwoPMaterialLaw (const std::array< Scalar, 2 > &sweInterval, std::size_t numSwSamples, TwoPMaterialLaw &&twoP) | |
Construct from parameter structs. More... | |
Scalar | pc (const Scalar sw) const |
The capillary pressure-saturation curve. More... | |
Scalar | dpc_dsw (const Scalar sw) const |
The partial derivative of the capillary pressure w.r.t. the saturation. More... | |
Scalar | sw (const Scalar pc) const |
The saturation-capillary pressure curve. More... | |
Scalar | dsw_dpc (const Scalar pc) const |
The partial derivative of the saturation to the capillary pressure. More... | |
Scalar | krw (const Scalar sw) const |
The relative permeability for the wetting phase. More... | |
Scalar | dkrw_dsw (const Scalar sw) const |
The derivative of the relative permeability for the wetting phase w.r.t. saturation. More... | |
Scalar | krn (const Scalar sw) const |
The relative permeability for the non-wetting phase. More... | |
Scalar | dkrn_dsw (const Scalar sw) const |
The derivative of the relative permeability for the non-wetting phase w.r.t. saturation. More... | |
Scalar | endPointPc () const |
The capillary pressure at Swe = 1.0 also called end point capillary pressure. 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 () |
We are always regularized in the sense that we replace the orginal curve by a cubic spline. 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::SplineTwoPMaterialLaw< TwoPMaterialLaw, approximatePcSwInverse >::BasicParams = typename TwoPMaterialLaw::BasicParams |
|
inherited |
using Dumux::FluidMatrix::SplineTwoPMaterialLaw< TwoPMaterialLaw, approximatePcSwInverse >::EffToAbsParams = typename TwoPMaterialLaw::BasicParams |
using Dumux::FluidMatrix::SplineTwoPMaterialLaw< TwoPMaterialLaw, approximatePcSwInverse >::RegularizationParams = typename TwoPMaterialLaw::RegularizationParams |
using Dumux::FluidMatrix::SplineTwoPMaterialLaw< TwoPMaterialLaw, approximatePcSwInverse >::Scalar = typename TwoPMaterialLaw::Scalar |
|
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.
|
inlineinherited |
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.
|
inlineinherited |
Return the parameters of the EffToAbs policy.
|
inlineinherited |
The capillary pressure at Swe = 1.0 also called end point capillary pressure.
|
inlinestaticconstexpr |
We are always regularized in the sense that we replace the orginal curve by a cubic spline.
|
inline |
The relative permeability for the non-wetting phase.
|
inline |
The relative permeability for the wetting phase.
|
inlinestaticinherited |
Create the base law's parameters using input file parameters.
|
inlinestaticinherited |
Create the parameters of the EffToAbs policy using input file parameters.
|
inlinestaticconstexpr |
Return the number of fluid phases.
|
inlineinherited |
Equality comparison with another instance.
|
inline |
The capillary pressure-saturation curve.
|
inline |
The saturation-capillary pressure curve.