21 "Residual contribution from advection operator for finite volume method.");
22 params.
addRequiredParam<RealVectorValue>(
"velocity",
"Constant advection velocity");
28 "ElementSideNeighborLayers",
38 :
FVFluxKernel(params), _velocity(getParam<RealVectorValue>(
"velocity"))
40 const bool need_more_ghosting =
42 if (need_more_ghosting &&
_tid == 0)
46 getCheckedPointerParam<FEProblemBase *>(
"_fe_problem_base")
47 ->setErrorOnJacobianNonzeroReallocation(
false);
51 const MooseEnum not_available_with_steady(
"sou min_mod vanLeer quick venkatakrishnan");
52 const std::string chosen_scheme =
53 static_cast<std::string
>(getParam<MooseEnum>(
"advected_interp_method"));
54 if (not_available_with_steady.
find(chosen_scheme) != not_available_with_steady.
items().end())
56 "The given advected interpolation cannot be used with steady-state runs!");
DualNumber< Real, DNDerivativeType, true > ADReal
registerADMooseObject("MooseApp", FVAdvection)
static InputParameters validParams()
virtual ADReal computeQpResidual() override
This is the primary function that must be implemented for flux kernel terms.
FVAdvection(const InputParameters ¶ms)
Moose::FV::InterpMethod _advected_interp_method
The interpolation method to use for the advected quantity.
const RealVectorValue _velocity
FVFluxKernel is used for calculating residual contributions from numerical fluxes from surface integr...
static InputParameters validParams()
RealVectorValue _normal
This is the outward unit normal vector for the face the kernel is currently operating on.
MooseVariableFV< Real > & _var
const FaceInfo * _face_info
This is holds meta-data for geometric information relevant to the current face including elem+neighbo...
static void setRMParamsAdvection(const InputParameters &obj_params, InputParameters &rm_params, const unsigned short conditional_extended_layers)
Helper function to set the relationship manager parameters for advection-related kernels.
Moose::FaceArg makeFace(const FaceInfo &fi, const Moose::FV::LimiterType limiter_type, const bool elem_is_upwind, const bool correct_skewness=false, const Moose::StateArg *state_limiter=nullptr) const
Create a functor face argument from provided component arguments.
Executioner * getExecutioner() const
Retrieve the Executioner for this App.
void paramError(const std::string ¶m, Args... args) const
Emits an error prefixed with the file and line number of the given param (from the input file) along ...
std::set< MooseEnumItem >::const_iterator find(const MooseEnumItem &other) const
Locate an item.
const std::set< MooseEnumItem > & items() const
Return the complete set of available flags.
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
MooseApp & _app
The MOOSE application this is associated with.
THREAD_ID _tid
The thread ID for this kernel.
SubProblem & _subproblem
Reference to this kernel's SubProblem.
Steady executioners usually only call "solve()" on the NonlinearSystem once.
virtual bool isTransient() const =0
Moose::StateArg determineState() const
Create a functor state argument that corresponds to the implicit state of this object.
LimiterType limiterType(InterpMethod interp_method)
Return the limiter type associated with the supplied interpolation method.
bool setInterpolationMethod(const MooseObject &obj, Moose::FV::InterpMethod &interp_method, const std::string ¶m_name)
Sets one interpolation method.
InputParameters advectedInterpolationParameter()
State argument for evaluating functors.