FULL GPU Implementation of Lattice-Boltzmann Methods with Immersed Boundary Conditions for Fast Fluid Simulations


  • G Boroni
  • J Dottori
  • P Rinaldi




Lattice Boltzmann Method (LBM) has shown great potential in fluid simulations, but performance issues and difficulties to manage complex boundary conditions have hindered a wider application. The upcoming of Graphic Processing Units (GPU) Computing offered a possible solution for the performance issue, and methods like the Immersed Boundary (IB) algorithm proved to be a flexible solution to boundaries. Unfortunately, the implicit IB algorithm makes the LBM implementation in GPU a non-trivial task. This work presents a fully parallel GPU implementation of LBM in combination with IB. The fluid-boundary interaction is implemented via GPU kernels, using execution configurations and data structures specifically designed to accelerate each code execution. Simulations were validated against experimental and analytical data showing good agreement and improving the computational time. Substantial reductions of calculation rates were achieved, lowering down the required time to execute the same model in a CPU to about two magnitude orders.


NVIDIA. NVIDIA CUDA C Programing Guide Version 4.0: http://developer.download.nvidia.com/compute/DevZone/docs/html/C/doc/CUDA_C_Programming_Guide.pdf. 2010. https://doi.org/10.2172/1532687

Mark WR, Glanville RS, Akeley K, Kilgard MJ. Cg: a system for programming graphics hardware in a c-like language. ACM Trans. Graph. 2003; 22(3): 896–907. https://doi.org/10.1145/882262.882362

NVIDIA. NVIDIA CUDA Home Page:http://developer.nvidia.com/category/zone/cuda-zone; 2007. https://doi.org/10.2172/1532687

PGI. PGI CUDA Fortran Compiler, The Portland Group: http://www.pgroup.com/resources/cudafortran.htm; 2011.

Zhao Y. Lattice Boltzmann based PDE Solver on the GPU. Vis. Comput. 2007; 24(5): 323-333. https://doi.org/10.1007/s00371-007-0191-y

Tölke J. Implementation of a lattice Boltzmann kernel using the compute unified device architecture developed by NVIDIA. Computing and Visualization in Science. 2010; 13(1): 29–39. https://doi.org/10.1007/s00791-008-0120-2

Rinaldi PR, Dari EA, Vénere MJ, Clausse A. A Lattice-Boltzmann solver for 3D fluid simulation on GPU. Simulation Modelling Practice and Theory. 2012; 25: 163-171. https://doi.org/10.1016/j.simpat.2012.03.004

Boroni G, Dottori J, Dalponte D, Rinaldi P, Clausse A. An improved Immersed-Boundary algorithm for fluid-solid interaction in Lattice-Boltzmann simulations. Latin American Applied Research, accepted 2013.

Valero-Lara P, Pinelli A, Prieto-Matias Manuel. Accelerating Solid-Fluid Interaction using Lattice-Boltzmann and Immersed Boundary Coupled Simulations on Heterogeneous Platforms. Procedia Computer Science. 2014; 29: 50-61. https://doi.org/10.1016/j.procs.2014.05.005

C. S. Peskin. The immersed boundary method. Acta Numerica, 2002; 11, 479-517. https://doi.org/10.1017/s0962492902000077

Chen S, Doolen GD (1998). Lattice Boltzmann Methods for Fluid Flows, Annu. Rev. Fluid Mech. 30: 329-364. https://doi.org/10.1146/annurev.fluid.30.1.329

Sukop M, Thorne D (2006). Lattice Boltzmann Modeling, 1st Edition. Springer.

Qian YH, d’Humie`res D, Lallemand P (1992). Lattice BGK models for Navier–Stokes equation. Europhys. Lett. 17: 479-484. https://doi.org/10.1209/0295-5075/17/6/001

Mohamad AA, Kuzmin A (2010). A critical evaluation of force term in lattice Boltzmann method, natural convection problem. Internation Journal of Heat and Mass Transfer 53(5-6): 990-996. https://doi.org/10.1016/j.ijheatmasstransfer.2009.11.014

Feng ZG, Michaelides EE (2004). The immersed boundary-lattice Boltzmann method for solving fluid–particles interaction problems. J Comp Phy 195: 602–28. https://doi.org/10.1016/j.jcp.2003.10.013

Cheng F, Zhang H (2010). Immersed boundary method and lattice Boltzmann method coupled FSI simulation of mitral leaflet flow. Computers & Fluid 39: 871-881. https://doi.org/10.1016/j.compfluid.2010.01.003

Peskin CS (2002). The immersed boundary method. Acta Numer 11: 479–517.

Kuznik F, Obrecht C, Rusaouën G, Roux JJ (2009). LBM based flow simulation using GPU computing processor. Comput. Math. Appl. 59(7): 2380-2392. https://doi.org/10.1016/j.camwa.2009.08.052

Lammers P, Küster U (2007). Recent Performance Results of the Lattice Boltzmann Method. High Performance Computing on Vector Systems 2006 Part 2, Springer, Stuttgart, 51-59. https://doi.org/10.1007/978-3-540-68743-6_3

Kaminsky A (2015). Big CPU, Big Data. Rochester Institute of Technology.

Fast Fluid-structure Interaction Using Lattice Boltzmann and Immersed Boundary Methods, M. Mawson, P. V. Lara, J. Favier, A. Pinelli, A. Revell

Accelerating Solid-Fluid Interaction using Lattice-Boltzmann and Immersed Boundary Coupled. Simulations on Heterogeneous Platforms. Pedro Valero-Lara1, Alfredo Pinelli2, and Manuel Prieto-Matias3. https://doi.org/10.1016/j.procs.2014.05.005

Von Karman T (1964). Aerodynamics, 1st Edition. McGraw-Hill.



How to Cite

Boroni, G., Dottori, J. and Rinaldi, P. (2017) “FULL GPU Implementation of Lattice-Boltzmann Methods with Immersed Boundary Conditions for Fast Fluid Simulations”, The International Journal of Multiphysics, 11(1), pp. 1-14. doi: 10.21152/1750-9548.11.1.1.