20 "liquid_modification_range",
22 "liquid_modification_range > 0 & liquid_modification_range <= 1",
23 "The wetting liquid relative permeability will be a cubic between S_l = " 24 "liquid_modification_range * (1 - S_gr_Del) and S_l = 1.0 - 0.5 * S_gr_Del");
26 "PorousFlow material that computes relative permeability of the liquid phase in 1-phase or " 27 "2-phase models that include hysteresis. You should ensure that the 'phase' for this " 28 "Material does indeed represent the liquid phase");
35 _liquid_phase(_phase_num),
36 _liquid_modification_range(getParam<
Real>(
"liquid_modification_range")),
37 _kl_begin(_nodal_material ? declareProperty<
Real>(
"PorousFlow_hysteresis_kr_l_begin_nodal")
38 : declareProperty<
Real>(
"PorousFlow_hysteresis_kr_l_begin_qp")),
39 _klp_begin(_nodal_material ? declareProperty<
Real>(
"PorousFlow_hysteresis_krp_l_begin_nodal")
40 : declareProperty<
Real>(
"PorousFlow_hysteresis_krp_l_begin_qp")),
41 _kl_end(_nodal_material ? declareProperty<
Real>(
"PorousFlow_hysteresis_kr_l_end_nodal")
42 : declareProperty<
Real>(
"PorousFlow_hysteresis_kr_l_end_qp")),
43 _klp_end(_nodal_material ? declareProperty<
Real>(
"PorousFlow_hysteresis_krp_l_end_nodal")
44 : declareProperty<
Real>(
"PorousFlow_hysteresis_krp_l_end_qp"))
56 sl,
_s_lr, 0.0,
_s_gr_max, 1.0,
_m,
_liquid_modification_range, 0.0, 0.0, 0.0, 0.0);
58 sl,
_s_lr, 0.0,
_s_gr_max, 1.0,
_m,
_liquid_modification_range, 0.0, 0.0, 0.0, 0.0);
66 const Real effective_liquid_tp =
105 const Real effective_liquid_tp = (tp_sat <
_s_lr) ?
_s_lr : tp_sat;
134 const Real s_end = 1.0 - 0.5 * s_gas_max;
const Real _s_lr
Liquid saturation at which the liquid relperm is zero and the gas relperm is k_rg_max.
Real drelativePermeabilityHys(Real sl, Real slr, Real sgrdel, Real sgrmax, Real sldel, Real m, Real upper_liquid_param, Real y0, Real y0p, Real y1, Real y1p)
Derivative of Hysteretic relative permeability for liquid, with respect to liquid saturation...
MaterialProperty< Real > & _klp_end
Computed derivative of the liquid wetting relative permeability at 1 - 0.5 * _s_gr_tp0.
Base material for computing relative permeability for 1-phase and 2-phase hysteretic models...
const Real _liquid_modification_range
Wetting liquid relative permeability is a cubic between liquid_modification_range * (1 - _s_gr_tp0) a...
MaterialProperty< Real > & _s_gr_tp0
Computed nodal or quadpoint values the Land expression, at the turning point from primary drying to f...
registerMooseObject("PorousFlowApp", PorousFlowHystereticRelativePermeabilityLiquid)
MaterialProperty< Real > & _kl_end
Computed value of the liquid wetting relative permeability at 1 - 0.5 * _s_gr_tp0.
PorousFlowHystereticRelativePermeabilityLiquid(const InputParameters ¶meters)
virtual void computeRelPermQp() override
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].
MaterialProperty< Real > & _kl_begin
Computed value of the liquid wetting relative permeability at liquid_modification_range * (1 - _s_gr_...
const MaterialProperty< unsigned > & _hys_order
Hysteresis order, as computed by PorousFlowHysteresisOrder.
Real relativePermeabilityHys(Real sl, Real slr, Real sgrdel, Real sgrmax, Real sldel, Real m, Real upper_liquid_param, Real y0, Real y0p, Real y1, Real y1p)
Hysteretic relative permeability for liquid.
virtual void computeTurningPoint0Info(Real tp_sat) override
Compute all relevant quantities at the zeroth turning point (the transition from primary drying to fi...
const MaterialProperty< std::vector< Real > > & _saturation
Saturation material property.
virtual void computeTurningPoint0Info(Real tp_sat)
Compute all relevant quantities at the zeroth turning point (the transition from primary drying to fi...
static InputParameters validParams()
const unsigned _liquid_phase
Phase number of liquid phase.
MaterialProperty< Real > & _relative_permeability
Computed relative permeability.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const Real _m
van Genuchten m parameter
MaterialProperty< Real > & _klp_begin
Computed derivative of the liquid wetting relative permeability at liquid_modification_range * (1 - _...
static InputParameters validParams()
MaterialProperty< Real > & _drelative_permeability_ds
Derivative of relative permeability wrt the saturation of _phase_num (which is not necessarily the li...
const Real _s_gr_max
Gas residual saturation.
Material to compute liquid relative permeability for 1-phase and 2-phase hysteretic models...
const MaterialProperty< std::array< Real, PorousFlowConstants::MAX_HYSTERESIS_ORDER > > & _hys_sat_tps
Saturation values at the turning points, as computed by PorousFlowHysteresisOrder.