Base material for computing relative permeability for 1-phase and 2-phase hysteretic models. More...
#include <PorousFlowHystereticRelativePermeabilityBase.h>
Public Types | |
typedef DerivativeMaterialPropertyNameInterface::SymbolName | SymbolName |
Public Member Functions | |
PorousFlowHystereticRelativePermeabilityBase (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 void | initQpStatefulProperties () override |
virtual void | computeQpProperties () override |
virtual void | computeRelPermQp ()=0 |
Compute the relative permeability and its derivative wrt the _phase_num saturation, at the quadpoints, and store the result in _relative_permeability[_qp] and _drelative_permeability_ds[_qp]. More... | |
virtual void | computeTurningPoint0Info (Real tp_sat) |
Compute all relevant quantities at the zeroth turning point (the transition from primary drying to first-order wetting) More... | |
Protected Attributes | |
const Real | _s_lr |
Liquid saturation at which the liquid relperm is zero and the gas relperm is k_rg_max. More... | |
const Real | _s_gr_max |
Gas residual saturation. More... | |
const Real | _m |
van Genuchten m parameter More... | |
const MaterialProperty< std::vector< Real > > & | _saturation |
Saturation material property. More... | |
const MaterialProperty< unsigned > & | _hys_order |
Hysteresis order, as computed by PorousFlowHysteresisOrder. More... | |
const MaterialProperty< unsigned > & | _hys_order_old |
Old value of hysteresis order, as computed by PorousFlowHysteresisOrder. More... | |
const MaterialProperty< std::array< Real, PorousFlowConstants::MAX_HYSTERESIS_ORDER > > & | _hys_sat_tps |
Saturation values at the turning points, as computed by PorousFlowHysteresisOrder. More... | |
MaterialProperty< Real > & | _relative_permeability |
Computed relative permeability. More... | |
MaterialProperty< Real > & | _drelative_permeability_ds |
Derivative of relative permeability wrt the saturation of _phase_num (which is not necessarily the liquid phase) More... | |
MaterialProperty< Real > & | _s_gr_tp0 |
Computed nodal or quadpoint values the Land expression, at the turning point from primary drying to first-order wetting. More... | |
const unsigned int | _phase_num |
Phase number of fluid. More... | |
const std::string | _phase |
Stringified fluid phase number. More... | |
Private Member Functions | |
Real | landSat (Real slDel) const |
Base material for computing relative permeability for 1-phase and 2-phase hysteretic models.
Definition at line 18 of file PorousFlowHystereticRelativePermeabilityBase.h.
PorousFlowHystereticRelativePermeabilityBase::PorousFlowHystereticRelativePermeabilityBase | ( | const InputParameters & | parameters | ) |
Definition at line 41 of file PorousFlowHystereticRelativePermeabilityBase.C.
|
overrideprotectedvirtual |
Definition at line 93 of file PorousFlowHystereticRelativePermeabilityBase.C.
|
protectedpure virtual |
Compute the relative permeability and its derivative wrt the _phase_num saturation, at the quadpoints, and store the result in _relative_permeability[_qp] and _drelative_permeability_ds[_qp].
Implemented in PorousFlowHystereticRelativePermeabilityLiquid, and PorousFlowHystereticRelativePermeabilityGas.
Referenced by computeQpProperties(), and initQpStatefulProperties().
|
protectedvirtual |
Compute all relevant quantities at the zeroth turning point (the transition from primary drying to first-order wetting)
tp_sat | Liquid saturation at the turning point |
Reimplemented in PorousFlowHystereticRelativePermeabilityLiquid.
Definition at line 111 of file PorousFlowHystereticRelativePermeabilityBase.C.
Referenced by computeQpProperties(), PorousFlowHystereticRelativePermeabilityLiquid::computeTurningPoint0Info(), and initQpStatefulProperties().
|
overrideprotectedvirtual |
Definition at line 83 of file PorousFlowHystereticRelativePermeabilityBase.C.
slDel | the value of the liquid saturation at the turning point |
Definition at line 104 of file PorousFlowHystereticRelativePermeabilityBase.C.
Referenced by computeTurningPoint0Info().
|
static |
Definition at line 13 of file PorousFlowHystereticRelativePermeabilityBase.C.
Referenced by PorousFlowHystereticRelativePermeabilityGas::validParams(), and PorousFlowHystereticRelativePermeabilityLiquid::validParams().
|
protected |
Derivative of relative permeability wrt the saturation of _phase_num (which is not necessarily the liquid phase)
Definition at line 52 of file PorousFlowHystereticRelativePermeabilityBase.h.
Referenced by PorousFlowHystereticRelativePermeabilityGas::computeRelPermQp(), and PorousFlowHystereticRelativePermeabilityLiquid::computeRelPermQp().
|
protected |
Hysteresis order, as computed by PorousFlowHysteresisOrder.
Definition at line 39 of file PorousFlowHystereticRelativePermeabilityBase.h.
Referenced by computeQpProperties(), PorousFlowHystereticRelativePermeabilityGas::computeRelPermQp(), PorousFlowHystereticRelativePermeabilityLiquid::computeRelPermQp(), and initQpStatefulProperties().
|
protected |
Old value of hysteresis order, as computed by PorousFlowHysteresisOrder.
Definition at line 42 of file PorousFlowHystereticRelativePermeabilityBase.h.
Referenced by computeQpProperties().
|
protected |
Saturation values at the turning points, as computed by PorousFlowHysteresisOrder.
Definition at line 46 of file PorousFlowHystereticRelativePermeabilityBase.h.
Referenced by computeQpProperties(), PorousFlowHystereticRelativePermeabilityGas::computeRelPermQp(), PorousFlowHystereticRelativePermeabilityLiquid::computeRelPermQp(), and initQpStatefulProperties().
|
protected |
van Genuchten m parameter
Definition at line 33 of file PorousFlowHystereticRelativePermeabilityBase.h.
Referenced by PorousFlowHystereticRelativePermeabilityGas::computeRelPermQp(), PorousFlowHystereticRelativePermeabilityLiquid::computeRelPermQp(), and PorousFlowHystereticRelativePermeabilityLiquid::computeTurningPoint0Info().
|
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().
|
protected |
Computed relative permeability.
Definition at line 49 of file PorousFlowHystereticRelativePermeabilityBase.h.
Referenced by PorousFlowHystereticRelativePermeabilityGas::computeRelPermQp(), and PorousFlowHystereticRelativePermeabilityLiquid::computeRelPermQp().
|
protected |
Gas residual saturation.
Definition at line 30 of file PorousFlowHystereticRelativePermeabilityBase.h.
Referenced by PorousFlowHystereticRelativePermeabilityGas::computeRelPermQp(), PorousFlowHystereticRelativePermeabilityLiquid::computeRelPermQp(), PorousFlowHystereticRelativePermeabilityLiquid::computeTurningPoint0Info(), landSat(), and PorousFlowHystereticRelativePermeabilityBase().
|
protected |
Computed nodal or quadpoint values the Land expression, at the turning point from primary drying to first-order wetting.
Definition at line 55 of file PorousFlowHystereticRelativePermeabilityBase.h.
Referenced by PorousFlowHystereticRelativePermeabilityGas::computeRelPermQp(), PorousFlowHystereticRelativePermeabilityLiquid::computeRelPermQp(), PorousFlowHystereticRelativePermeabilityLiquid::computeTurningPoint0Info(), and computeTurningPoint0Info().
|
protected |
Liquid saturation at which the liquid relperm is zero and the gas relperm is k_rg_max.
Definition at line 27 of file PorousFlowHystereticRelativePermeabilityBase.h.
Referenced by PorousFlowHystereticRelativePermeabilityGas::computeRelPermQp(), PorousFlowHystereticRelativePermeabilityLiquid::computeRelPermQp(), PorousFlowHystereticRelativePermeabilityLiquid::computeTurningPoint0Info(), landSat(), and PorousFlowHystereticRelativePermeabilityBase().
|
protected |
Saturation material property.
Definition at line 36 of file PorousFlowHystereticRelativePermeabilityBase.h.
Referenced by PorousFlowHystereticRelativePermeabilityGas::computeRelPermQp(), and PorousFlowHystereticRelativePermeabilityLiquid::computeRelPermQp().