Repository navigation
The Model
This solver is built on the Lattice Boltzmann Method (LBM) for solving the Navier–Stokes equations — a mesoscopic approach to fluid simulation, sitting between the two more familiar paradigms:
| Scale | Approach | Example |
|---|---|---|
| Microscopic | Directly simulate individual particles | Molecular dynamics |
| Mesoscopic | Evolve particle distribution functions on a lattice | Lattice Boltzmann Method |
| Macroscopic | Solve continuum PDEs directly | Traditional Navier–Stokes solvers (FVM/FEM) |
The best-known LBM formulation is the D2Q9 model with a BGK collision operator — a 2D lattice with 9 discrete velocities. It's weakly compressible and reliable up to roughly Mach 0.3. In that model, the conserved moments (mass, momentum) are recovered by approximating the equilibrium populations via a truncated Hermite polynomial expansion of the Maxwell–Boltzmann distribution.
This solver instead uses an extended formulation:
- D2Q49 lattice — a much larger velocity stencil than D2Q9, giving the model the extra degrees of freedom needed to represent higher-order moments accurately.
- Directly enforced equilibrium moments — rather than approximating equilibria through Hermite expansion, the equilibrium populations are obtained by solving a constrained entropy-minimization problem, guaranteeing exact recovery of the target moments rather than a truncated approximation.
- Entropic collision/stabilization — collision is guided by an H-theorem-consistent relaxation, which enforces a discrete analogue of the second law of thermodynamics and gives the scheme unconditional numerical stability even far from equilibrium. Together, the larger stencil and exact (entropy-derived) equilibria push the model's valid operating range well beyond D2Q9-BGK, into transonic and sonic flows.
The extended stencil and entropic collision step come at a real computational cost — but the LBM's core update (stream + collide) is embarrassingly parallel, since both steps are purely local to each lattice node. That locality maps extremely well onto GPU architectures, and this implementation leverages that to reach roughly 1 billion lattice updates per second (1000 MLUPS).
- Present work, described in more detail and compared to existing industry standards (AIAA, 2026)
- Present work (Alternate Link) (AIAA, 2026)
Foundations of LBM / D2Q9-BGK
- Qian, d'Humières & Lallemand, "Lattice BGK Models for Navier-Stokes Equation," Europhysics Letters 17, 479 (1992)
- Chen & Doolen, "Lattice Boltzmann Method for Fluid Flows," Annual Review of Fluid Mechanics 30, 329 (1998)
- Succi, The Lattice Boltzmann Equation for Fluid Dynamics and Beyond, Oxford University Press (2001) Entropic stabilization
- Karlin, Ferrante & Öttinger, "Perfect Entropy Functions of the Lattice Boltzmann Method," Europhys. Lett. 47, 182 (1999)
- Boghosian, Yepez, Coveney & Wagner, "Entropic Lattice Boltzmann Methods," Proc. R. Soc. A 457, 717 (2001)
- Ansumali & Karlin, "Stabilization of the Lattice Boltzmann Method by the H Theorem: A Numerical Test," Phys. Rev. E 62, 7999 (2000) D2Q49 / entropic compressible models
- Frapolli, Chikatamarla & Karlin, "Entropic Lattice Boltzmann Model for Compressible Flows," Phys. Rev. E 92, 061301(R) (2015)
- Frapolli, Chikatamarla & Karlin, "Entropic Lattice Boltzmann Model for Gas Dynamics: Theory, Boundary Conditions, and Implementation," Phys. Rev. E 93, 063302 (2016)
- Frapolli, Chikatamarla & Karlin, "Theory, Analysis, and Applications of the Entropic Lattice Boltzmann Model for Compressible Flows," Entropy 22, 370 (2020) — includes a visualization of the D2Q49 stencil GPU-accelerated LBM
- Bray et al., "gLBM: A GPU Enabled Lattice Boltzmann Method Library," Journal of Open Source Software 7(70), 2555 (2022)
shockFLOW Wiki
Getting Started
Simulation Setup
Exporting Results
Logging & Troubleshooting
Links