I have a pretty basic question about Lattice-Boltzmann methods. I heard that this is a meshless simulation method. How do you account for obstacles and boundaries in a Lattice-Boltzmann code. Does it work like a $\Delta x$, $\Delta y$ grid ?


1 Answer 1


The Lattice Boltzmann is not a meshless method. Actually, when looking at it, it is a finite difference method on an homogenous structured Cartesian grid (dx = dy = dz).

However, the variables solved for are not the primary variables (U and P), but are pseudo-populations $f_i$ where $i\in [1,n_p]$ and where $n_p$ is the number of population in the lattices.

The lattices in the Lattice Boltzmann method are structures like this one : D2Q9 Lattice for Navier-Stokes

These populations undergo advection (streaming) and collisions (using a collision operator like the BGK operator) and "move from node to node". This allows them to reproduce the pseudo-incompressible Navier-Stokes equations.

How are boundary conditions specified? Well there are numerous ways. One of the simple way to apply no-slip Dirichlet Boundary condition is the Bounce-Back rule. This rule makes it so that the populations literally bounce back on the obstacle, leading to a 0 velocity at the position of the interface. There are numerous ways to specify the boundary conditions (extrapolation methods, immersed boundary methods, on-lattice and off-lattice boundary conditions, etc.), but you always need to specify them.

Overall, if you wish to get a very good overview of LBM, I lead you to the Wikipedia article on the matter: https://en.wikipedia.org/wiki/Lattice_Boltzmann_methods

Or to the book by Guo: http://www.worldscientific.com/worldscibooks/10.1142/8806

  • $\begingroup$ So if I want to simulate an airfoil for instance I have to mesh it with a $\Delta x$, $\Delta y$ grid by removing the points that are inside the airfoil and imposing for instance this bounce back rule on the boundaries ? Are they special meshing tool to generate the grid ? $\endgroup$ Oct 28, 2016 at 12:55
  • $\begingroup$ Generally the software (for instance, the opensource LBM programs like PALABOS and OpenLB) automatically generate the grid. What you need to do is to flag which lattice (or nodes) are within the rigid body. Those close to this boundary then need to apply bounce back rules in order to apply the BC. Some programs support CAD import (via STL for instance) that will do the flagging automatically based on the description of your geometry. It is really like a finite difference mesh, the grid being automatically generated by the program. Its different from FEM or FVM. $\endgroup$
    – BlaB
    Oct 28, 2016 at 14:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.