What is the stability condition of LBM? (for CFD methods it's CFL condition)

Hi everyone,

I just would like to know simply what is the stability condition for the LBM. For finate elements or finate volume we have the CFL condition that we should verify.


Also a newbie to LBM and interested in the same question. Can any of the big guys reply to that? Thanks!

I worked on a project and found that the stability of LBM depends mainly on two parameters: the relaxation time and the discrete velocity. Concerning the relaxation time, it must be between 0.5 and 5 to ensure the positivity of the kinematic viscosity (proof using the relation between relaxation time and kinematic viscosity). Concerning discrete velocity, it should be inferior to 0.2 because LBM works in a low Mach number range (you can find the proof in the article of Dr.Jonas Latts on “the choice of units in LBM”).

Hi dhouha,

I am aware of the fact that stability depends on tau and u. I was more interested in how does one check for instability. I have a code, written by somebody else, which checks for stability by looking at the values of the equilibrium function. However the way this is implemented is very peculiar:

for i = 1:9
     if (feq(i) =! feq(i))
        instab = 1;

The above loop is part of the routine that updates the equilibrium distributions.
I asked a programmer about this and they said the above inequality cannot occur, UNLESS the code is worked on by a number of threads. In my opinion, this then turns into a programmatic and not LBM issue.

Hallo PeterH,

the comparison feq!=feq is only true if feq has the value NaN. See e.g.

stackoverflow thread treating NaN recognition

Another possibilty is to check for very large absolute values of the distributions.



Back to the original question, the speed of sound in lattice units would be limiting velocity for LBM. But I would recommend Umax=0.1 to ensure stability.