21 bool correct_skewness)
24 return fv_var.
adGradSln(face_info, time, correct_skewness) * face_info.
normal();
38 const auto sub_count =
39 subs.count(fi.
elem().subdomain_id()) + subs.count(fi.
neighbor().subdomain_id());
44 mooseError(
"We should not be calling isExtrapolatedBoundaryFace on a functor that doesn't " 45 "live on either of the face information's neighboring elements");
56 mooseError(
"There should be no other sub_count options");
63 return MooseEnum(
"average upwind sou min_mod vanLeer quick venkatakrishnan skewness-corrected",
71 params.addParam<
MooseEnum>(
"advected_interp_method",
73 "The interpolation to use for the advected quantity. Options are " 74 "'upwind', 'average', 'sou' (for second-order upwind), 'min_mod', " 75 "'vanLeer', 'quick', 'venkatakrishnan', and " 76 "'skewness-corrected' with the default being 'upwind'.");
83 if (interp_method ==
"average")
85 else if (interp_method ==
"harmonic")
87 else if (interp_method ==
"skewness-corrected")
89 else if (interp_method ==
"upwind")
91 else if (interp_method ==
"rc")
93 else if (interp_method ==
"vanLeer")
95 else if (interp_method ==
"min_mod")
97 else if (interp_method ==
"sou")
99 else if (interp_method ==
"quick")
101 else if (interp_method ==
"venkatakrishnan")
106 " is not currently an option in Moose::FV::selectInterpolationMethod");
112 const std::string & param_name)
114 bool need_more_ghosting =
false;
122 need_more_ghosting =
true;
124 return need_more_ghosting;
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
const Elem & elem() const
1/(gc/elem+(1-gc)/neighbor)
DualNumber< Real, DNDerivativeType, true > ADReal
MooseEnum interpolationMethods()
Returns an enum with all the currently supported interpolation methods and the current default for FV...
This data structure is used to store geometric and variable related metadata about each cell face in ...
const Elem * neighborPtr() const
InputParameters advectedInterpolationParameter()
Every object that can be built by the factory should be derived from this class.
const Elem & neighbor() const
const T & getParam(const std::string &name) const
Retrieve a parameter for the object.
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
const Point & normal() const
Returns the unit normal vector for the face oriented outward from the face's elem element...
bool onBoundary(const SubdomainRestrictable &obj, const FaceInfo &fi)
Return whether the supplied face is on a boundary of the object's execution.
(gc*elem+(1-gc)*neighbor)+gradient*(rf-rf')
ADReal gradUDotNormal(const FaceInfo &face_info, const MooseVariableFV< Real > &fv_var, const Moose::StateArg &time, bool correct_skewness=false)
Calculates and returns "grad_u dot normal" on the face to be used for diffusive terms.
InterpMethod selectInterpolationMethod(const std::string &interp_method)
State argument for evaluating functors.
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...
InterpMethod
This codifies a set of available ways to interpolate with elem+neighbor solution information to calcu...
bool setInterpolationMethod(const MooseObject &obj, Moose::FV::InterpMethod &interp_method, const std::string ¶m_name)
Sets one interpolation method.
const ADTemplateVariableGradient< OutputType > & adGradSln() const override
AD grad solution getter.