21 "This Material provides saturation-dependent diffusivity using the Millington-Quirk model");
29 _porosity_qp(this->template getGenericMaterialProperty<
Real, is_ad>(
"PorousFlow_porosity_qp")),
30 _dporosity_qp_dvar(is_ad ? nullptr
31 : &this->template getMaterialProperty<
std::vector<
Real>>(
32 "dPorousFlow_porosity_qp_dvar")),
33 _saturation_qp(this->template getGenericMaterialProperty<
std::vector<
Real>, is_ad>(
34 "PorousFlow_saturation_qp")),
35 _dsaturation_qp_dvar(is_ad
37 : &this->template getMaterialProperty<
std::vector<
std::vector<
Real>>>(
38 "dPorousFlow_saturation_qp_dvar"))
48 for (
unsigned int ph = 0; ph < _num_phases; ++ph)
50 _tortuosity[_qp][ph] =
51 std::cbrt(_porosity_qp[_qp]) *
std::pow(_saturation_qp[_qp][ph], 10.0 / 3.0);
54 for (
unsigned int var = 0; var < _num_var; ++var)
56 1.0 / 3.0 * std::cbrt(_porosity_qp[_qp]) *
57 std::pow(_saturation_qp[_qp][ph], 7.0 / 3.0) *
58 (_saturation_qp[_qp][ph] / _porosity_qp[_qp] * (*_dporosity_qp_dvar)[_qp][var] +
59 10.0 * (*_dsaturation_qp_dvar)[_qp][ph][var]));
PorousFlowDiffusivityMillingtonQuirkTempl(const InputParameters ¶meters)
virtual void computeQpProperties() override
static InputParameters validParams()
Base class Material designed to provide the tortuosity and diffusion coefficents. ...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static InputParameters validParams()
MooseUnits pow(const MooseUnits &, int)
registerMooseObject("PorousFlowApp", PorousFlowDiffusivityMillingtonQuirk)
Material to provide saturation dependent diffusivity using the model of Millington and Quirk...
virtual void computeQpProperties() override