23 "PorousFlowDictator",
"The UserObject that holds the list of PorousFlow variable names");
34 "PorousFlow_thermal_conductivity_qp")),
35 _dla_dvar(is_ad ? nullptr
37 "dPorousFlow_thermal_conductivity_qp_dvar")),
38 _grad_t(this->template getGenericMaterialProperty<
RealGradient, is_ad>(
39 "PorousFlow_grad_temperature_qp")),
40 _dgrad_t_dvar(is_ad ? nullptr
42 "dPorousFlow_grad_temperature_qp_dvar")),
43 _dgrad_t_dgradvar(is_ad ? nullptr
44 : &this->template getMaterialProperty<
std::vector<
Real>>(
45 "dPorousFlow_grad_temperature_qp_dgradvar"))
53 return _grad_test[_i][_qp] * (_la[_qp] * _grad_t[_qp]);
61 return computeQpOffDiagJacobian(_var.number());
71 if (_dictator.notPorousFlowVariable(jvar))
73 const unsigned int pvar = _dictator.porousFlowVariableNum(jvar);
74 return _grad_test[_i][_qp] *
75 (((*_dla_dvar)[_qp][pvar] * _grad_t[_qp] + _la[_qp] * (*_dgrad_t_dvar)[_qp][pvar]) *
77 _la[_qp] * (*_dgrad_t_dgradvar)[_qp][pvar] * _grad_phi[_j][_qp]);
Moose::GenericType< Real, is_ad > GenericReal
static InputParameters validParams()
PorousFlowHeatConductionTempl(const InputParameters ¶meters)
TensorValue< Real > RealTensorValue
void libmesh_ignore(const Args &...)
Kernel = grad(test) * thermal_conductivity * grad(temperature)
static InputParameters validParams()
virtual Real computeQpJacobian() override
virtual GenericReal< is_ad > computeQpResidual() 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...
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override
registerMooseObject("PorousFlowApp", PorousFlowHeatConduction)