20 params.
set<std::string>(
"pf_material_type") =
"effective_pressure";
22 "effective_stress = total_stress + " 23 "biot_coeff*effective_fluid_pressure. The effective_fluid_pressure = " 24 "sum_{phases}(S_phase * P_phase)");
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"))
66 for (
unsigned int ph = 0; ph < _num_phases; ++ph)
67 _pf[_qp] += _saturation[_qp][ph] * _porepressure[_qp][ph];
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];
virtual void initQpStatefulProperties() override
virtual void computeQpProperties() override
static InputParameters validParams()
registerMooseObject("PorousFlowApp", PorousFlowEffectiveFluidPressure)
Material designed to calculate the effective fluid pressure that can be used in the mechanical effect...
Base class for all PorousFlow vector materials.
static InputParameters validParams()
PorousFlowEffectiveFluidPressureTempl(const InputParameters ¶meters)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string v