FVGeometricAverage
Overview
This object performs linear interpolation from cell centroids to a face using geometric weights derived from the face location along the line connecting adjacent cell centroids. On orthogonal meshes this yields second-order accurate face values for smooth fields; on general unstructured meshes it provides a consistent baseline interpolation that is often used for interpolating material coefficients (e.g., diffusion coefficients) to faces (Moukalled et al. (2016), Jasak (1996)).
Let and be cell-centered values on the element and neighbor sides of a face. Let denote the geometric weight associated with the element-side value (based on the relative distances from the face to each centroid, measured along the centroid-to-centroid line). The interpolated face value is
This method can also be used for advected interpolation with the same weights (independent of flow direction). For advection, this corresponds to a centered/linear scheme and is not Total Variation Diminishing (TVD) in general; use a limiter-based method when boundedness near sharp gradients is required (see Limiters).
Example Syntax
Declare the interpolation method in [FVInterpolationMethods]:
[FVInterpolationMethods<<<{"href": "../../syntax/FVInterpolationMethods/index.html"}>>>]
[geom]
type = FVGeometricAverage<<<{"description": "Linear interpolation that uses the geometric weighting on FaceInfo.", "href": "FVGeometricAverage.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."}>>> = geom
[]
[](moose/test/tests/linearfvkernels/diffusion/diffusion-1d.i)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]