Abstract
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.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Alim, U.R.: The lattice-Boltzmann model for the visual simulation of smoke. Ph.D. thesis, Rochester Institute of Technology (2007)
Alim, U.R., Entezari, A., Moller, T.: The lattice-Boltzmann method on optimal sampling lattices. IEEE Trans. Vis. Comput. Graph. 15, 630–641 (2009)
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)
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)
Azevedo, V.C., Oliveira, M.M.: Efficient smoke simulation on curvilinear grids. Comput. Graph. Forum Wiley Online Libr. 32, 235–244 (2013)
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)
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)
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)
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)
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)
Chen, S., Doolen, G.D.: Lattice Boltzmann method for fluid flows. Ann. Rev. Fluid Mech. 30, 329–364 (1998)
Chen, S., Chen, H., Martnez, D., Matthaeus, W.: Lattice Boltzmann model for simulation of magnetohydrodynamics. Phys. Rev. Lett. 67, 3776 (1991)
d’Humieres, D.: Generalized lattice-Boltzmann equations. Progr. Astronaut. Aeronaut. 159, 450–450 (1994)
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)
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)
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)
He, S., Lau, R.W.: Synthetic controllable turbulence using robust second vorticity confinement. Comput. Graph. Forum Wiley Online Libr. 32, 27–35 (2013)
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)
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)
Huang, R., Keyser, J.: Automated sampling and control of gaseous simulations. Vis. Comput. 29(6–8), 751–760 (2013)
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)
Kim, B., Liu, Y., Llamas, I., Rossignac, J.R.: Flowfixer: using BFECC for fluid simulation. Tech. rep. Georgia Institute of Technology (2005)
Koelman, J.: A simple lattice Boltzmann scheme for Navier–Stokes fluid flow. EPL (Europhys. Lett.) 15, 603 (1991)
Kuznik, F., Obrecht, C., Rusaouen, G., Roux, J.J.: LBM based flow simulation using GPU computing processor. Comput. Math. Appl. 59, 2380–2392 (2010)
Lallemand, P., Luo, L.S.: Theory of the lattice Boltzmann method: dispersion, dissipation, isotropy, Galilean invariance, and stability. Phys. Rev. E 61, 6546 (2000)
Li, W., Wei, X., Kaufman, A.: Implementing lattice Boltzmann computation on graphics hardware. Vis. Comput. 19, 444–456 (2003)
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)
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)
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)
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)
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)
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)
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)
Mohamad, A.A.: Lattice Boltzmann Method: Fundamentals and Engineering Applications with Computer Codes. Springer, Berlin (2011)
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)
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)
Obrecht, C., Kuznik, F., Tourancheau, B., Roux, J.J.: Multi-GPU implementation of the lattice Boltzmann method. Comput. Math. Appl. 65, 252–261 (2013)
Pfaff, T., Thuerey, N., Gross, M.: Lagrangian vortex sheets for animating fluids. ACM Trans. Graph. (TOG) 31, 112 (2012)
Qian, Y., d’Humières, D., Lallemand, P.: Lattice BGK models for Navier–Stokes equation. EPL (Europhys. Lett.) 17, 479 (1992)
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)
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)
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)
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)
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)
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)
Selle, A., Fedkiw, R., Kim, B., Liu, Y., Rossignac, J.: An unconditionally stable maccormack method. J. Sci. Comput. 35, 350–371 (2008)
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)
Solenthaler, B., Pajarola, R.: Predictive-corrective incompressible SPH. In: ACM Transactions on Graphics (TOG), ACM, vol. 28, p. 40 (2009)
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)
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)
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)
Tölke, J.: Implementation of a lattice Boltzmann kernel using the compute unified device architecture developed by nVIDIA. Comput. Vis. Sci. 13, 29 (2010)
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)
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)
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)
Xian, W., Takayuki, A.: Multi-GPU performance of incompressible flow computation by lattice Boltzmann method on GPU cluster. Parallel Comput. 37, 521–535 (2011)
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)
Zhang, G., Zhu, D., Qiu, X., Wang, Z.: Skeleton-based control of fluid animation. Vis. Comput. 27(3), 199–210 (2011)
Zhang, X., Bridson, R.: A PPPM fast summation method for fluids and beyond. ACM Trans. Graph. (TOG) 33, 206 (2014)
Zhang, X., Bridson, R., Greif, C.: Restoring the missing vorticity in advection-projection fluid solvers. ACM Trans. Graph. (TOG) 34, 52 (2015)
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)
Zhu, Y., Bridson, R.: Animating sand as a fluid. In: ACM Transactions on Graphics (TOG), ACM, vol. 24, pp. 965–972 (2005)
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)
Acknowledgements
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).
Author information
Authors and Affiliations
Corresponding author
Electronic supplementary material
Below is the link to the electronic supplementary material.
Rights and permissions
About this article
Cite this article
Wen, J., Ma, H. Real-time smoke simulation based on vorticity preserving lattice Boltzmann method. Vis Comput 35, 1279–1292 (2019). https://doi.org/10.1007/s00371-018-1514-x
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00371-018-1514-x