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 temperature.");
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");
79 mooseAssert(adv_bc,
"This should be a valid BC!");
81 const auto boundary_value_matrix_contrib = adv_bc->computeBoundaryValueMatrixContribution();
84 const auto factor = (
_current_face_type == FaceInfo::VarFaceNeighbors::ELEM) ? 1.0 : -1.0;
93 mooseAssert(adv_bc,
"This should be a valid BC!");
96 const auto factor = (
_current_face_type == FaceInfo::VarFaceNeighbors::ELEM ? 1.0 : -1.0);
98 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()
FaceInfo::VarFaceNeighbors _current_face_type
virtual void setupFaceData(const FaceInfo *face_info)
const FaceInfo * _current_face_info
static InputParameters validParams()
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)
bool setInterpolationMethod(const MooseObject &obj, Moose::FV::InterpMethod &interp_method, const std::string ¶m_name)
InputParameters advectedInterpolationParameter()