FVM Literature Review
Finite Volume Method (FVM)
The finite volume method (FVM) is a method for representing and evaluating partial differential equations in the form of algebraic equations. In the finite volume method, volume integrals in a partial differential equation that contain a divergence term are converted to surface integrals, using the divergence theorem.
These terms are then evaluated as fluxes at the surfaces of each finite volume. Because the flux entering a given volume is identical to that leaving the adjacent volume, these methods are conservative. Another advantage of the finite volume method is that it is easily formulated to allow for unstructured meshes.
The method is used in many computational fluid dynamics packages. "Finite volume" refers to the small volume surrounding each node point on a mesh.
Difference Between Finite Volume Method (FVM) and Finite Difference Method (FDM)
Finite difference methods approximate derivatives using nodal values, or finite element methods, which create local approximations of a solution using local data and construct a global approximation by stitching them together.
In contrast, a finite volume method evaluates exact expressions for the average value of the solution over some volume and uses this data to construct approximations of the solution within cells.
Interpolation Schemes
1. Upwind Interpolation Scheme
The Upwind interpolation (UDS) is equivalent to using a backward or forward difference approximation depending upon the direction of the flow. UDS for approximating the value of a variable at east face of a control volume is given by,
`f_e = f_P if (v*n)_e >0`
`f_e = f_E if (v*n)_e <0`
2. Linear Interpolation Scheme
Linear Interpolation is equivalent to the central difference formula of a first order derivative. Hence, this scheme is also termed as Central Difference Scheme (CDS). This scheme is second order accurate and may produce oscillatory results. CDS for a control volume at location ‘e’ of a cartesian grid is approximated by,
`f_e=f_Elambda_e + f_P(1-lambda_e),`
`lambda_e = (x_e-x_P)/(x_E-x_P)`
3. Quadratic Upwind Interpolation (QUICK)
The quadratic upstream interpolation for convective kinetics (QUICK) scheme of Leonard (1979) uses a three-point upstream-weighted quadratic interpolation for cell face values. This scheme is third order accurate but prone to oscillations. The QUICK interpolation on a uniform cartesian grid is given by,
`phi_e = 6/8 phi_U+3/8 phi_D-1/8 phi_(UU)`,
where,
D is downstream node
U is upstream node
UU is second upstream node
Flux Limiters
Flux limiters are used in high resolution schemes – numerical schemes used to solve problems in fluid dynamics, described by partial differential equations (PDEs).
They are used in high resolution schemes to avoid the spurious oscillations (wiggles) that would otherwise occur with high order spatial discretization schemes due to shocks, discontinuities, or sharp changes in the solution domain.
Flux limiters are also referred to as slope limiters because they both have the same mathematical form, and both have the effect of limiting the solution gradient near shocks or discontinuities.
In general, the term flux limiter is used when the limiter acts on system fluxes, and slope limiter is used when the limiter acts on system states (like pressure, velocity etc).
Consider the 1D semi-descrete scheme below,
`(du_i)/(dt) + 1/(Deltax_i) [F(u_(i+1/2)) -F(u_(i-1/2)) ] =0;`
where, `F(u_(i+1/2)) and F(u_(i-1/2))`
represent edge fluxes for the ith cell. If these edge fluxes can be represented by low- and high-resolution schemes, then a flux limiter can switch between these schemes depending upon the gradients close to the particular cell, as follows,
`F(u_(i+1/2)) = f_(i+1/2)^(low) -phi(r_i)(f_(i+1/2)^(low)-f_(i+1/2)^(high))`
`F(u_(i-1/2)) = f_(i-1/2)^(low) -phi(r_(i-1))(f_(i+1/2)^(low)-f_(i-1/2)^(high))`
where ,
`f^(low)`= low resolution flux
`f^(high)`= high resolution flux
`phi(r)`= flux limiter function
and 'r' represents the ratio of successive gradients on the solution mesh, i.e.,
`r_i = (u_i-u_(i-1))/(u_(i+1)-u_i)`
The limiter function is constrained to be greater than or equal to zero,i.e., `phi(r) >=0`.
When the limiter is equal to zero (sharp gradient, opposite slopes or zero gradient), the flux is represented by a low-resolution scheme. Similarly, when the limiter is equal to 1 (smooth solution), it is represented by a high-resolution scheme.
The various limiters have differing switching characteristics and are selected according to the particular problem and solution scheme. No particular limiter has been found to work well for all problems, and a particular choice is usually made on a trial-and-error basis.