21 "advection term for a passive scalar.");
23 "rhie_chow_user_object",
24 "The rhie-chow user-object which is used to determine the face velocity.");
26 "advected_interp_method_name",
27 "Name of the FVInterpolationMethod to use for the advected quantity.");
28 params.
addParam<MooseFunctorName>(
"u_slip",
"The slip-velocity in the x direction.");
29 params.
addParam<MooseFunctorName>(
"v_slip",
"The slip-velocity in the y direction.");
30 params.
addParam<MooseFunctorName>(
"w_slip",
"The slip-velocity in the z direction.");
37 _mass_flux_provider(getUserObject<
RhieChowMassFlux>(
"rhie_chow_user_object")),
38 _adv_interp_method(getFVAdvectedInterpolationMethod(
39 getParam<InterpolationMethodName>(
"advected_interp_method_name"))),
40 _volumetric_face_flux(0.0),
41 _u_slip(isParamValid(
"u_slip") ? &getFunctor<
ADReal>(
"u_slip") : nullptr),
42 _v_slip(isParamValid(
"v_slip") ? &getFunctor<
ADReal>(
"v_slip") : nullptr),
43 _w_slip(isParamValid(
"w_slip") ? &getFunctor<
ADReal>(
"w_slip") : nullptr),
44 _add_slip_model(isParamValid(
"u_slip") ? true : false)
80 mooseAssert(adv_bc,
"This should be a valid BC!");
82 const auto boundary_value_matrix_contrib = adv_bc->computeBoundaryValueMatrixContribution();
94 mooseAssert(adv_bc,
"This should be a valid BC!");
99 const auto boundary_value_rhs_contrib = adv_bc->computeBoundaryValueRHSContribution();
128 velocity_slip_vel_vec(0) = (*_u_slip)(face_arg, state).
value();
130 velocity_slip_vel_vec(1) = (*_v_slip)(face_arg, state).
value();
132 velocity_slip_vel_vec(2) = (*_w_slip)(face_arg, state).
value();
LinearFVScalarAdvection(const InputParameters ¶ms)
const FVAdvectedInterpolationMethod & _adv_interp_method
The interpolation method to use for the advected quantity.
User object responsible for determining the face fluxes using the Rhie-Chow interpolation in a segreg...
VectorValue< Real > _elem_grad_storage
Reusable gradient storage used when advected interpolation requires gradients.
Moose::StateArg determineState() const
const ElemInfo * neighborInfo() const
virtual Real computeNeighborMatrixContribution() override
MooseLinearVariableFV< Real > & _var
virtual void setupFaceData(const FaceInfo *face_info)
const ElemInfo * elemInfo() const
virtual Moose::FV::GradientLimiterType gradientLimiter() const
static InputParameters validParams()
FaceInfo::VarFaceNeighbors _current_face_type
std::pair< Real, Real > weights_matrix
VectorValue< Real > gradSln(const ElemInfo &elem_info, const StateArg &state) const
virtual void setupFaceData(const FaceInfo *face_info) override
static InputParameters validParams()
const FaceInfo * _current_face_info
const Elem * neighborPtr() const
virtual AdvectedSystemContribution advectedInterpolate(const FaceInfo &face, Real elem_value, Real neighbor_value, const VectorValue< Real > *elem_grad, const VectorValue< Real > *neighbor_grad, Real mass_flux) const=0
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)
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 bool needsGradients() const
virtual Real computeNeighborRightHandSideContribution() override
virtual Real computeBoundaryRHSContribution(const LinearFVBoundaryCondition &bc) override
VectorValue< Real > _neighbor_grad_storage
Real getElemValue(const ElemInfo &elem_info, const StateArg &state) const
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
FVAdvectedInterpolationMethod::AdvectedSystemContribution _adv_interp_result
Cached weights/correction for the current face (refreshed in setupFaceData)
void computeCellGradients()
const Moose::Functor< ADReal > *const _w_slip
slip velocity in direction z
const Moose::Functor< ADReal > *const _u_slip
slip velocity in direction x