28 _enthalpy(this->template getGenericMaterialProperty<
std::vector<
Real>, is_ad>(
29 "PorousFlow_fluid_phase_enthalpy_nodal")),
30 _denthalpy_dvar(is_ad ? nullptr
31 : &this->template getMaterialProperty<
std::vector<
std::vector<
Real>>>(
32 "dPorousFlow_fluid_phase_enthalpy_nodal_dvar")),
33 _relative_permeability(this->template getGenericMaterialProperty<
std::vector<
Real>, is_ad>(
34 "PorousFlow_relative_permeability_nodal")),
35 _drelative_permeability_dvar(
37 : &this->template getMaterialProperty<
std::vector<
std::vector<
Real>>>(
38 "dPorousFlow_relative_permeability_nodal_dvar"))
46 return _enthalpy[nodenum][phase] * _fluid_density_node[nodenum][phase] *
47 _relative_permeability[nodenum][phase] / _fluid_viscosity[nodenum][phase];
58 Real dm = (*_denthalpy_dvar)[nodenum][phase][pvar] * _fluid_density_node[nodenum][phase] *
59 _relative_permeability[nodenum][phase] / _fluid_viscosity[nodenum][phase];
60 dm += _enthalpy[nodenum][phase] * (*_dfluid_density_node_dvar)[nodenum][phase][pvar] *
61 _relative_permeability[nodenum][phase] / _fluid_viscosity[nodenum][phase];
62 dm += _enthalpy[nodenum][phase] * _fluid_density_node[nodenum][phase] *
63 (*_drelative_permeability_dvar)[nodenum][phase][pvar] / _fluid_viscosity[nodenum][phase];
64 dm -= _enthalpy[nodenum][phase] * _fluid_density_node[nodenum][phase] *
65 _relative_permeability[nodenum][phase] * (*_dfluid_viscosity_dvar)[nodenum][phase][pvar] /
66 std::pow(_fluid_viscosity[nodenum][phase], 2);
Moose::GenericType< Real, is_ad > GenericReal
static InputParameters validParams()
PetscErrorCode PetscOptionItems *PetscErrorCode DM dm
void libmesh_ignore(const Args &...)
registerMooseObject("PorousFlowApp", PorousFlowHeatAdvection)
static InputParameters validParams()
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
PorousFlowHeatAdvectionTempl(const InputParameters ¶meters)
virtual GenericReal< is_ad > mobility(unsigned nodenum, unsigned phase) const override
The mobility of the fluid.
virtual Real dmobility(unsigned nodenum, unsigned phase, unsigned pvar) const override
The derivative of mobility with respect to PorousFlow variable pvar – non-AD path only...
Advection of heat via flux of component k in fluid phase alpha.
MooseUnits pow(const MooseUnits &, int)