27 _num_phases(_dictator.numPhases()),
28 _num_components(_dictator.numComponents()),
29 _num_pf_vars(_dictator.numVariables()),
33 ? declareGenericProperty<
std::vector<Real>, is_ad>(
"PorousFlow_porepressure_nodal")
34 : declareGenericProperty<
std::vector<Real>, is_ad>(
"PorousFlow_porepressure_qp")),
35 _dporepressure_dvar(is_ad ? nullptr
36 : _nodal_material ? &declareProperty<
std::vector<
std::vector<Real>>>(
37 "dPorousFlow_porepressure_nodal_dvar")
38 : &declareProperty<
std::vector<
std::vector<Real>>>(
39 "dPorousFlow_porepressure_qp_dvar")),
40 _gradp_qp(_nodal_material ? nullptr
41 : &declareGenericProperty<
std::vector<RealGradient>, is_ad>(
42 "PorousFlow_grad_porepressure_qp")),
43 _dgradp_qp_dgradv((_nodal_material || is_ad)
45 : &declareProperty<
std::vector<
std::vector<Real>>>(
46 "dPorousFlow_grad_porepressure_qp_dgradvar")),
47 _dgradp_qp_dv((_nodal_material || is_ad)
49 : &declareProperty<
std::vector<
std::vector<RealGradient>>>(
50 "dPorousFlow_grad_porepressure_qp_dvar")),
54 ? declareGenericProperty<
std::vector<Real>, is_ad>(
"PorousFlow_saturation_nodal")
55 : declareGenericProperty<
std::vector<Real>, is_ad>(
"PorousFlow_saturation_qp")),
59 ? &declareProperty<
std::vector<
std::vector<Real>>>(
"dPorousFlow_saturation_nodal_dvar")
60 : &declareProperty<
std::vector<
std::vector<Real>>>(
"dPorousFlow_saturation_qp_dvar")),
61 _grads_qp(_nodal_material ? nullptr
62 : &declareGenericProperty<
std::vector<RealGradient>, is_ad>(
63 "PorousFlow_grad_saturation_qp")),
64 _dgrads_qp_dgradv((_nodal_material || is_ad) ? nullptr
65 : &declareProperty<
std::vector<
std::vector<Real>>>(
66 "dPorousFlow_grad_saturation_qp_dgradvar")),
67 _dgrads_qp_dv((_nodal_material || is_ad)
69 : &declareProperty<
std::vector<
std::vector<RealGradient>>>(
70 "dPorousFlow_grad_saturation_qp_dvar"))
88 _porepressure[_qp].resize(_num_phases);
89 _saturation[_qp].resize(_num_phases);
93 (*_dporepressure_dvar)[_qp].resize(_num_phases);
94 (*_dsaturation_dvar)[_qp].resize(_num_phases);
99 (*_gradp_qp)[_qp].resize(_num_phases);
100 (*_grads_qp)[_qp].resize(_num_phases);
104 (*_dgradp_qp_dgradv)[_qp].resize(_num_phases);
105 (*_dgradp_qp_dv)[_qp].resize(_num_phases);
107 (*_dgrads_qp_dgradv)[_qp].resize(_num_phases);
108 (*_dgrads_qp_dv)[_qp].resize(_num_phases);
114 for (
unsigned phase = 0; phase < _num_phases; ++phase)
117 (*_dporepressure_dvar)[_qp][phase].assign(_num_pf_vars, 0.0);
118 (*_dsaturation_dvar)[_qp][phase].assign(_num_pf_vars, 0.0);
119 if (!_nodal_material)
121 (*_dgradp_qp_dgradv)[_qp][phase].assign(_num_pf_vars, 0.0);
122 (*_dgradp_qp_dv)[_qp][phase].assign(_num_pf_vars, RealGradient());
123 (*_dgrads_qp_dgradv)[_qp][phase].assign(_num_pf_vars, 0.0);
124 (*_dgrads_qp_dv)[_qp][phase].assign(_num_pf_vars, RealGradient());