25 "grad(effective fluid pressure)");
27 "PorousFlowDictator",
"The UserObject that holds the list of PorousFlow variable names.");
29 "biot_coefficient", 1,
"biot_coefficient>=0&biot_coefficient<=1",
"Biot coefficient");
31 "The component (0 for x, 1 for y and 2 for z) of grad(P)");
40 _coefficient(this->template getParam<
Real>(
"biot_coefficient")),
41 _component(this->template getParam<unsigned
int>(
"component")),
42 _pf(this->template getGenericMaterialProperty<
Real, is_ad>(
43 "PorousFlow_effective_fluid_pressure_qp")),
44 _dpf_dvar(is_ad ? nullptr
45 : &this->template getMaterialProperty<
std::vector<
Real>>(
46 "dPorousFlow_effective_fluid_pressure_qp_dvar")),
50 this->
paramError(
"component",
"The component cannot be greater than the mesh dimension");
57 if (_rz && _component == 0)
58 return -_coefficient * _pf[_qp] * (_grad_test[_i][_qp](0) + _test[_i][_qp] / _q_point[_qp](0));
59 return -_coefficient * _pf[_qp] * _grad_test[_i][_qp](_component);
68 if (_dictator.notPorousFlowVariable(_var.number()))
70 const unsigned int pvar = _dictator.porousFlowVariableNum(_var.number());
71 if (_rz && _component == 0)
72 return -_coefficient * _phi[_j][_qp] * (*_dpf_dvar)[_qp][pvar] *
73 (_grad_test[_i][_qp](0) + _test[_i][_qp] / _q_point[_qp](0));
74 return -_coefficient * _phi[_j][_qp] * (*_dpf_dvar)[_qp][pvar] *
75 _grad_test[_i][_qp](_component);
86 if (_dictator.notPorousFlowVariable(jvar))
88 const unsigned int pvar = _dictator.porousFlowVariableNum(jvar);
89 if (_rz && _component == 0)
90 return -_coefficient * _phi[_j][_qp] * (*_dpf_dvar)[_qp][pvar] *
91 (_grad_test[_i][_qp](0) + _test[_i][_qp] / _q_point[_qp](0));
92 return -_coefficient * _phi[_j][_qp] * (*_dpf_dvar)[_qp][pvar] *
93 _grad_test[_i][_qp](_component);
Moose::GenericType< Real, is_ad > GenericReal
registerMooseObject("PorousFlowApp", PorousFlowEffectiveStressCoupling)
void paramError(const std::string ¶m, Args... args) const
static InputParameters validParams()
PorousFlowEffectiveStressCouplingTempl(const InputParameters ¶meters)
void libmesh_ignore(const Args &...)
virtual unsigned int dimension() const
virtual GenericReal< is_ad > computeQpResidual() override
virtual Real computeQpJacobian() override
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
This holds maps between the nonlinear variables used in a PorousFlow simulation and the variable numb...
PorousFlowEffectiveStressCoupling computes -coefficient*effective_porepressure*grad_component(test) w...
const unsigned int _component
The spatial component.
static InputParameters validParams()
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override
void ErrorVector unsigned int