Lattice Units Calculations, problem with density

I am a new user of Lattice Boltzmann experiencing the same problems, I guess, that you had. I read all the thread about lattice unit calculations, unfortunately, I am still not convinced about what I am doing, hence I would like to have a double check with you, that already solved this problem. I read the guide made by Jonas Latt, but I still have doubts. Here I report my example, if you can, please read, it and tell me if it is correct.
The characteristic diameter is indicated with D, with u the velocity, g the gravity acceleration, rho the density and nu the viscosity, as usual _LB in lattice Boltzmann units and _P in physical ones.

Reynolds=100, D_LB=70 [lu], D_P=300E-6 [m], u_LB=0.025 [lu/ts], u_P=0.35 [m/s], g_P=9.81[m/s^2], rho_P=1000 [kg/m^3], nu_P=1.06E-6[m^2/s].

70/100=1.75E-2 [lu^2/ts]

The last point doesn’t convince me. I am simulating an incompressible flow across a pipe, and I read that you suggest to use rho_LB=1 but it doesn’t fit with this calculations, please, can you tell me where is the error and if the procedure is correct, please?

Kind Regards Antonio


the lattice density can be chosen independently of the time and length scale. In other words: If you know dt and dx, you cannot compute rho from that. For that reason, it is the best choice to set rho = 1.


Dear Timm, thank you a lot for the information, please can you give a look to this simple points, thank you.

I am changing a code, and the guy used 0.5 as value for the density, I guess since it’s independent, doesn’t make difference between 0.5 or 1.

But, for the calculation of the mass flow rate, then I may have some problem changing the value of density, isn’t it?

Is the procedure for the conversion in lattice units adopted correct?

Is the value of tau acceptable, reading one of your paper : Shear stress in lattice boltzmann simulations it seems that tau equal to 0.9 is optimal.

And one last thing … sorry for the time I’m asking… the Mach number is equal to simply Ma=u_LB/c_s where c_s is equal to 1/Sqrt(3) and should be below 0.3, roughly.

Thank you.

Thanks for any answer.

Kind Regards


Depending on what you want to do, there are different optimum values for tau, but somewhere between 0.8 and 1 seems to be a good compromise.

The unit conversion stuff is simple once you have realized that there are three different units of interest: time, length, and density. Those quantities are independent since they have units second, meter, and kilogramm/meter^3 (instead of density, you could also take mass as the third independent quantity). The only thing you now have to do is to write the unit of the observable you are interested in as a combination of s, m, and kg/m^3, e.g.,
velocity: m/s
mass: kg/m^3 * m^3
energy: J = N * m = kg * m / s^2 * m = kg/m^3 * m^5 / s^2
and so on…
Since you know the conversion factor for time, length, and density, you can directly compute the conversion factors for any other quantity with a unit composed of s, m, and kg. I want to show this for energy. Imagine the PHYSICAL reference values are t = 10e-6 s, x = 10e-6 m, and rho = 1000 kg/m^3 where the time step, the lattice constant, and the density are all unity on the LATTICE. In this case, the energy conversion factor would be
E = rho * m^5 / t^2 = 1000 * (10e-6)^5 / (10e-6)^2 J = 10e-15 J
If you compute an energy of 10.23 on the lattice, this then corresponds to 10.23 * 10e-15 J. That’s it.


Hey Timm, saying wonderful to this explanation is nothing!

Thanks for your patience.

Just for doublechecking:

mass flow rate: m=kg/s=kg/m^3m^3/s=rhodx^3/dt

rho=1000 [kg/m^3

density=1 [mass/lu^3] (assume, is incompressible)


Conversion = kg/m^3 * m^3 / s = rho * dx^3 / dt = 1000 * (4.3E-6)^3 / (3.06E-7) kg/sts/mass = 2.6 E-7 kg/sts/mass

I hope this explanation may be useful for all the persons which are still struggling with the unit conversion!

Kind Regards



sorry to re-open the following thread, but I was trying to “validate” the equations and it doesn’t work. I would like to know if there is any error or bad assumption.

Giving u_LB=0.0992lu/ts (the highest in the simulation) which corresponds at u_P=23.1m/s, the speed of sound from LB is
cs_LB=(dx/dt)/sqrt(3)=116 lu/ts. (D3Q19)
cs_P=u_P/Mach=2000 m/s (u_P is 20m/s)

Using methane, gamma=1.305, T=273, R=[(35-27)[J/molK]/0.016[kg/mol]]=500 J/kgK
def:: cs := sqrt(gammaRt)=422 m/s

  1. apparently the speed of sound in the physical system after the conversion is far higher than the real value.

  2. The non dimensional number should be th only certain “conversion” and do not fit

I read in: first[/url], second, [url=,1878,1886#msg-1886]third that we can avoid to care about the Mach number as long as its value is lower than 0.1. Is there any paper on this or it’s common sense? Which Mach number should be taken under control: the first I calculated not the second as well?

Thank you for any observation




first: LBM does only work when the Mach number is small. Since the physics of fluids is independent of Ma when it is small, the actual value of Ma does not play a role. Of course you are right that the relevant dimensionless parameters should match the case you want to study (e.g., Reynolds or Peclet number).
For this reason, you cannot directly compare Ma from LBM with Ma in reality. It is very important that your LB Mach number is sufficiently small, elsewise LBM gives wrong results. Depending on what you want to do, a rule of thumb is that Ma < 0.1 in your simulations. But you can also go to higher values, and sometimes you need smaller values => experience!
Right now, I do not know which article could help you most. Maybe somebody else has an idea?


Timm thanks for sharing your experience and the precious suggestions.

I’ll take under control othe Mach_LB (the first I defined), and I guess I should take under control even the second Mach number, since it is physically consistent, knowing the speed of sound in the fluid and the maximum velocity, for sure it doesn’t have to overcome Mach_P=0.1 as well, otherwise the effect of compressibility are important.

These things are still an unknown, have a nice sunday :slight_smile:



Hi Mortain,

I have a problem with unit conversion, i am also beginner. my problem is whether to set the ‘Re’ first and fix the ‘dx’?. to understand better given with numbers.
U=1 m/s, rho = 1 kg/m3, D=0.1m, niu = 1.57e-05 m2/s.
Re = 6370
U_LB = 1/(300sqrt(3)) = 0.0019
D_LB =40
niu_LB = UD/Re = 0.0019
40/6370 = 0.000012
tau = 0.5+3niu_LB = 0.5+30.000012=0.500036
tau is very very close to 0.5. This not good for convergence of LBM. Shall i have to put aside the Re and go on or how to approach this problem.
where i went wrong.

Please help. Thanks

Hey winter,

I fixed the Reynolds (by experiment) and the delta x is not fixed by me but by the dimension of lattice. The velocity is set in a manner that the time step is not so high and not too small.

What I can suggest is trying to increase the dx, more nodes, it implies slower simulations but more accurate results.

My test is at Re=100, so my velocity is 0.0025lu/ts I don’t know what happens at high Re, but you should see in the forum, there are like 10 pages which speak about lattice unit conversion and some about high Re problems, there you can find any help.

I’ll try to get something in the next days and send to you.

It is advisable to have tau between 0.8 and 0.9 (there’s a paper in the free documents of this website (cannot remember the title)) . I have 0.55, of course there are advantages and disadvantages on both parts.

Have a look in this phorum, is a really prcious source of information!

Hi mortain,
Thanks for your reply. My domain is a chamber with has small inlet hence, at the inlet the Re is high. Therefore it is confusing to me how to approach.
I have seen forum, it is really good one but i am not getting what i wanted. I hope some experienced people can see my problem and give some useful information