lbmpy: Automatic code generation for efficient parallel lattice Boltzmann methods

Bauer M, Köstler H, Rüde U (2021)

Publication Type: Journal article

Publication year: 2021


Book Volume: 49

Article Number: 101269

DOI: 10.1016/j.jocs.2020.101269


Lattice Boltzmann methods are a popular mesoscopic alternative to classical computational fluid dynamics based on the macroscopic equations of continuum mechanics. Many variants of lattice Boltzmann methods have been developed that vary in complexity, accuracy, and computational cost. Extensions are available to simulate multi-phase, multi-component, turbulent, and non-Newtonian flows. In this work we present lbmpy, a code generation package that supports a wide variety of different lattice Boltzmann methods. Additionally, lbmpy provides a generic development environment for new schemes. A high-level domain-specific language allows the user to formulate, extend and test various lattice Boltzmann methods. In all cases, the lattice Boltzmann method can be specified in symbolic form. Transformations that operate on this symbolic representation yield highly efficient compute kernels. This is achieved by automatically parallelizing the methods, and by various application-specific automatized steps that optimize the resulting code. This pipeline of transformations can be applied to a wide range of lattice Boltzmann variants, including single- and two-relaxation-time schemes, multi-relaxation-time methods, as well as the more advanced cumulant methods, and entropically stabilized methods. lbmpy can be integrated into high-performance computing frameworks to enable massively parallel, distributed simulations. This is demonstrated using the WALBERLA multiphysics package to conduct scaling experiments on the SuperMUC-NG supercomputing system on up to 147 456 compute cores.

Authors with CRIS profile

How to cite


Bauer, M., Köstler, H., & Rüde, U. (2021). lbmpy: Automatic code generation for efficient parallel lattice Boltzmann methods. Journal of Computational Science, 49.


Bauer, Martin, Harald Köstler, and Ulrich Rüde. "lbmpy: Automatic code generation for efficient parallel lattice Boltzmann methods." Journal of Computational Science 49 (2021).

BibTeX: Download