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();
93 mooseAssert(adv_bc,
"This should be a valid BC!");
98 const auto boundary_value_rhs_contrib = adv_bc->computeBoundaryValueRHSContribution();
virtual Real computeElemMatrixContribution() override
static InputParameters validParams()
virtual Real computeNeighborRightHandSideContribution() override
User object responsible for determining the face fluxes using the Rhie-Chow interpolation in a segreg...
void paramError(const std::string ¶m, Args... args) const
AdvectedQuantityEnum _advected_quantity
The advected quantity.
An advection kernel that implements the advection term for the enthalpy in the energy equation...
std::pair< Real, Real > interpCoeffs(const InterpMethod m, const FaceInfo &fi, const bool one_is_elem, const T &face_flux=0.0)
Real getMassFlux(const FaceInfo &fi) const
Get the face velocity times density (used in advection terms)
virtual Real computeBoundaryMatrixContribution(const LinearFVBoundaryCondition &bc) override
virtual void setupFaceData(const FaceInfo *face_info)
virtual void setupFaceData(const FaceInfo *face_info) override
const RhieChowMassFlux & _mass_flux_provider
The Rhie-Chow user object that provides us with the face velocity.
FaceInfo::VarFaceNeighbors _current_face_type
Moose::FV::InterpMethod _advected_interp_method
The interpolation method to use for the advected quantity.
Real _face_mass_flux
Container for the mass flux on the face which will be reused in the advection term's matrix and right...
std::pair< Real, Real > _advected_interp_coeffs
Container for the current advected interpolation coefficients on the face to make sure we don't compu...
AdvectedQuantityEnum
The advected quantity options.
static InputParameters validParams()
const FaceInfo * _current_face_info
InputParameters advectedInterpolationParameter()
const Real _cp
The constant specific heat value.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
LinearFVEnergyAdvection(const InputParameters ¶ms)
virtual Real computeNeighborMatrixContribution() override
virtual Real computeBoundaryRHSContribution(const LinearFVBoundaryCondition &bc) override
bool isParamValid(const std::string &name) const
registerMooseObject("NavierStokesApp", LinearFVEnergyAdvection)
virtual Real computeElemRightHandSideContribution() override
bool setInterpolationMethod(const MooseObject &obj, Moose::FV::InterpMethod &interp_method, const std::string ¶m_name)