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",
47 Moose::FV::selectInterpolationMethod(getParam<
MooseEnum>(
"coeff_interp_method")))
71 coeff =
_coeff(face, state);
76 r +=
_normal(i) * coeff(i) * grad_T(i);
DualNumber< Real, DNDerivativeType, true > ADReal
registerMooseObject("MooseApp", FVAnisotropicDiffusion)
FVAnisotropicDiffusion implements a standard diffusion term but with a diagonal tensor diffusion coef...
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 InputParameters validParams()
FVAnisotropicDiffusion(const InputParameters ¶ms)
virtual ADReal computeQpResidual() override
This is the primary function that must be implemented for flux kernel terms.
const Moose::Functor< ADRealVectorValue > & _coeff
Functor returning the diagonal coefficients of a diffusion tensor.
Interface function that holds the member variables and functions related to the interpolation schemes...
const bool _correct_skewness
Just a convenience member for using skewness correction.
static InputParameters validParams()
FVFluxKernel is used for calculating residual contributions from numerical fluxes from surface integr...
Moose::ElemArg neighborArg(bool correct_skewness=false) const
Moose::ElemArg elemArg(bool correct_skewness=false) const
static InputParameters validParams()
RealVectorValue _normal
This is the outward unit normal vector for the face the kernel is currently operating on.
MooseVariableFV< Real > & _var
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.
const FaceInfo * _face_info
This is holds meta-data for geometric information relevant to the current face including elem+neighbo...
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.
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
const ADTemplateVariableGradient< OutputType > & adGradSln() const override
AD grad solution getter.
bool isInternalFace(const FaceInfo &) const
Returns true if the face is an internal face.
Moose::StateArg determineState() const
Create a functor state argument that corresponds to the implicit state of this object.
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.