19 params.
addClassDescription(
"Computes residual for diffusion operator for finite volume method.");
21 MooseEnum coeff_interp_method(
"average harmonic",
"harmonic");
23 "coeff_interp_method",
25 "Switch that can select face interpolation method for diffusion coefficients.");
28 params.
set<
unsigned short>(
"ghost_layers") = 2;
33 "ElementSideNeighborLayers",
45 _coeff(getFunctor<
ADReal>(
"coeff")),
67 if (!coeff_elem.value() && !coeff_neighbor.value())
77 coeff =
_coeff(face, state);
80 return -1 * coeff * dudn;
static InputParameters validParams()
virtual ADReal gradUDotNormal(const Moose::StateArg &time, const bool correct_skewness) const
Calculates and returns "grad_u dot normal" on the face to be used for diffusive terms.
Moose::ElemArg elemArg(bool correct_skewness=false) const
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.
const Moose::FV::InterpMethod _coeff_interp_method
Decides if a geometric arithmetic or harmonic average is used for the face interpolation of the diffu...
DualNumber< Real, DNDerivativeType, true > ADReal
registerMooseObject("MooseApp", FVDiffusion)
bool isInternalFace(const FaceInfo &) const
Returns true if the face is an internal face.
FVDiffusion implements a standard diffusion term:
static InputParameters validParams()
const bool _correct_skewness
Just a convenience member for using skewness correction.
static InputParameters validParams()
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
const Moose::Functor< ADReal > & _coeff
Moose::ElemArg neighborArg(bool correct_skewness=false) const
Moose::FaceArg singleSidedFaceArg(const FaceInfo *fi=nullptr, Moose::FV::LimiterType limiter_type=Moose::FV::LimiterType::CentralDifference, bool correct_skewness=false, const Moose::StateArg *state_limiter=nullptr) const
Determine the single sided face argument when evaluating a functor on a face.
InterpMethod selectInterpolationMethod(const std::string &interp_method)
MooseVariableFV< Real > & _var
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...
FVDiffusion(const InputParameters ¶ms)
static void setRMParamsDiffusion(const InputParameters &obj_params, InputParameters &rm_params, const unsigned short conditional_extended_layers)
Helper function to set the relationship manager parameters for diffusion-related kernels.
Interface function that holds the member variables and functions related to the interpolation schemes...
void interpolate(InterpMethod m, T &result, const T2 &value1, const T3 &value2, const FaceInfo &fi, const bool one_is_elem)
Provides interpolation of face values for non-advection-specific purposes (although it can/will still...
FVFluxKernel is used for calculating residual contributions from numerical fluxes from surface integr...
virtual ADReal computeQpResidual() override
This is the primary function that must be implemented for flux kernel terms.