FVHarmonicAverage
Overview
This object computes a weighted harmonic mean of two cell-centered values when interpolating to an internal face. Harmonic averaging is commonly used for face diffusion coefficients because it provides the appropriate effective property when two adjacent cells act like resistances in series, improving flux continuity across strong coefficient jumps (Moukalled et al. (2016), Jasak (1996)).
Let and be cell-centered values on the element and neighbor sides of a face, and let be the geometric weight associated with the element side. The weighted harmonic mean is
In typical applications is positive (e.g., conductivity or diffusivity). When can change sign, harmonic averaging is not generally appropriate; a consistent sign is needed for the mean to behave as intended.
Example Syntax
Declare the interpolation method in [FVInterpolationMethods]:
[FVInterpolationMethods<<<{"href": "../../syntax/FVInterpolationMethods/index.html"}>>>]
[harm]
type = FVHarmonicAverage<<<{"description": "Harmonic mean interpolation for finite-volume quantities using FaceInfo geometry weights.", "href": "FVHarmonicAverage.html"}>>>
[]
[](moose/test/tests/linearfvkernels/diffusion/diffusion-1d.i)Use it for a coefficient functor via "coeff_interp_method":
[LinearFVKernels<<<{"href": "../../syntax/LinearFVKernels/index.html"}>>>]
[diffusion]
type = LinearFVDiffusion<<<{"description": "Represents the matrix and right hand side contributions of a diffusion term in a partial differential equation.", "href": "../linearfvkernels/LinearFVDiffusion.html"}>>>
variable<<<{"description": "The name of the variable whose linear system this object contributes to"}>>> = u
diffusion_coeff<<<{"description": "The diffusion coefficient. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = coeff_pos_func
coeff_interp_method<<<{"description": "Optional finite volume interpolation method used to compute a face-centered diffusion coefficient. If omitted, the functor is evaluated directly on the face."}>>> = harm
[]
[](moose/test/tests/linearfvkernels/diffusion/diffusion-1d.i)Useful Links
See FVInterpolationMethod for the base class and LinearFVDiffusion for typical usage.
Input Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:No
Description:Set the enabled status of the MooseObject.
References
- Hrvoje Jasak.
Error analysis and estimation for the finite volume method with applications to fluid flows.
PhD thesis, Imperial College London (University of London), 1996.[BibTeX]
- Fadl Moukalled, L Mangani, Marwan Darwish, and others.
The finite volume method in computational fluid dynamics.
Volume 6.
Springer, 2016.[BibTeX]