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;
registerMooseObject("PorousFlowApp", PorousFlowHystereticRelativePermeabilityLiquid)
Base material for computing relative permeability for 1-phase and 2-phase hysteretic models.
const Real _s_gr_max
Gas residual saturation.
const Real _m
van Genuchten m parameter
static InputParameters validParams()
const Real _s_lr
Liquid saturation at which the liquid relperm is zero and the gas relperm is k_rg_max.
const MaterialProperty< std::vector< Real > > & _saturation
Saturation material property.
const MaterialProperty< std::array< Real, PorousFlowConstants::MAX_HYSTERESIS_ORDER > > & _hys_sat_tps
Saturation values at the turning points, as computed by PorousFlowHysteresisOrder.
MaterialProperty< Real > & _s_gr_tp0
Computed nodal or quadpoint values the Land expression, at the turning point from primary drying to f...
MaterialProperty< Real > & _relative_permeability
Computed relative permeability.
const MaterialProperty< unsigned > & _hys_order
Hysteresis order, as computed by PorousFlowHysteresisOrder.
virtual void computeTurningPoint0Info(Real tp_sat)
Compute all relevant quantities at the zeroth turning point (the transition from primary drying to fi...
MaterialProperty< Real > & _drelative_permeability_ds
Derivative of relative permeability wrt the saturation of _phase_num (which is not necessarily the li...
Material to compute liquid relative permeability for 1-phase and 2-phase hysteretic models.
MaterialProperty< Real > & _klp_end
Computed derivative of the liquid wetting relative permeability at 1 - 0.5 * _s_gr_tp0.
const unsigned _liquid_phase
Phase number of liquid phase.
MaterialProperty< Real > & _kl_begin
Computed value of the liquid wetting relative permeability at liquid_modification_range * (1 - _s_gr_...
static InputParameters validParams()
virtual void computeTurningPoint0Info(Real tp_sat) override
Compute all relevant quantities at the zeroth turning point (the transition from primary drying to fi...
virtual void computeRelPermQp() override
Compute the relative permeability and its derivative wrt the _phase_num saturation,...
MaterialProperty< Real > & _kl_end
Computed value of the liquid wetting relative permeability at 1 - 0.5 * _s_gr_tp0.
MaterialProperty< Real > & _klp_begin
Computed derivative of the liquid wetting relative permeability at liquid_modification_range * (1 - _...
const Real _liquid_modification_range
Wetting liquid relative permeability is a cubic between liquid_modification_range * (1 - _s_gr_tp0) a...
PorousFlowHystereticRelativePermeabilityLiquid(const InputParameters ¶meters)
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.
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.