22 "advection term for the energy e.g. h=int(cp dT). A user may still "
23 "override what quantity is advected, but the default is enthalpy.");
24 MooseEnum advected_quantity(
"enthalpy temperature",
"enthalpy");
25 params.
addParam<
MooseEnum>(
"advected_quantity", advected_quantity,
"The advected quantity");
26 params.
addParam<Real>(
"cp",
"Constant specific heat value");
28 "rhie_chow_user_object",
29 "The rhie-chow user-object which is used to determine the face velocity.");
37 _cp(isParamValid(
"cp") ? getParam<Real>(
"cp") : 1.0),
38 _mass_flux_provider(getUserObject<
RhieChowMassFlux>(
"rhie_chow_user_object")),
39 _advected_interp_coeffs(
std::make_pair<Real, Real>(0, 0)),
45 paramError(
"cp",
"cp should not be specified for enthalpy advection");
48 paramError(
"cp",
"cp should be specified for temperature advection");
83 const auto *
const adv_bc = cast_ptr<const LinearFVAdvectionDiffusionBC *>(&bc);
84 mooseAssert(adv_bc,
"This should be a valid BC!");
86 const auto boundary_value_matrix_contrib = adv_bc->computeBoundaryValueMatrixContribution();
96 const auto *
const adv_bc = cast_ptr<const LinearFVAdvectionDiffusionBC *>(&bc);
97 mooseAssert(adv_bc,
"This should be a valid BC!");
99 const auto boundary_value_rhs_contrib = adv_bc->computeBoundaryValueRHSContribution();
registerMooseObject("NavierStokesApp", LinearFVEnergyAdvection)
An advection kernel that implements the advection term for the enthalpy in the energy equation.
virtual Real computeBoundaryMatrixContribution(const LinearFVBoundaryCondition &bc) override
std::pair< Real, Real > _advected_interp_coeffs
Container for the current advected interpolation coefficients on the face to make sure we don't compu...
Moose::FV::InterpMethod _advected_interp_method
The interpolation method to use for the advected quantity.
virtual Real computeNeighborMatrixContribution() override
AdvectedQuantityEnum _advected_quantity
The advected quantity.
const RhieChowMassFlux & _mass_flux_provider
The Rhie-Chow user object that provides us with the face velocity.
virtual Real computeElemMatrixContribution() override
virtual Real computeNeighborRightHandSideContribution() override
virtual Real computeBoundaryRHSContribution(const LinearFVBoundaryCondition &bc) override
virtual void setupFaceData(const FaceInfo *face_info) override
LinearFVEnergyAdvection(const InputParameters ¶ms)
virtual Real computeElemRightHandSideContribution() override
const Real _cp
The constant specific heat value.
Real _face_mass_flux
Container for the mass flux on the face which will be reused in the advection term's matrix and right...
AdvectedQuantityEnum
The advected quantity options.
static InputParameters validParams()
virtual void setupFaceData(const FaceInfo *face_info)
const FaceInfo * _current_face_info
static InputParameters validParams()
MooseLinearVariableFV< Real > & _var
void paramError(const std::string ¶m, Args... args) const
bool isParamValid(const std::string &name) const
User object responsible for determining the face fluxes using the Rhie-Chow interpolation in a segreg...
Real getMassFlux(const FaceInfo &fi) const
Get the face velocity times density (used in advection terms)
void checkBlocks(const VarType &var) const
Check the block consistency between the passed in var and us.
bool setInterpolationMethod(const MooseObject &obj, Moose::FV::InterpMethod &interp_method, const std::string ¶m_name)
InputParameters advectedInterpolationParameter()