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

  1. 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]
  2. Fadl Moukalled, L Mangani, Marwan Darwish, and others. The finite volume method in computational fluid dynamics. Volume 6. Springer, 2016.[BibTeX]