22 "advection term for a passive scalar.");
24 "rhie_chow_user_object",
25 "The rhie-chow user-object which is used to determine the face velocity.");
27 params.addParam<MooseFunctorName>(
"u_slip",
"The slip-velocity in the x direction.");
28 params.addParam<MooseFunctorName>(
"v_slip",
"The slip-velocity in the y direction.");
29 params.addParam<MooseFunctorName>(
"w_slip",
"The slip-velocity in the z direction.");
35 _mass_flux_provider(getUserObject<
RhieChowMassFlux>(
"rhie_chow_user_object")),
36 _advected_interp_coeffs(
std::make_pair<
Real,
Real>(0, 0)),
37 _volumetric_face_flux(0.0),
38 _u_slip(isParamValid(
"u_slip") ? &getFunctor<
ADReal>(
"u_slip") : nullptr),
39 _v_slip(isParamValid(
"v_slip") ? &getFunctor<
ADReal>(
"v_slip") : nullptr),
40 _w_slip(isParamValid(
"w_slip") ? &getFunctor<
ADReal>(
"w_slip") : nullptr),
41 _add_slip_model(isParamValid(
"u_slip") ? true : false)
74 mooseAssert(adv_bc,
"This should be a valid BC!");
76 const auto boundary_value_matrix_contrib = adv_bc->computeBoundaryValueMatrixContribution();
88 mooseAssert(adv_bc,
"This should be a valid BC!");
93 const auto boundary_value_rhs_contrib = adv_bc->computeBoundaryValueRHSContribution();
122 velocity_slip_vel_vec(0) = (*_u_slip)(face_arg, state).
value();
124 velocity_slip_vel_vec(1) = (*_v_slip)(face_arg, state).
value();
126 velocity_slip_vel_vec(2) = (*_w_slip)(face_arg, state).
value();
LinearFVScalarAdvection(const InputParameters ¶ms)
User object responsible for determining the face fluxes using the Rhie-Chow interpolation in a segreg...
std::pair< Real, Real > interpCoeffs(const InterpMethod m, const FaceInfo &fi, const bool one_is_elem, const T &face_flux=0.0)
Moose::StateArg determineState() const
virtual Real computeNeighborMatrixContribution() override
virtual void setupFaceData(const FaceInfo *face_info)
static InputParameters validParams()
FaceInfo::VarFaceNeighbors _current_face_type
virtual void setupFaceData(const FaceInfo *face_info) override
static InputParameters validParams()
const FaceInfo * _current_face_info
const Elem * neighborPtr() const
InputParameters advectedInterpolationParameter()
virtual Real computeElemRightHandSideContribution() override
Real getVolumetricFaceFlux(const FaceInfo &fi) const
Get the volumetric face flux (used in advection terms)
const RhieChowMassFlux & _mass_flux_provider
The Rhie-Chow user object that provides us with the face velocity.
virtual const OutputTools< Real >::VariableValue & value()
const Point & normal() const
virtual Real computeElemMatrixContribution() override
registerMooseObject("NavierStokesApp", LinearFVScalarAdvection)
std::pair< Real, Real > _advected_interp_coeffs
Container for the current advected interpolation coefficients on the face to make sure we don't compu...
Real _volumetric_face_flux
Container for the velocity on the face which will be reused in the advection term's matrix and right ...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual Real computeNeighborRightHandSideContribution() override
virtual Real computeBoundaryRHSContribution(const LinearFVBoundaryCondition &bc) override
An advection kernel that implements the advection term for the passive scalar transport equation...
const Moose::Functor< ADReal > *const _v_slip
slip velocity in direction y
virtual Real computeBoundaryMatrixContribution(const LinearFVBoundaryCondition &bc) override
const Moose::Functor< ADReal > *const _w_slip
slip velocity in direction z
Moose::FV::InterpMethod _advected_interp_method
The interpolation method to use for the advected quantity.
const Moose::Functor< ADReal > *const _u_slip
slip velocity in direction x
bool setInterpolationMethod(const MooseObject &obj, Moose::FV::InterpMethod &interp_method, const std::string ¶m_name)