19 params.
addClassDescription(
"Computes the residual for diffusion operator across an interface for " 20 "the finite volume method.");
22 "The diffusion coefficient on the 1st subdomain");
24 "The diffusion coefficient on the 2nd subdomain");
25 MooseEnum coeff_interp_method(
"average harmonic",
"harmonic");
27 "coeff_interp_method",
29 "Switch that can select face interpolation method for diffusion coefficients.");
35 _coeff1(getFunctor<
ADReal>(
"coeff1")),
36 _coeff2(getFunctor<
ADReal>(
"coeff2"))
38 const auto & interp_method = getParam<MooseEnum>(
"coeff_interp_method");
39 if (interp_method ==
"average")
41 else if (interp_method ==
"harmonic")
53 one_over_gradient_support /= (one_over_gradient_support * one_over_gradient_support);
57 one_over_gradient_support
60 -one_over_gradient_support;
70 return -diffusivity *
_normal * gradient;
const FaceInfo * _face_info
The face that this object is currently operating on.
const MooseVariableFV< Real > & var1() const
const Elem & elem() const
1/(gc/elem+(1-gc)/neighbor)
Moose::StateArg determineState() const
Create a functor state argument that corresponds to the implicit state of this object.
registerMooseObject("MooseApp", FVDiffusionInterface)
const Point & neighborCentroid() const
static InputParameters validParams()
DualNumber< Real, DNDerivativeType, true > ADReal
ADReal getElemValue(const Elem *elem, const StateArg &state) const
Get the solution value for the provided element and seed the derivative for the corresponding dof ind...
ADReal computeQpResidual() override
static InputParameters validParams()
const Moose::Functor< ADReal > & _coeff1
const Elem * neighborPtr() const
const Point & elemCentroid() const
Returns the element centroids of the elements on the elem and neighbor sides of the face...
const Moose::Functor< ADReal > & _coeff2
Base class for creating kernels that interface physics between subdomains.
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
ADRealVectorValue _normal
The normal.
FVDiffusionInterface(const InputParameters ¶ms)
Moose::ElemArg neighborArg(bool correct_skenewss=false) const
Moose::ElemArg elemArg(bool correct_skewness=false) const
Moose::FV::InterpMethod _coeff_interp_method
Decides if a geometric arithmetic or harmonic average is used for the face interpolation of the diffu...
virtual bool elemIsOne() const
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...
const MooseVariableFV< Real > & var2() const