25 "PorousFlowDictator",
"The UserObject that holds the list of PorousFlow variable names.");
27 "conc_var",
"The variable that represents the concentration of desorped species");
37 _conc_var_number(coupled(
"conc_var")),
38 _conc(this->template coupledGenericValue<is_ad>(
"conc_var")),
39 _porosity(this->template getGenericMaterialProperty<Real, is_ad>(
"PorousFlow_porosity_qp")),
40 _dporosity_dvar(is_ad ? nullptr
41 : &this->template getMaterialProperty<
std::vector<Real>>(
42 "dPorousFlow_porosity_qp_dvar")),
43 _dporosity_dgradvar(is_ad ? nullptr
44 : &this->template getMaterialProperty<
std::vector<RealGradient>>(
45 "dPorousFlow_porosity_qp_dgradvar")),
46 _strain_rate_qp(this->template getGenericMaterialProperty<Real, is_ad>(
47 "PorousFlow_volumetric_strain_rate_qp")),
48 _dstrain_rate_qp_dvar(is_ad ? nullptr
49 : &this->template getMaterialProperty<
std::vector<RealGradient>>(
50 "dPorousFlow_volumetric_strain_rate_qp_dvar"))
58 return _test[_i][_qp] * (1.0 - _porosity[_qp]) * _conc[_qp] * _strain_rate_qp[_qp];
65 return computeQpJac(_var.number());
72 return computeQpJac(jvar);
83 if (jvar == _conc_var_number)
84 deriv = (1.0 - _porosity[_qp]) * _phi[_j][_qp] * _strain_rate_qp[_qp];
86 if (_dictator.notPorousFlowVariable(jvar))
87 return _test[_i][_qp] * deriv;
88 const unsigned int pvar = _dictator.porousFlowVariableNum(jvar);
91 (*_dporosity_dgradvar)[_qp][pvar] * _grad_phi[_j][_qp] * _conc[_qp] * _strain_rate_qp[_qp];
92 deriv -= (*_dporosity_dvar)[_qp][pvar] * _phi[_j][_qp] * _conc[_qp] * _strain_rate_qp[_qp];
93 deriv += (1.0 - _porosity[_qp]) * _conc[_qp] * (*_dstrain_rate_qp_dvar)[_qp][pvar] *
96 return _test[_i][_qp] * deriv;
100 libmesh_ignore(jvar);
Moose::GenericType< Real, is_ad > GenericReal
registerMooseObject("PorousFlowApp", PorousFlowDesorpedMassVolumetricExpansion)
static InputParameters validParams()
Kernel = desorped_mass * rate_of_solid_volumetric_expansion where desorped_mass = (1 - porosity) * co...
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override
virtual Real computeQpJacobian() override
virtual GenericReal< is_ad > computeQpResidual() override
static InputParameters validParams()
Real computeQpJac(unsigned int jvar) const
Derivative of the residual with respect to the Moose variable with variable number jvar.
This holds maps between the nonlinear variables used in a PorousFlow simulation and the variable numb...