18 params.
addClassDescription(
"Computes the residual of advective term using finite volume method.");
22 "An optional parameter for specifying an advected quantity from a material property. If this " 23 "is not specified, then the advected quantity will simply be the variable that this object " 26 MooseEnum advected_interp_method(
"average upwind skewness-corrected",
"upwind");
28 "advected_interp_method",
29 advected_interp_method,
30 "The interpolation to use for the advected quantity. Options are " 31 "'upwind', 'average', and 'skewness-corrected' with the default being 'upwind'.");
38 _adv_quant(getFunctor<
ADReal>(isParamValid(
"advected_quantity") ?
"advected_quantity" 43 const auto & advected_interp_method = getParam<MooseEnum>(
"advected_interp_method");
44 if (advected_interp_method ==
"average")
46 else if (advected_interp_method ==
"skewness-corrected")
48 else if (advected_interp_method ==
"upwind")
52 static_cast<std::string>(advected_interp_method));
61 LimiterType::CentralDifference,
65 const auto adv_quant_interface =
72 return _normal * v * adv_quant_interface;
std::string name(const ElemQuality q)
static InputParameters validParams()
FVMatAdvection(const InputParameters ¶ms)
const Moose::Functor< ADRealVectorValue > & _vel
const FaceInfo * _face_info
This is holds meta-data for geometric information relevant to the current face including elem+neighbo...
Moose::StateArg determineState() const
Create a functor state argument that corresponds to the implicit state of this object.
registerADMooseObject("MooseApp", FVMatAdvection)
RealVectorValue _normal
This is the outward unit normal vector for the face the kernel is currently operating on...
DualNumber< Real, DNDerivativeType, true > ADReal
static InputParameters validParams()
LimiterType limiterType(InterpMethod interp_method)
Return the limiter type associated with the supplied interpolation method.
virtual ADReal computeQpResidual() override
This is the primary function that must be implemented for flux kernel terms.
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
const Moose::Functor< ADReal > & _adv_quant
The advected quantity.
(gc*elem+(1-gc)*neighbor)+gradient*(rf-rf')
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Moose::FV::InterpMethod _advected_interp_method
The interpolation method to use for the advected quantity.
FVFluxKernel is used for calculating residual contributions from numerical fluxes from surface integr...
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.