21 "Specific heat capacity of the rock grains (J/kg/K).");
23 params.
addPrivateParam<std::string>(
"pf_material_type",
"matrix_internal_energy");
24 params.
addClassDescription(
"This Material calculates the internal energy of solid rock grains, " 25 "which is specific_heat_capacity * density * temperature. Kernels " 26 "multiply this by (1 - porosity) to find the energy density of the " 27 "porous rock in a rock-fluid system");
35 _cp(getParam<
Real>(
"specific_heat_capacity")),
36 _density(getParam<
Real>(
"density")),
37 _heat_cap(_cp * _density),
38 _temperature(getGenericMaterialProperty<
Real, is_ad>(
39 _dictator.isFV() ?
"PorousFlow_temperature_qp" :
"PorousFlow_temperature_nodal")),
42 : &getMaterialProperty<
std::vector<
Real>>(
"dPorousFlow_temperature_nodal_dvar")),
43 _energy(declareGenericProperty<
Real, is_ad>(
"PorousFlow_matrix_internal_energy_nodal")),
44 _denergy_dvar(is_ad ? nullptr
45 : &declareProperty<
std::vector<
Real>>(
46 "dPorousFlow_matrix_internal_energy_nodal_dvar"))
54 _energy[_qp] = _heat_cap * _temperature[_qp];
61 _energy[_qp] = _heat_cap * _temperature[_qp];
65 (*_denergy_dvar)[_qp].assign(_num_var, 0.0);
66 for (
unsigned v = 0;
v < _num_var; ++
v)
67 (*_denergy_dvar)[_qp][
v] = _heat_cap * (*_dtemperature_dvar)[_qp][
v];
This material computes internal energy (J/m^3) for a rock matrix assuming constant grain density...
PorousFlowMatrixInternalEnergyTempl(const InputParameters ¶meters)
static InputParameters validParams()
Base class for all PorousFlow vector materials.
virtual void initQpStatefulProperties() override
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
registerMooseObject("PorousFlowApp", PorousFlowMatrixInternalEnergy)
virtual void computeQpProperties() override
static InputParameters validParams()