Flux limiter

From HandWiki

Flux limiters are used in high resolution schemes – numerical schemes used to solve problems in science and engineering, particularly fluid dynamics, described by partial differential equations (PDEs). They are used in high resolution schemes, such as the MUSCL scheme, 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. Use of flux limiters, together with an appropriate high resolution scheme, make the solutions total variation diminishing (TVD).

Note that 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.).

How they work

The main idea behind the construction of flux limiter schemes is to limit the spatial derivatives to realistic values – for scientific and engineering problems this usually means physically realisable and meaningful values. They are used in high resolution schemes for solving problems described by PDEs and only come into operation when sharp wave fronts are present. For smoothly changing waves, the flux limiters do not operate and the spatial derivatives can be represented by higher order approximations without introducing spurious oscillations. Consider the 1D semi-discrete scheme below,

[math]\displaystyle{ \frac{d u_i}{d t} + \frac{1}{\Delta x_i} \left[ F \left( u_{i + {1}/{2}} \right) - F \left( u_{i - {1}/{2}} \right) \right] = 0, }[/math]

where, [math]\displaystyle{ F \left( u_{i + {1}/{2}} \right) }[/math] and [math]\displaystyle{ F \left( u_{i - 1/2} \right) }[/math] represent edge fluxes for the i-th 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,

[math]\displaystyle{ F \left( u_{i + 1/2} \right) = f^\text{low}_{i + 1/2} - \phi\left( r_i \right) \left( f^\text{low}_{i + 1/2} - f^\text{high}_{i + 1/2} \right) , }[/math] [math]\displaystyle{ F \left( u_{i - 1/2} \right) = f^\text{low}_{i - 1/2} - \phi\left( r_{i-1} \right) \left( f^\text{low}_{i - 1/2} - f^\text{high}_{i - 1/2} \right) , }[/math]

where

  • [math]\displaystyle{ f^\text{low} }[/math] is the low resolution flux,
  • [math]\displaystyle{ f^\text{high} }[/math] is the high resolution flux,
  • [math]\displaystyle{ \phi\ (r) }[/math] is the flux limiter function, and
  • [math]\displaystyle{ r }[/math] represents the ratio of successive gradients on the solution mesh, i.e., [math]\displaystyle{ r_{i} = \frac{u_{i} - u_{i-1}}{u_{i+1} - u_{i}} . }[/math]

The limiter function is constrained to be greater than or equal to zero, i.e., [math]\displaystyle{ \phi\ (r) \ge 0 }[/math]. Therefore, 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.

Limiter functions

The following are common forms of flux/slope limiter function, [math]\displaystyle{ \phi (r) }[/math]:

  • CHARM [not 2nd order TVD] [1] [math]\displaystyle{ \phi_{cm}(r) = \begin{cases} \frac{r\left(3r+1\right)}{\left(r+1\right)^{2}}, & r\gt 0, & \lim_{r\to\infty}\phi_{cm}(r)=3 \\ 0 \quad \quad\, , & r\le 0 \end{cases} }[/math]
  • HCUS [not 2nd order TVD] [2] [math]\displaystyle{ \phi_{hc}(r) = \frac{ 1.5 \left(r+\left| r \right| \right)}{ \left(r+2 \right)} ; \quad \lim_{r \to \infty}\phi_{hc}(r) = 3. }[/math]
  • HQUICK [not 2nd order TVD] [2] [math]\displaystyle{ \phi_{hq}(r) = \frac{2 \left(r + \left|r \right| \right)}{ \left(r+3 \right)} ; \quad \lim_{r \to \infty}\phi_{hq}(r) = 4. }[/math]
  • Koren[3] – third-order accurate for sufficiently smooth data[4] [math]\displaystyle{ \phi_{kn}(r) = \max \left[ 0, \min \left(2 r, \min \left( \dfrac{(1 + 2 r)}{3}, 2 \right) \right) \right]; \quad \lim_{r \to \infty}\phi_{kn}(r) = 2. }[/math]
  • minmod – symmetric [5] [math]\displaystyle{ \phi_{mm} (r) = \max \left[ 0 , \min \left( 1 , r \right) \right] ; \quad \lim_{r \to \infty} \phi_{mm}(r) = 1. }[/math]
  • monotonized central (MC) – symmetric [6] [math]\displaystyle{ \phi_{mc} (r) = \max \left[ 0 , \min \left( 2 r, 0.5 (1+r), 2 \right) \right]  ; \quad \lim_{r \to \infty}\phi_{mc}(r) = 2. }[/math]
  • Osher [7] [math]\displaystyle{ \phi_{os} (r) = \max \left[ 0 , \min \left( r, \beta \right) \right], \quad \left(1 \leq \beta \leq 2 \right) ; \quad \lim_{r \to \infty}\phi_{os} (r) = \beta. }[/math]
  • ospre – symmetric [2] [math]\displaystyle{ \phi_{op} (r) = \frac{1.5 \left(r^2 + r \right) }{\left(r^2 + r +1 \right)}  ; \quad \lim_{r \to \infty}\phi_{op} (r) = 1.5 \, . }[/math]
  • smart [not 2nd order TVD] [8] [math]\displaystyle{ \phi_{sm}(r) = \max \left[ 0, \min \left(2 r, \left(0.25 + 0.75 r \right), 4 \right) \right] ; \quad \lim_{r \to \infty}\phi_{sm}(r) = 4. }[/math]
  • superbee – symmetric [5] [math]\displaystyle{ \phi_{sb} (r) = \max \left[ 0, \min \left( 2 r , 1 \right), \min \left( r, 2 \right) \right]  ; \quad \lim_{r \to \infty}\phi_{sb} (r) = 2. }[/math]
  • Sweby – symmetric [9] [math]\displaystyle{ \phi_{sw} (r) = \max \left[ 0 , \min \left( \beta r, 1 \right), \min \left( r, \beta \right) \right], \quad \left(1 \leq \beta \leq 2 \right) ; \quad \lim_{r \to \infty}\phi_{sw} (r) = \beta. }[/math]
  • UMIST – symmetric [10] [math]\displaystyle{ \phi_{um}(r) = \max \left[ 0, \min \left(2 r, \left(0.25 + 0.75 r \right), \left(0.75 + 0.25 r \right), 2 \right) \right]  ; \quad \lim_{r \to \infty}\phi_{um}(r) = 2. }[/math]
  • van Albada 1 – symmetric [11] [math]\displaystyle{ \phi_{va1} (r) = \frac{r^2 + r}{r^2 + 1 }  ; \quad \lim_{r \to \infty}\phi_{va1} (r) = 1. }[/math]
  • van Albada 2 – alternative form [not 2nd order TVD] used on high spatial order schemes [12] [math]\displaystyle{ \phi_{va2} (r) = \frac{2 r}{r^2 + 1} ; \quad \lim_{r \to \infty}\phi_{va2} (r) = 0. }[/math]
  • van Leer – symmetric [13] [math]\displaystyle{ \phi_{vl} (r) = \frac{r + \left| r \right| }{1 + \left| r \right| }  ; \quad \lim_{r \to \infty}\phi_{vl} (r) = 2. }[/math]
  • All the above limiters indicated as being symmetric, exhibit the following symmetry property, [math]\displaystyle{ \frac{ \phi \left( r \right)}{r} = \phi \left( \frac{1}{r} \right) . }[/math]

This is a desirable property as it ensures that the limiting actions for forward and backward gradients operate in the same way.

Admissible limiter region for second-order TVD schemes.

Unless indicated to the contrary, the above limiter functions are second order TVD. This means that they are designed such that they pass through a certain region of the solution, known as the TVD region, in order to guarantee stability of the scheme. Second-order, TVD limiters satisfy at least the following criteria:

  • [math]\displaystyle{ r \le \phi(r) \le 2r, \left( 0 \le r \le 1 \right) \ }[/math],
  • [math]\displaystyle{ 1 \le \phi(r) \le r, \left( 1 \le r \le 2 \right) \ }[/math],
  • [math]\displaystyle{ 1 \le \phi(r) \le 2, \left( r \gt 2 \right) \ }[/math],
  • [math]\displaystyle{ \phi(1) = 1 \ }[/math],

The admissible limiter region for second-order TVD schemes is shown in the Sweby Diagram opposite,[9] and plots showing limiter functions overlaid onto the TVD region are shown below. In this image, plots for the Osher and Sweby limiters have been generated using [math]\displaystyle{ \beta = 1.5 }[/math].

Limiter functions overlaid onto second-order TVD region.

Generalised minmod limiter

An additional limiter that has an interesting form is the van-Leer's one-parameter family of minmod limiters.[14][15][16] It is defined as follows [math]\displaystyle{ \phi_{mg}(u,\theta) = \max\left(0,\min\left(\theta r,\frac{1+r}{2},\theta\right)\right),\quad\theta\in\left[1,2\right]. }[/math]

Note: [math]\displaystyle{ \phi_{mg} }[/math] is most dissipative for [math]\displaystyle{ \theta=1, }[/math] when it reduces to [math]\displaystyle{ \phi_{mm}, }[/math] and is least dissipative for [math]\displaystyle{ \theta = 2 }[/math].

See also

Notes

  1. Zhou, G. (1995), Numerical simulations of physical discontinuities in single and multi-fluid flows for arbitrary Mach numbers, Goteborg, Sweden: Chalmers Univ. of Tech. 
  2. 2.0 2.1 2.2 Waterson, N.P.; Deconinck, H. (1995), A unified approach to the design and application of bounded higher-order convection schemes 
  3. Koren, B. (1993), "A robust upwind discretisation method for advection, diffusion and source terms", in Vreugdenhil, C.B.; Koren, B., Numerical Methods for Advection–Diffusion Problems, Braunschweig: Vieweg, p. 117, ISBN 3-528-07645-3 
  4. Kuzmin, D. (2006), "On the design of general-purpose flux limiters for implicit FEM with a consistent mass matrix. I. Scalar convection", Journal of Computational Physics 219 (2): 513–531, doi:10.1016/j.jcp.2006.03.034, Bibcode2006JCoPh.219..513K 
  5. 5.0 5.1 Roe, P.L. (1986), "Characteristic-based schemes for the Euler equations", Annu. Rev. Fluid Mech. 18: 337–365, doi:10.1146/annurev.fl.18.010186.002005, Bibcode1986AnRFM..18..337R 
  6. van Leer, B. (1977), "Towards the ultimate conservative difference scheme III. Upstream-centered finite-difference schemes for ideal compressible flow", J. Comput. Phys. 23 (3): 263–275, doi:10.1016/0021-9991(77)90094-8, Bibcode1977JCoPh..23..263V 
  7. Chakravarthy, S.R.; Osher, S. (1983), "High resolution applications of the Osher upwind scheme for the Euler equations", Proc. AIAA 6th Computational Fluid Dynamics Conference, pp. 363–373, AIAA Paper 83-1943, http://www.aiaa.org/content.cfm?pageid=406&gTable=mtgpaper&gID=55466, retrieved 2008-03-31 
  8. Gaskell, P.H.; Lau, A.K.C. (1988), "Curvature-compensated convective transport: SMART, a new boundedness-preserving transport algorithm", Int. J. Num. Meth. Fluids 8 (6): 617–641, doi:10.1002/fld.1650080602, Bibcode1988IJNMF...8..617G 
  9. 9.0 9.1 Sweby, P.K. (1984), "High resolution schemes using flux-limiters for hyperbolic conservation laws", SIAM J. Numer. Anal. 21 (5): 995–1011, doi:10.1137/0721062, Bibcode1984SJNA...21..995S 
  10. Lien, F.S.; Leschziner, M.A. (1994), "Upstream monotonic interpolation for scalar transport with application to complex turbulent flows", Int. J. Num. Meth. Fluids 19 (6): 527–548, doi:10.1002/fld.1650190606, Bibcode1994IJNMF..19..527L 
  11. Van Albada, G.D.; Van Leer, B.; Roberts, W.W. (1982), "A comparative study of computational methods in cosmic gas dynamics", Astronomy and Astrophysics 108 (1): 76–84, Bibcode1982A&A...108...76V 
  12. Kermani, M.J.; Gerber, A.G.; Stockie, J.M. (2003), "Thermodynamically Based Moisture Prediction Using Roe’s Scheme", 4th Conference of Iranian AeroSpace Society, Amir Kabir University of Technology, Tehran, Iran, January 27–29 
  13. van Leer, B. (1974), "Towards the ultimate conservative difference scheme II. Monotonicity and conservation combined in a second order scheme", J. Comput. Phys. 14 (4): 361–370, doi:10.1016/0021-9991(74)90019-9, Bibcode1974JCoPh..14..361V 
  14. Van Leer, B. (1979), "Towards the ultimate conservative difference scheme V. A second order sequel to Godunov's method", J. Comput. Phys. 32 (1): 101–136, doi:10.1016/0021-9991(79)90145-1, Bibcode1979JCoPh..32..101V 
  15. Harten, A.; Osher, S. (1987), "Uniformly high-order accurate nonoscillatory schemes. I", SIAM J. Numer. Anal. 24 (2): 279–309, doi:10.1137/0724022, Bibcode1987SJNA...24..279H, http://www.dtic.mil/get-tr-doc/pdf?AD=ADA158177 
  16. Kurganov, A.; Tadmor, E. (2000), Solution of Two-Dimensional Riemann problems for Gas Dynamics without Riemann Problem Solvers, Report by Dept. of Mathematics, Univ. Michigan . Available on-line at: CiteSeer.

References

  • Hirsch, C. (1990), Numerical Computation of Internal and External Flows, Volume 2: Computational Methods for Inviscid and Viscous Flows, Wiley, ISBN 978-0-471-92452-4 
  • Leonard, B.P.; Leschziner, M.A.; McGuirk, J. (1978), "The QUICK algorithm: a uniformly 3rd-order finite-difference method for highly convective flows", Proc. 1st Conf. on Numerical Methods in Laminar & Turbulent Flow, Swansea, p. 807 

Further reading