17 params.addRangeCheckedParam<Real>(
18 "scaling", 1.0,
"scaling>=0",
"Relative permeability is multiplied by this factor");
19 params.addRangeCheckedParam<Real>(
22 "s_res >= 0 & s_res < 1",
23 "The residual saturation of the phase j. Must be between 0 and 1");
24 params.addRangeCheckedParam<Real>(
27 "sum_s_res >= 0 & sum_s_res < 1",
28 "Sum of residual saturations over all phases. Must be between 0 and 1");
29 params.addPrivateParam<std::string>(
"pf_material_type",
"relative_permeability");
30 params.addClassDescription(
"Base class for PorousFlow relative permeability materials");
35 const InputParameters & parameters)
37 _scaling(getParam<Real>(
"scaling")),
38 _saturation(_nodal_material
39 ? getMaterialProperty<std::vector<Real>>(
"PorousFlow_saturation_nodal")
40 : getMaterialProperty<std::vector<Real>>(
"PorousFlow_saturation_qp")),
41 _relative_permeability(
42 _nodal_material ? declareProperty<Real>(
"PorousFlow_relative_permeability_nodal" + _phase)
43 : declareProperty<Real>(
"PorousFlow_relative_permeability_qp" + _phase)),
44 _drelative_permeability_ds(
46 ? declarePropertyDerivative<Real>(
"PorousFlow_relative_permeability_nodal" + _phase,
47 _saturation_variable_name)
48 : declarePropertyDerivative<Real>(
"PorousFlow_relative_permeability_qp" + _phase,
49 _saturation_variable_name)),
50 _s_res(getParam<Real>(
"s_res")),
51 _sum_s_res(getParam<Real>(
"sum_s_res")),
52 _dseff_ds(1.0 / (1.0 - _sum_s_res))
55 mooseError(
"Sum of residual saturations sum_s_res cannot be smaller than s_res in ",
name());
63 Real relperm, drelperm;
71 else if (seff >= 0.0 && seff <= 1)