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>
template<class ScalarType, class BaseLaw, class Regularization = NoRegularization, class EffToAbsPolicy = TwoPEffToAbsDefaultPolicy>
class Dumux::FluidMatrix::TwoPMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >
- Note
- See vangenuchten.hh / brookscorey.hh for default configurations using this class
- Template Parameters
-
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 |
- Note
- The regularization interface is expected to return Dumux::OptionalScalars which are wrappers around a Scalar type that provide a boolean operator to check whether the result is valid. If the regularization returns a non-valid value, it means that the given parameter range is outside the regularized region. For that case we forward to the call to the standard law.
|
| TwoPMaterialLaw ()=delete |
| Deleted default constructor (so we are never in an undefined state)
|
|
| TwoPMaterialLaw (const std::string ¶mGroup) |
| Construct from a subgroup from the global parameter tree.
|
|
| TwoPMaterialLaw (const BasicParams &baseParams, const EffToAbsParams &effToAbsParams={}, const RegularizationParams ®Params={}) |
| Construct from parameter structs.
|
|
template<bool enableRegularization = isRegularized()> |
Scalar | pc (const Scalar sw) const |
| The capillary pressure-saturation curve.
|
|
template<bool enableRegularization = isRegularized()> |
Scalar | dpc_dsw (const Scalar sw) const |
| The partial derivative of the capillary pressure w.r.t. the saturation.
|
|
Scalar | endPointPc () const |
| The capillary pressure at Swe = 1.0 also called end point capillary pressure.
|
|
template<bool enableRegularization = isRegularized()> |
Scalar | sw (const Scalar pc) const |
| The saturation-capillary pressure curve.
|
|
template<bool enableRegularization = isRegularized()> |
Scalar | dsw_dpc (const Scalar pc) const |
| The partial derivative of the saturation to the capillary pressure.
|
|
template<bool enableRegularization = isRegularized()> |
Scalar | krw (const Scalar sw) const |
| The relative permeability for the wetting phase.
|
|
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.
|
|
template<bool enableRegularization = isRegularized()> |
Scalar | krn (const Scalar sw) const |
| The relative permeability for the non-wetting phase.
|
|
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.
|
|
bool | operator== (const TwoPMaterialLaw &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 constexpr int | numFluidPhases () |
| Return the number of fluid phases.
|
|
static constexpr bool | isRegularized () |
| Return whether this law is regularized.
|
|
static BasicParams | makeBasicParams (const std::string ¶mGroup) |
| Create the base law's parameters using input file parameters.
|
|
static EffToAbsParams | makeEffToAbsParams (const std::string ¶mGroup) |
| Create the parameters of the EffToAbs policy using input file parameters.
|
|
◆ BasicParams
template<class ScalarType , class BaseLaw , class Regularization = NoRegularization, class EffToAbsPolicy = TwoPEffToAbsDefaultPolicy>
◆ EffToAbs
template<class ScalarType , class BaseLaw , class Regularization = NoRegularization, class EffToAbsPolicy = TwoPEffToAbsDefaultPolicy>
◆ EffToAbsParams
template<class ScalarType , class BaseLaw , class Regularization = NoRegularization, class EffToAbsPolicy = TwoPEffToAbsDefaultPolicy>
◆ RegularizationParams
template<class ScalarType , class BaseLaw , class Regularization = NoRegularization, class EffToAbsPolicy = TwoPEffToAbsDefaultPolicy>
◆ Scalar
template<class ScalarType , class BaseLaw , class Regularization = NoRegularization, class EffToAbsPolicy = TwoPEffToAbsDefaultPolicy>
◆ TwoPMaterialLaw() [1/3]
template<class ScalarType , class BaseLaw , class Regularization = NoRegularization, class EffToAbsPolicy = TwoPEffToAbsDefaultPolicy>
- Note
- store owning pointers to laws instead if you need default-constructible objects
◆ TwoPMaterialLaw() [2/3]
template<class ScalarType , class BaseLaw , class Regularization = NoRegularization, class EffToAbsPolicy = TwoPEffToAbsDefaultPolicy>
- Note
- This will give you nice error messages if a mandatory parameter is missing
◆ TwoPMaterialLaw() [3/3]
template<class ScalarType , class BaseLaw , class Regularization = NoRegularization, class EffToAbsPolicy = TwoPEffToAbsDefaultPolicy>
- Note
- More efficient constructor but you need to ensure all parameters are initialized
◆ basicParams()
template<class ScalarType , class BaseLaw , class Regularization = NoRegularization, class EffToAbsPolicy = TwoPEffToAbsDefaultPolicy>
◆ dkrn_dsw()
template<class ScalarType , class BaseLaw , class Regularization = NoRegularization, class EffToAbsPolicy = TwoPEffToAbsDefaultPolicy>
template<bool enableRegularization = isRegularized()>
◆ dkrw_dsw()
template<class ScalarType , class BaseLaw , class Regularization = NoRegularization, class EffToAbsPolicy = TwoPEffToAbsDefaultPolicy>
template<bool enableRegularization = isRegularized()>
◆ dpc_dsw()
template<class ScalarType , class BaseLaw , class Regularization = NoRegularization, class EffToAbsPolicy = TwoPEffToAbsDefaultPolicy>
template<bool enableRegularization = isRegularized()>
◆ dsw_dpc()
template<class ScalarType , class BaseLaw , class Regularization = NoRegularization, class EffToAbsPolicy = TwoPEffToAbsDefaultPolicy>
template<bool enableRegularization = isRegularized()>
◆ effToAbsParams()
template<class ScalarType , class BaseLaw , class Regularization = NoRegularization, class EffToAbsPolicy = TwoPEffToAbsDefaultPolicy>
◆ endPointPc()
template<class ScalarType , class BaseLaw , class Regularization = NoRegularization, class EffToAbsPolicy = TwoPEffToAbsDefaultPolicy>
◆ isRegularized()
template<class ScalarType , class BaseLaw , class Regularization = NoRegularization, class EffToAbsPolicy = TwoPEffToAbsDefaultPolicy>
◆ krn()
template<class ScalarType , class BaseLaw , class Regularization = NoRegularization, class EffToAbsPolicy = TwoPEffToAbsDefaultPolicy>
template<bool enableRegularization = isRegularized()>
◆ krw()
template<class ScalarType , class BaseLaw , class Regularization = NoRegularization, class EffToAbsPolicy = TwoPEffToAbsDefaultPolicy>
template<bool enableRegularization = isRegularized()>
◆ makeBasicParams()
template<class ScalarType , class BaseLaw , class Regularization = NoRegularization, class EffToAbsPolicy = TwoPEffToAbsDefaultPolicy>
◆ makeEffToAbsParams()
template<class ScalarType , class BaseLaw , class Regularization = NoRegularization, class EffToAbsPolicy = TwoPEffToAbsDefaultPolicy>
◆ numFluidPhases()
template<class ScalarType , class BaseLaw , class Regularization = NoRegularization, class EffToAbsPolicy = TwoPEffToAbsDefaultPolicy>
◆ operator==()
template<class ScalarType , class BaseLaw , class Regularization = NoRegularization, class EffToAbsPolicy = TwoPEffToAbsDefaultPolicy>
◆ pc()
template<class ScalarType , class BaseLaw , class Regularization = NoRegularization, class EffToAbsPolicy = TwoPEffToAbsDefaultPolicy>
template<bool enableRegularization = isRegularized()>
◆ sw()
template<class ScalarType , class BaseLaw , class Regularization = NoRegularization, class EffToAbsPolicy = TwoPEffToAbsDefaultPolicy>
template<bool enableRegularization = isRegularized()>
The documentation for this class was generated from the following file: