Real-time smoke simulation based on vorticity preserving lattice Boltzmann method

  • Jinghuan Wen
  • Huimin Ma
Original Article


It is crucial to achieve high efficiency and to preserve fine-grid details in 3D interactive smoke simulation. In this paper, we present a vorticity preserving lattice Boltzmann method (VPLBM) to simulate high-resolution motion of smoke in real time. We design the method based on lattice Boltzmann method (LBM), which is parallelism-friendly, to ensure the efficiency on parallel computing devices such as graphic processing units (GPUs). To resolve the vorticity dissipation issue in LBM, we further propose an LBM-based vorticity transport method which tracks the magnitude of vorticity during the simulation. We apply vorticity confinement according to the tracked vorticity, and therefore, our method can preserve the detailed motion of smoke. Our method is forward-iterative and contains three weakly dependent distribution functions: two for thermal LBM and one for vorticity tracking. Finally, we show an implementation of a parallel smoke simulator integrating VPLBM method on a dual-GPU platform. Using a fast ray marching method, the simulator shows realistic visual effect and achieves 157.3 frames per second on a \(64 \times 64 \times 128\) fine grid.


Smoke simulation Lattice Boltzmann method Vorticity confinement Real time 



This work is supported by National Key Basic Research Program of China (No. 2016YFB0100900) and National Natural Science Foundation of China (No. 61171113 and No. 61773231).

Supplementary material

