Why we don't use lattice Boltzmann for general-purpose CFD
Lattice Boltzmann is elegant and effective inside the right operating envelope. Here is why that envelope is narrower than the production CFD problems we need to solve.

Lattice Boltzmann methods are not categorically inaccurate, impractical, or obsolete. For low-Mach, nearly isothermal flow on Cartesian grids they can be concise, highly parallel, and remarkably effective. The narrower claim in this article is operational: LBM is not our default discretization for a general-purpose production CFD stack that must span three-dimensional turbulence, compressibility and shocks, curved industrial geometry, aggressive local refinement, energy transport, reacting or multiphase physics, and varied hardware budgets.[1][3]
What the browser sandbox actually solves
The live browser sandbox uses a two-dimensional, nine-velocity lattice (D2Q9) and a two-relaxation-time collision operator (TRT). It is a deliberately small, inspectable solver for interactive intuition: it is not the production CFD stack, and its design choices should not be read as a statement that every flow problem is best expressed on D2Q9.[3][4]
In its familiar collision-and-stream form, each population is relaxed locally and then moved exactly to a neighboring lattice node. Written first with a single relaxation rate to expose the basic mechanism, the update is[1]
The second-order isothermal equilibrium, D2Q9 quadrature weights, and discrete velocities are[1][2]
Macroscopic density and momentum are moments of those populations. The standard isothermal lattice equation of state then ties pressure to density:[1]
The low-Mach envelope is a real design constraint
This pressure relation is the source of both elegance and constraint. Density fluctuations carry pressure, so an isothermal weakly compressible calculation controls compressibility error by keeping the lattice Mach number small. At a target Reynolds number, velocity, resolution, and relaxation cannot all be selected independently.[1][2]
For fixed resolution, raising Reynolds number while preserving low Mach pushes the viscous relaxation toward its limiting value. Better collision models improve stability and Galilean behavior, but they do not erase the asymptotic assumptions behind the recovered equations. Compressible flow with shocks therefore needs additional kinetic models, larger velocity sets, filtering or shock treatment; it is no longer the small regular algorithm that made D2Q9 attractive.[2][3][11]
Why TRT helps, and what it does not solve
TRT decomposes each opposite population pair into even and odd parts and relaxes them separately. The extra rate lets boundary error be tuned more independently from viscosity, which is useful in an interactive channel-flow sandbox.[4][3]
TRT is a collision-model improvement, not a universal geometry or physics layer. Curved no-slip surfaces still require stair-step bounce-back, interpolation, immersed boundaries, or cut-cell-like constructions, each with accuracy and robustness trade-offs. On a complex CAD model, boundary treatment can dominate the nominal simplicity of the bulk update.[5][4]
Cartesian regularity becomes expensive away from uniform domains
A uniform Cartesian lattice is excellent when most cells are useful. Industrial domains often have thin boundary layers, small gaps, jets, wakes, and large inactive volumes. Local mesh refinement is possible in LBM, but coarse-fine population transfer and time coupling add algorithmic machinery and measurable interpolation error. Sparse storage can avoid solid or empty regions, yet its indirection changes the memory-access pattern that made the dense lattice fast.[6][7][10]
The baseline storage cost is also explicit. With b bytes per population, q velocities, and N fluid nodes, one population field occupies bqN bytes; a straightforward out-of-place streaming implementation needs roughly twice that before macroscopic fields, geometry, halos, turbulence variables, or thermal and species distributions are counted.[7]
That bandwidth-heavy scaling may be a good trade on a large GPU with a dense domain. It can be the wrong trade across memory-limited accelerators, CPUs with complex sparse geometry, or deployments where the same solver must scale from a workstation to a cluster. Three-dimensional turbulence further multiplies cell count and adds wall modeling or subgrid closures; LBM does not remove those modeling requirements.[7][3]
Energy, reactions, and interfaces are additional models
The standard D2Q9 equilibrium recovers an isothermal momentum system, not a general energy equation. Thermal flow commonly introduces another distribution or a coupled finite-volume treatment, along with corrections needed to recover the intended macroscopic energy dynamics.[8]
Reacting flow adds species, stiff chemistry, heat release, and broad property variation. Lattice Boltzmann combustion formulations exist, but they require additional kinetic populations, thermochemical coupling, and application-specific validation rather than following automatically from the isothermal D2Q9 solver.[12]
Multiphase LBM is a substantial and productive research field, including pseudopotential models and pore-scale simulations. Those successes do not make surface tension, density ratio, wetting, thermodynamic consistency, and parasitic-current control automatic. Each application still needs a validated physical model and a resolution strategy.[9][10][13]
Our selection rule
We choose the numerical representation around the production problem, not around the prettiest inner loop. LBM remains a strong option when the flow is low-Mach and isothermal, the lattice resolves the geometry economically, and throughput on regular parallel hardware is decisive. It is especially valuable for education, rapid interactive experiments, and selected pore-scale or multiphase workloads.[1][9][10]
For a general-purpose platform, however, we need a production stack that can change discretization, mesh topology, conservation treatment, linear algebra, and physics coupling without fighting a fixed velocity lattice. That is why the browser sandbox proudly uses D2Q9 and TRT while the production CFD stack is built around a broader set of methods. The distinction is about operating envelope and engineering risk, not a verdict against lattice Boltzmann methods.
References
- X. Shan and X. He (1998). Discretization of the Velocity Space in the Solution of the Boltzmann Equation. Physical Review Letters 80, 65–68.
- P. J. Dellar (2014). Lattice Boltzmann algorithms without cubic defects in Galilean invariance on standard lattices. Journal of Computational Physics 259, 270–283.
- C. Coreixas, G. Wissocq, B. Chopard, and J. Latt (2020). Impact of collision models on the physical properties and the stability of lattice Boltzmann methods. Philosophical Transactions of the Royal Society A 378, 20190397.
- D. d’Humières and I. Ginzburg (2009). Viscosity independent numerical errors for Lattice Boltzmann models: From recurrence equations to “magic” collision numbers. Computers & Mathematics with Applications 58, 823–840.
- I. Ginzburg and D. d’Humières (2003). Multireflection boundary conditions for lattice Boltzmann models. Physical Review E 68, 066614.
- S. M. Guzik, T. H. Weisgraber, P. Colella, and B. J. Alder (2014). Interpolation methods and the accuracy of lattice-Boltzmann mesh refinement. Journal of Computational Physics 259, 461–487.
- T. Tomczak and R. G. Szafran (2019). A new GPU implementation for lattice-Boltzmann simulations on sparse geometries. Computer Physics Communications 235, 258–278.
- Q. Li, K. H. Luo, Y. L. He, Y. J. Gao, and W. Q. Tao (2012). Coupling lattice Boltzmann model for simulation of thermal flows on standard lattices. Physical Review E 85, 016710.
- X. Shan and H. Chen (1993). Lattice Boltzmann model for simulating flows with multiple phases and components. Physical Review E 47, 1815–1819.
- E. S. Boek and M. Venturoli (2010). Lattice-Boltzmann studies of fluid flow in porous media with realistic rock geometries. Computers & Mathematics with Applications 59, 2305–2314.
- N. Frapolli, S. S. Chikatamarla, and I. V. Karlin (2016). Entropic lattice Boltzmann model for gas dynamics: Theory, boundary conditions, and implementation. Physical Review E 93, 063302.
- S. A. Hosseini, P. Boivin, D. Thévenin, and I. Karlin (2024). Lattice Boltzmann methods for combustion applications. Progress in Energy and Combustion Science 102, 101140.
- L. Chen, Q. Kang, Y. Mu, Y. He, and W. Tao (2014). A critical review of the pseudopotential multiphase lattice Boltzmann model: Methods and applications. International Journal of Heat and Mass Transfer 76, 210–236.