20 "Computes residual for anisotropic diffusion operator for finite volume method.");
22 "The diagonal coefficients of a diffusion tensor.");
23 MooseEnum coeff_interp_method(
"average harmonic",
"harmonic");
25 "coeff_interp_method",
27 "Switch that can select face interpolation method for diffusion coefficients.");
28 params.
set<
unsigned short>(
"ghost_layers") = 2;
33 "ElementSideNeighborLayers",
71 coeff =
_coeff(face, state);
76 r +=
_normal(i) * coeff(i) * grad_T(i);
FVAnisotropicDiffusion implements a standard diffusion term but with a diagonal tensor diffusion coef...
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...
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.
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()
bool isInternalFace(const FaceInfo &) const
Returns true if the face is an internal face.
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< ADRealVectorValue > & _coeff
Functor returning the diagonal coefficients of a diffusion tensor.
Moose::ElemArg neighborArg(bool correct_skewness=false) const
IntRange< T > make_range(T beg, T end)
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.
virtual ADReal computeQpResidual() override
This is the primary function that must be implemented for flux kernel terms.
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...
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.
registerMooseObject("MooseApp", FVAnisotropicDiffusion)
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...
FVAnisotropicDiffusion(const InputParameters ¶ms)
const ADTemplateVariableGradient< OutputType > & adGradSln() const override
AD grad solution getter.