34 ? getGenericMaterialProperty<
std::vector<Real>, is_ad>(
"PorousFlow_porepressure_nodal")
35 : getGenericMaterialProperty<
std::vector<Real>, is_ad>(
"PorousFlow_porepressure_qp")),
36 _dporepressure_dvar(is_ad ? nullptr
37 : _nodal_material ? &getMaterialProperty<
std::vector<
std::vector<Real>>>(
38 "dPorousFlow_porepressure_nodal_dvar")
39 : &getMaterialProperty<
std::vector<
std::vector<Real>>>(
40 "dPorousFlow_porepressure_qp_dvar")),
43 ? getGenericMaterialProperty<
std::vector<Real>, is_ad>(
"PorousFlow_saturation_nodal")
44 : getGenericMaterialProperty<
std::vector<Real>, is_ad>(
"PorousFlow_saturation_qp")),
45 _dsaturation_dvar(is_ad ? nullptr
46 : _nodal_material ? &getMaterialProperty<
std::vector<
std::vector<Real>>>(
47 "dPorousFlow_saturation_nodal_dvar")
48 : &getMaterialProperty<
std::vector<
std::vector<Real>>>(
49 "dPorousFlow_saturation_qp_dvar")),
51 ? declareGenericProperty<Real, is_ad>(
"PorousFlow_effective_fluid_pressure_nodal")
52 : declareGenericProperty<Real, is_ad>(
"PorousFlow_effective_fluid_pressure_qp")),
56 ? &declareProperty<
std::vector<Real>>(
"dPorousFlow_effective_fluid_pressure_nodal_dvar")
57 : &declareProperty<
std::vector<Real>>(
"dPorousFlow_effective_fluid_pressure_qp_dvar"))
77 (*_dpf_dvar)[_qp].assign(_num_var, 0.0);
79 for (
unsigned int ph = 0; ph < _num_phases; ++ph)
81 _pf[_qp] += _saturation[_qp][ph] * _porepressure[_qp][ph];
84 for (
unsigned int v = 0;
v < _num_var; ++
v)
85 (*_dpf_dvar)[_qp][
v] += (*_dsaturation_dvar)[_qp][ph][
v] * _porepressure[_qp][ph] +
86 _saturation[_qp][ph] * (*_dporepressure_dvar)[_qp][ph][
v];