22 "Adds the time derivative term to the Navier-Stokes energy equation: " 23 "for fluids: d(eps * rho * cp * T)/dt, for solids: (1 - eps) * d(rho * cp * T)/dt" 24 "Material property derivatives are ignored if not provided.");
27 params.
addParam<MooseFunctorName>(
NS::cp,
"Specific heat capacity");
30 "Time derivative of the specific enthalpy");
33 params.
addRequiredParam<
bool>(
"is_solid",
"Whether this kernel acts on the solid temperature");
37 "scaling factor to reduce the thermal mass during pseudo " 38 "transients; this can accelerate convergence to steady state");
54 _is_solid(getParam<bool>(
"is_solid")),
55 _scaling(getParam<
Real>(
"scaling")),
56 _zero_scaling(_scaling < 1e-8)
60 "If specifying the specific enthalpy time derivative, no need to specify the " 65 "One of either the specific heat or the time derivative of the enthalpy must be specified");
68 "If specifying the time derivative of the density, either the specific heat or the " 69 "specific enthalpy must be specified");
84 time_derivative =
_rho(elem_arg, state) * (*_h_dot)(elem_arg, state);
86 time_derivative += (*_rho_dot)(elem_arg, state) * (*
_h)(elem_arg, state);
90 time_derivative =
_rho(elem_arg, state) * (*_cp)(elem_arg, state) *
_var.
dot(elem_arg, state);
93 (*_rho_dot)(elem_arg, state) * (*
_cp)(elem_arg, state) *
_var(elem_arg, state);
const bool _is_solid
whether this kernel is being used for a solid or a fluid temperature
const Moose::Functor< ADReal > *const _h
the specific enthalpy
Moose::StateArg determineState() const
static const std::string density
static InputParameters validParams()
DualNumber< Real, DNDerivativeType, true > ADReal
const Moose::Functor< ADReal > & _rho
the density
const Moose::Functor< ADReal > & _eps
the porosity
Moose::ElemArg makeElemArg(const Elem *elem, bool correct_skewnewss=false) const
static const std::string porosity
static const std::string cp
static InputParameters validParams()
const Elem *const & _current_elem
const Moose::Functor< ADReal > *const _cp
the specific heat or isobaric heat capacity
registerMooseObject("NavierStokesApp", PINSFVEnergyTimeDerivative)
void paramError(const std::string ¶m, Args... args) const
ADReal computeQpResidual() override
const Moose::Functor< ADReal > *const _rho_dot
the time derivative of the density
PINSFVEnergyTimeDerivative(const InputParameters ¶ms)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
DotType dot(const ElemArg &elem, const StateArg &state) const
const Real _scaling
scales the value of the kernel, used for faster steady state during pseudo transient ...
const Moose::Functor< ADReal > *const _h_dot
the time derivative of the specific enthalpy
MooseVariableFV< Real > & _var
std::string time_deriv(const std::string &var)
const bool _zero_scaling
whether a zero scaling factor has been specifed
static const std::string specific_enthalpy