Material to calculate van Genuchten-type relative permeability of an arbitrary phase given the saturation and exponent of that phase. More...
#include <PorousFlowRelativePermeabilityVG.h>
Public Types | |
typedef DerivativeMaterialPropertyNameInterface::SymbolName | SymbolName |
Public Member Functions | |
PorousFlowRelativePermeabilityVGTempl (const InputParameters ¶meters) | |
const GenericMaterialProperty< U, is_ad > & | getDefaultMaterialProperty (const std::string &name) |
const GenericMaterialProperty< U, is_ad > & | getDefaultMaterialPropertyByName (const std::string &name) |
void | validateDerivativeMaterialPropertyBase (const std::string &base) |
const MaterialPropertyName | derivativePropertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const |
const MaterialPropertyName | derivativePropertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const |
const MaterialPropertyName | derivativePropertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const |
const MaterialPropertyName | derivativePropertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const |
GenericMaterialProperty< U, is_ad > & | declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c) |
GenericMaterialProperty< U, is_ad > & | declarePropertyDerivative (const std::string &base, const std::vector< SymbolName > &c) |
GenericMaterialProperty< U, is_ad > & | declarePropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="") |
GenericMaterialProperty< U, is_ad > & | declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c) |
GenericMaterialProperty< U, is_ad > & | declarePropertyDerivative (const std::string &base, const std::vector< SymbolName > &c) |
GenericMaterialProperty< U, is_ad > & | declarePropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="") |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const std::vector< VariableName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const std::vector< SymbolName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="") |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, unsigned int v2, unsigned int v3=libMesh::invalid_uint) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, unsigned int v1, unsigned int v2=libMesh::invalid_uint, unsigned int v3=libMesh::invalid_uint) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const std::vector< VariableName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const std::vector< SymbolName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="") |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, unsigned int v2, unsigned int v3=libMesh::invalid_uint) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, unsigned int v1, unsigned int v2=libMesh::invalid_uint, unsigned int v3=libMesh::invalid_uint) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< VariableName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="") |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< VariableName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="") |
void | validateCoupling (const MaterialPropertyName &base, const std::vector< VariableName > &c, bool validate_aux=true) |
void | validateCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="") |
void | validateCoupling (const MaterialPropertyName &base, const std::vector< VariableName > &c, bool validate_aux=true) |
void | validateCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="") |
void | validateNonlinearCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="") |
void | validateNonlinearCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="") |
const MaterialPropertyName | propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const |
const MaterialPropertyName | propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const |
const MaterialPropertyName | propertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const |
const MaterialPropertyName | propertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const |
const MaterialPropertyName | propertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const |
const MaterialPropertyName | propertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const |
const MaterialPropertyName | propertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const |
const MaterialPropertyName | propertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const |
Static Public Member Functions | |
static InputParameters | validParams () |
Protected Member Functions | |
virtual GenericReal< is_ad > | relativePermeability (GenericReal< is_ad > seff) const override |
Relative permeability equation (must be overriden in derived class) More... | |
virtual Real | dRelativePermeability (Real seff) const override |
Derivative of relative permeability with respect to effective saturation. More... | |
virtual void | computeQpProperties () override |
virtual GenericReal< is_ad > | effectiveSaturation (GenericReal< is_ad > saturation) const |
Effective saturation of fluid phase. More... | |
Protected Attributes | |
const Real | _m |
van Genuchten exponent m for the specified phase More... | |
const bool | _wetting |
Whether to use the wetting or non-wetting van Genuchten expression. More... | |
const Real | _cut |
Start of cubic smoothing. More... | |
const Real | _cub0 |
Parameter of the cubic. More... | |
const Real | _cub1 |
Parameter of the cubic. More... | |
const Real | _cub2 |
Parameter of the cubic. More... | |
const Real | _cub3 |
Parameter of the cubic. More... | |
const Real | _scaling |
Relative permeability is multiplied by this quantity. More... | |
const GenericMaterialProperty< std::vector< Real >, is_ad > & | _saturation |
Saturation material property. More... | |
GenericMaterialProperty< Real, is_ad > & | _relative_permeability |
Relative permeability material property. More... | |
MaterialProperty< Real > *const | _drelative_permeability_ds |
Derivative of relative permeability wrt phase saturation. More... | |
const Real | _s_res |
Residual saturation of specified phase. More... | |
const Real | _sum_s_res |
Sum of residual saturations over all phases. More... | |
const Real | _dseff_ds |
Derivative of effective saturation with respect to saturation. More... | |
const unsigned int | _phase_num |
Phase number of fluid. More... | |
const std::string | _phase |
Stringified fluid phase number. More... | |
Material to calculate van Genuchten-type relative permeability of an arbitrary phase given the saturation and exponent of that phase.
From van Genuchten, M. Th., A closed for equation for predicting the hydraulic conductivity of unsaturated soils, Soil Sci. Soc., 44, 892-898 (1980)
Optionally this relative permeability may be smoothed with a cubic near seff=1 The relative permeability is a cubic for seff>_cut. The cubic is chosen so that the derivative is zero for seff=1, and that the derivative and value matches the van Genuchten expression for seff=_cut.
Definition at line 28 of file PorousFlowRelativePermeabilityVG.h.
PorousFlowRelativePermeabilityVGTempl< is_ad >::PorousFlowRelativePermeabilityVGTempl | ( | const InputParameters & | parameters | ) |
Definition at line 42 of file PorousFlowRelativePermeabilityVG.C.
|
overrideprotectedvirtualinherited |
Definition at line 65 of file PorousFlowRelativePermeabilityBase.C.
|
overrideprotectedvirtual |
Derivative of relative permeability with respect to effective saturation.
seff | effective saturation |
Implements PorousFlowRelativePermeabilityBaseTempl< is_ad >.
Definition at line 87 of file PorousFlowRelativePermeabilityVG.C.
|
protectedvirtualinherited |
Effective saturation of fluid phase.
saturation | true saturation |
Definition at line 98 of file PorousFlowRelativePermeabilityBase.C.
|
overrideprotectedvirtual |
Relative permeability equation (must be overriden in derived class)
seff | effective saturation |
Implements PorousFlowRelativePermeabilityBaseTempl< is_ad >.
Definition at line 71 of file PorousFlowRelativePermeabilityVG.C.
|
static |
Definition at line 18 of file PorousFlowRelativePermeabilityVG.C.
|
protected |
Parameter of the cubic.
Definition at line 49 of file PorousFlowRelativePermeabilityVG.h.
|
protected |
Parameter of the cubic.
Definition at line 51 of file PorousFlowRelativePermeabilityVG.h.
|
protected |
Parameter of the cubic.
Definition at line 53 of file PorousFlowRelativePermeabilityVG.h.
|
protected |
Parameter of the cubic.
Definition at line 55 of file PorousFlowRelativePermeabilityVG.h.
|
protected |
Start of cubic smoothing.
Definition at line 46 of file PorousFlowRelativePermeabilityVG.h.
|
protectedinherited |
Derivative of relative permeability wrt phase saturation.
Definition at line 61 of file PorousFlowRelativePermeabilityBase.h.
|
protectedinherited |
Derivative of effective saturation with respect to saturation.
Definition at line 70 of file PorousFlowRelativePermeabilityBase.h.
|
protected |
van Genuchten exponent m for the specified phase
Definition at line 40 of file PorousFlowRelativePermeabilityVG.h.
|
protectedinherited |
Stringified fluid phase number.
Definition at line 34 of file PorousFlowMaterialBase.h.
|
protectedinherited |
Phase number of fluid.
Definition at line 31 of file PorousFlowMaterialBase.h.
Referenced by PorousFlowBrine::computeQpProperties(), PorousFlowBrine::initQpStatefulProperties(), and PorousFlowMaterialBase::PorousFlowMaterialBase().
|
protectedinherited |
Relative permeability material property.
Definition at line 58 of file PorousFlowRelativePermeabilityBase.h.
|
protectedinherited |
Residual saturation of specified phase.
Definition at line 64 of file PorousFlowRelativePermeabilityBase.h.
Referenced by PorousFlowRelativePermeabilityBaseTempl< is_ad >::PorousFlowRelativePermeabilityBaseTempl().
|
protectedinherited |
Saturation material property.
Definition at line 55 of file PorousFlowRelativePermeabilityBase.h.
|
protectedinherited |
Relative permeability is multiplied by this quantity.
Definition at line 52 of file PorousFlowRelativePermeabilityBase.h.
|
protectedinherited |
Sum of residual saturations over all phases.
Definition at line 67 of file PorousFlowRelativePermeabilityBase.h.
Referenced by PorousFlowRelativePermeabilityBaseTempl< is_ad >::PorousFlowRelativePermeabilityBaseTempl().
|
protected |
Whether to use the wetting or non-wetting van Genuchten expression.
Definition at line 43 of file PorousFlowRelativePermeabilityVG.h.