English

XLB: A differentiable massively parallel lattice Boltzmann library in Python

Computational Physics 2024-04-03 v3 Computational Engineering, Finance, and Science Machine Learning

Abstract

The lattice Boltzmann method (LBM) has emerged as a prominent technique for solving fluid dynamics problems due to its algorithmic potential for computational scalability. We introduce XLB library, a Python-based differentiable LBM library based on the JAX platform. The architecture of XLB is predicated upon ensuring accessibility, extensibility, and computational performance, enabling scaling effectively across CPU, TPU, multi-GPU, and distributed multi-GPU or TPU systems. The library can be readily augmented with novel boundary conditions, collision models, or multi-physics simulation capabilities. XLB's differentiability and data structure is compatible with the extensive JAX-based machine learning ecosystem, enabling it to address physics-based machine learning, optimization, and inverse problems. XLB has been successfully scaled to handle simulations with billions of cells, achieving giga-scale lattice updates per second. XLB is released under the permissive Apache-2.0 license and is available on GitHub at https://github.com/Autodesk/XLB.

Cite

@article{arxiv.2311.16080,
  title  = {XLB: A differentiable massively parallel lattice Boltzmann library in Python},
  author = {Mohammadmehdi Ataei and Hesam Salehipour},
  journal= {arXiv preprint arXiv:2311.16080},
  year   = {2024}
}
R2 v1 2026-06-28T13:33:04.043Z