23 "Harmonic mean interpolation for finite-volume quantities using FaceInfo geometry weights.");
33 const Real elem_value,
34 const Real neighbor_value)
const 37 "Harmonic interpolation is intended for internal faces with a neighbor.");
40 (elem_value >= 0 && neighbor_value >= 0) || (elem_value <= 0 && neighbor_value <= 0),
41 "Harmonic interpolation requires the element and neighbor values to have the same sign.");
44 const Real one_minus_gc = 1.0 - gc;
55 const Real denom = gc / safe(elem_value) + one_minus_gc / safe(neighbor_value);
static InputParameters validParams()
MetaPhysicL::DualNumber< V, D, asd > abs(const MetaPhysicL::DualNumber< V, D, asd > &a)
int eps(unsigned int i, unsigned int j)
2D version
Registered base class for linear FV interpolation objects.
FVHarmonicAverage(const InputParameters ¶ms)
registerMooseObject("MooseApp", FVHarmonicAverage)
auto max(const L &left, const R &right)
This data structure is used to store geometric and variable related metadata about each cell face in ...
const Elem * neighborPtr() const
Real value(unsigned n, unsigned alpha, unsigned beta, Real x)
Real gC() const
Return the geometric weighting factor.
static InputParameters validParams()
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Real interpolate(const FaceInfo &face, Real elem_value, Real neighbor_value) const override
Face interpolation operation for this method.
auto min(const L &left, const R &right)
Harmonic-mean interpolation using the geometric weighting stored on FaceInfo.