371_2018_1514_MOESM1_ESM.mp4 (110.3 mb)
Supplementary material 1 (mp4 112911 KB)


  1. 1.
    Alim, U.R.: The lattice-Boltzmann model for the visual simulation of smoke. Ph.D. thesis, Rochester Institute of Technology (2007)Google Scholar
  2. 2.
    Alim, U.R., Entezari, A., Moller, T.: The lattice-Boltzmann method on optimal sampling lattices. IEEE Trans. Vis. Comput. Graph. 15, 630–641 (2009)CrossRefGoogle Scholar
  3. 3.
    Angelidis, A., Neyret, F.: Simulation of smoke based on vortex filament primitives. In: Proceedings of the 2005 ACM SIGGRAPH/Eurographics Symposium on Computer Animation, ACM, pp. 87–96 (2005)Google Scholar
  4. 4.
    Angelidis, A., Neyret, F., Singh, K., Nowrouzezahrai, D.: A controllable, fast and stable basis for vortex based smoke simulation. In: Proceedings of the 2006 ACM SIGGRAPH/Eurographics Symposium on Computer Animation, Eurographics Association, pp. 25–32 (2006)Google Scholar
  5. 5.
    Azevedo, V.C., Oliveira, M.M.: Efficient smoke simulation on curvilinear grids. Comput. Graph. Forum Wiley Online Libr. 32, 235–244 (2013)CrossRefGoogle Scholar
  6. 6.
    Bailey, P., Myre, J., Walsh, S.D., Lilja, D.J., Saar, M.O.: Accelerating lattice Boltzmann fluid flow simulations using graphics processors. In: International Conference on Parallel Processing, 2009. ICPP’09, IEEE, pp. 550–557 (2009)Google Scholar
  7. 7.
    Bender, J., Koschier, D.: Divergence-free smoothed particle hydrodynamics. In: Proceedings of the 14th ACM SIGGRAPH/Eurographics Symposium on Computer Animation, ACM, pp. 147–155 (2015)Google Scholar
  8. 8.
    Bernaschi, M., Fatica, M., Melchionna, S., Succi, S., Kaxiras, E.: A flexible high-performance lattice Boltzmann gpu code for the simulations of fluid flows in complex geometries. Concurr. Comput. Pract. Exp. 22, 1–14 (2010)CrossRefGoogle Scholar
  9. 9.
    Bolz, J., Farmer, I., Grinspun, E., Schröoder, P.: Sparse matrix solvers on the GPU: conjugate gradients and multigrid. In: ACM Transactions on Graphics (TOG), ACM, vol 22, pp. 917–924 (2003)Google Scholar
  10. 10.
    Brochu, T., Keeler, T., Bridson, R.: Linear-time smoke animation with vortex sheet meshes. In: Proceedings of the ACM SIGGRAPH/Eurographics Symposium on Computer Animation, Eurographics Association, pp. 87–95 (2012)Google Scholar
  11. 11.
    Chen, S., Doolen, G.D.: Lattice Boltzmann method for fluid flows. Ann. Rev. Fluid Mech. 30, 329–364 (1998)MathSciNetCrossRefGoogle Scholar
  12. 12.
    Chen, S., Chen, H., Martnez, D., Matthaeus, W.: Lattice Boltzmann model for simulation of magnetohydrodynamics. Phys. Rev. Lett. 67, 3776 (1991)CrossRefGoogle Scholar
  13. 13.
    d’Humieres, D.: Generalized lattice-Boltzmann equations. Progr. Astronaut. Aeronaut. 159, 450–450 (1994)Google Scholar
  14. 14.
    Dixit, H., Babu, V.: Simulation of high rayleigh number natural convection in a square cavity using the lattice Boltzmann method. Int. J. Heat Mass Transf. 49, 727–739 (2006)CrossRefzbMATHGoogle Scholar
  15. 15.
    Fedkiw, R., Stam, J., Jensen, H.W.: Visual simulation of smoke. In: Proceedings of the 28th Annual Conference On Computer Graphics And Interactive Techniques, ACM, pp. 15–22 (2001)Google Scholar
  16. 16.
    Feichtinger, C., Habich, J., Köstler, H., Hager, G., Rüde, U., Wellein, G.: A flexible patch-based lattice Boltzmann parallelization approach for heterogeneous GPU-CPU clusters. Parallel Comput. 37, 536–549 (2011)MathSciNetCrossRefGoogle Scholar
  17. 17.
    He, S., Lau, R.W.: Synthetic controllable turbulence using robust second vorticity confinement. Comput. Graph. Forum Wiley Online Libr. 32, 27–35 (2013)CrossRefGoogle Scholar
  18. 18.
    He, S., Wong, H.C., Pang, W.M., Wong, U.H.: Real-time smoke simulation with improved turbulence by spatial adaptive vorticity confinement. Comput. Anim. Virtual Worlds 22(2–3), 107–114 (2011)CrossRefGoogle Scholar
  19. 19.
    He, X., Chen, S., Doolen, G.D.: A novel thermal model for the lattice Boltzmann method in incompressible limit. J. Comput. Phys. 146, 282–300 (1998)MathSciNetCrossRefzbMATHGoogle Scholar
  20. 20.
    Huang, R., Keyser, J.: Automated sampling and control of gaseous simulations. Vis. Comput. 29(6–8), 751–760 (2013)CrossRefGoogle Scholar
  21. 21.
    Jami, M., Moufekkir, F., Mezrhab, A., Fontaine, J.P., Bouzidi, M.: New thermal MRT lattice Boltzmann method for simulations of convective flows. Int. J. Therm. Sci. 100, 98–107 (2016)CrossRefGoogle Scholar
  22. 22.
    Kim, B., Liu, Y., Llamas, I., Rossignac, J.R.: Flowfixer: using BFECC for fluid simulation. Tech. rep. Georgia Institute of Technology (2005)Google Scholar
  23. 23.
    Koelman, J.: A simple lattice Boltzmann scheme for Navier–Stokes fluid flow. EPL (Europhys. Lett.) 15, 603 (1991)CrossRefGoogle Scholar
  24. 24.
    Kuznik, F., Obrecht, C., Rusaouen, G., Roux, J.J.: LBM based flow simulation using GPU computing processor. Comput. Math. Appl. 59, 2380–2392 (2010)CrossRefzbMATHGoogle Scholar
  25. 25.
    Lallemand, P., Luo, L.S.: Theory of the lattice Boltzmann method: dispersion, dissipation, isotropy, Galilean invariance, and stability. Phys. Rev. E 61, 6546 (2000)MathSciNetCrossRefGoogle Scholar
  26. 26.
    Li, W., Wei, X., Kaufman, A.: Implementing lattice Boltzmann computation on graphics hardware. Vis. Comput. 19, 444–456 (2003)CrossRefGoogle Scholar
  27. 27.
    Li, X., Liu, L., Wu, W., Liu, X., Wu, E.: Dynamic BFECC characteristic mapping method for fluid simulations. Vis. Comput. 30(6–8), 787–796 (2014)CrossRefGoogle Scholar
  28. 28.
    Li, X., Duan, J., Xiao, B.: GMRES polynomial pretreatment algorithm to optimize the smoke simulation solution of the Navier–Stokes equations. In: Advanced Information Management, Communicates, Electronic and Automation Control Conference (IMCEC), 2016 IEEE, IEEE, pp 1757–1760 (2016)Google Scholar
  29. 29.
    Losasso, F., Gibou, F., Fedkiw, R.: Simulating water and smoke with an octree data structure. In: ACM Transactions on Graphics (TOG), ACM, vol 23, pp 457–462 (2004)Google Scholar
  30. 30.
    Mei, R., Shyy, W., Yu, D., Luo, L.S.: Lattice Boltzmann method for 3-D flows with curved boundary. J. Comput. Phys. 161, 680–699 (2000)CrossRefzbMATHGoogle Scholar
  31. 31.
    Meng, Z., Weixin, S., Yinling, Q., Hanqiu, S., Jing, Q., Heng, P.A.: Vortex filaments in grids for scalable, fine smoke simulation. IEEE Comput. Graph. Appl. 35, 60–68 (2015)CrossRefGoogle Scholar
  32. 32.
    Mezrhab, A., Moussaoui, M.A., Jami, M., Naji, H., Bouzidi, M.: Double MRT thermal lattice Boltzmann method for simulating convective flows. Phys. Lett. A 374, 3499–3507 (2010)CrossRefzbMATHGoogle Scholar
  33. 33.
    Mohamad, A., Kuzmin, A.: A critical evaluation of force term in lattice Boltzmann method, natural convection problem. Int. J. Heat Mass Transf. 53, 990–996 (2010)CrossRefzbMATHGoogle Scholar
  34. 34.
    Mohamad, A.A.: Lattice Boltzmann Method: Fundamentals and Engineering Applications with Computer Codes. Springer, Berlin (2011)CrossRefzbMATHGoogle Scholar
  35. 35.
    Müller, M., Charypar, D., Gross, M.: Particle-based fluid simulation for interactive applications. In: Proceedings of the 2003 ACM SIGGRAPH/Eurographics Symposium on Computer Animation, Eurographics Association, pp. 154–159 (2003)Google Scholar
  36. 36.
    Obrecht, C., Kuznik, F., Tourancheau, B., Roux, J.J.: A new approach to the lattice Boltzmann method for graphics processing units. Comput. Math. Appl. 61, 3628–3638 (2011)CrossRefzbMATHGoogle Scholar
  37. 37.
    Obrecht, C., Kuznik, F., Tourancheau, B., Roux, J.J.: Multi-GPU implementation of the lattice Boltzmann method. Comput. Math. Appl. 65, 252–261 (2013)MathSciNetCrossRefzbMATHGoogle Scholar
  38. 38.
    Pfaff, T., Thuerey, N., Gross, M.: Lagrangian vortex sheets for animating fluids. ACM Trans. Graph. (TOG) 31, 112 (2012)CrossRefGoogle Scholar
  39. 39.
    Qian, Y., d’Humières, D., Lallemand, P.: Lattice BGK models for Navier–Stokes equation. EPL (Europhys. Lett.) 17, 479 (1992)CrossRefzbMATHGoogle Scholar
  40. 40.
    Rasmussen, N., Nguyen, D.Q., Geiger, W., Fedkiw, R.: Smoke simulation for large scale phenomena. In: ACM Transactions on Graphics (TOG), ACM, vol. 22, pp. 703–707 (2003)Google Scholar
  41. 41.
    Rinaldi, P.R., Dari, E., Vénere, M.J., Clausse, A.: A lattice-Boltzmann solver for 3D fluid simulation on GPU. Simul. Modell. Pract. Theory 25, 163–171 (2012)CrossRefGoogle Scholar
  42. 42.
    Rüde, U., Thürey, N.: Free surface lattice-Boltzmann fluid simulations with and without level sets. In: Proceedings of Vision, Modeling and Visualization, p. 199 (2004)Google Scholar
  43. 43.
    Sato, S., Dobashi, Y., Yue, Y., Iwasaki, K., Nishita, T.: Incompressibility-preserving deformation for fluid flows using vector potentials. Vis. Comput. 31(6–8), 959–965 (2015)CrossRefGoogle Scholar
  44. 44.
    Schönherr, M., Kucher, K., Geier, M., Stiebler, M., Freudiger, S., Krafczyk, M.: Multi-thread implementations of the lattice Boltzmann method on non-uniform grids for CPUS and GPUS. Comput. Math. Appl. 61, 3730–3743 (2011)CrossRefGoogle Scholar
  45. 45.
    Selle, A., Rasmussen, N., Fedkiw, R.: A vortex particle method for smoke, water and explosions. In: ACM Transactions on Graphics (TOG), ACM, vol. 24, pp. 910–914 (2005)Google Scholar
  46. 46.
    Selle, A., Fedkiw, R., Kim, B., Liu, Y., Rossignac, J.: An unconditionally stable maccormack method. J. Sci. Comput. 35, 350–371 (2008)MathSciNetCrossRefzbMATHGoogle Scholar
  47. 47.
    Setaluri, R., Aanjaneya, M., Bauer, S., Sifakis, E.: SPGrid: a sparse paged grid structure applied to adaptive smoke simulation. ACM Trans. Graph. (TOG) 33, 205 (2014)CrossRefGoogle Scholar
  48. 48.
    Solenthaler, B., Pajarola, R.: Predictive-corrective incompressible SPH. In: ACM Transactions on Graphics (TOG), ACM, vol. 28, p. 40 (2009)Google Scholar
  49. 49.
    Stam, J.: Stable fluids. In: Proceedings of the 26th Annual Conference on Computer Graphics and Interactive Techniques, ACM Press/Addison-Wesley Publishing Co., pp. 121–128 (1999)Google Scholar
  50. 50.
    Steinhoff, J., Underhill, D.: Modification of the euler equations for vorticity confinement: application to the computation of interacting vortex rings. Phys. Fluids 6, 2738–2744 (1994)CrossRefzbMATHGoogle Scholar
  51. 51.
    Thürey, N., Rüde, U.: Stable free surface flows with the lattice Boltzmann method on adaptively coarsened grids. Comput. Vis. Sci. 12, 247–263 (2009)MathSciNetCrossRefzbMATHGoogle Scholar
  52. 52.
    Tölke, J.: Implementation of a lattice Boltzmann kernel using the compute unified device architecture developed by nVIDIA. Comput. Vis. Sci. 13, 29 (2010)CrossRefGoogle Scholar
  53. 53.
    Wei, X., Li, W., Mueller, K., Kaufman, A.E.: The lattice-Boltzmann method for simulating gaseous phenomena. IEEE Trans. Vis. Comput. Graph. 10, 164–176 (2004)CrossRefGoogle Scholar
  54. 54.
    Wei, X., Zhao, Y., Fan, Z., Li, W., Qiu, F., Yoakum-Stover, S., Kaufman, A.E.: Lattice-based flow field modeling. IEEE Trans. Vis. Comput. Graph. 10, 719–729 (2004)CrossRefGoogle Scholar
  55. 55.
    Wu, X., Yang, X., Yang, Y.: A novel projection technique with detail capture and shape correction for smoke simulation. Comput. Graph. Forum Wiley Online Libr. 32, 389–397 (2013)CrossRefGoogle Scholar
  56. 56.
    Xian, W., Takayuki, A.: Multi-GPU performance of incompressible flow computation by lattice Boltzmann method on GPU cluster. Parallel Comput. 37, 521–535 (2011)MathSciNetGoogle Scholar
  57. 57.
    Yoon, J.C., Kam, H.R., Hong, J.M., Kang, S.J., Kim, C.H.: Procedural synthesis using vortex particle method for fluid simulation. Comput. Graph. Forum Wiley Online Libr. 28, 1853–1859 (2009)CrossRefGoogle Scholar
  58. 58.
    Zhang, G., Zhu, D., Qiu, X., Wang, Z.: Skeleton-based control of fluid animation. Vis. Comput. 27(3), 199–210 (2011)CrossRefGoogle Scholar
  59. 59.
    Zhang, X., Bridson, R.: A PPPM fast summation method for fluids and beyond. ACM Trans. Graph. (TOG) 33, 206 (2014)zbMATHGoogle Scholar
  60. 60.
    Zhang, X., Bridson, R., Greif, C.: Restoring the missing vorticity in advection-projection fluid solvers. ACM Trans. Graph. (TOG) 34, 52 (2015)Google Scholar
  61. 61.
    Zhao-Li, G., Chu-Guang, Z., Bao-Chang, S.: Non-equilibrium extrapolation method for velocity and pressure boundary conditions in the lattice Boltzmann method. Chin. Phys. 11, 366 (2002)CrossRefGoogle Scholar
  62. 62.
    Zhu, Y., Bridson, R.: Animating sand as a fluid. In: ACM Transactions on Graphics (TOG), ACM, vol. 24, pp. 965–972 (2005)Google Scholar
  63. 63.
    Zuo, Q., Qi, Y., Qin, H.: A novel, integrated smoke simulation design method supporting local projection and guiding control over adaptive grids. Vis. Comput. 29(9), 883–892 (2013)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag GmbH Germany, part of Springer Nature 2018

Authors and Affiliations

  1. 1.Tsinghua UniversityBeijingChina

Personalised recommendations