LB Units ... again...

Dear All,

please, note that I do not want to push all your patience to the limit, by being another one posting concerning “LB Units”!

Presently I’m struggling with some unit conversion issue, and I’m well aware of the excellent “Unit Howto” of jlatt, and some other sources in papers, books. To be honest: I don’t get it concerning the following…

Assume a simple 3D flow, oriented in z-direction, within a rectangular domain with obstacles. I use a MRT LB, and besides qualitative flow visualization (which already looks quite good), I need to evaluate the pressure loss in the channel.

First I define some reference values:

reference length d_0 = 1.000E-03 [ m ]
reference time   t_0 = 1.000E-04 [ s ]
reference mass   m_0 = 1.200E-09 [ kg ]

this gives…

reference density rho_0 = 1.200E+00 [ kg / m³ ]
reference kinematic viscosity nu_0 =  1.000E-02 [ m² / s ]

The physical domain is defined by

length in x-direction = .001 [ m ]
length in y-direction = .001 [ m ]
length in z-direction = .001 [ m ]
density = 1.2 [ kg / m³ ]
Re number = 1 000. [ - ]
kinematic viscosity = .00001 [ m² / s ]
characteristic length = .001 [ m ]
characteristic time = .0001 [ s ]
characteristic velocity = 10. [ m / s ]

This leads me to the following non-dimensional system…

length in x-direction = 1. [ - ]
length in y-direction = 1. [ - ]
length in z-direction = 1. [ - ]
density = 1. [ - ]
Re number = 1 000. [ - ]
kinematic viscosity = .001 [ - ]
characteristic length = 1. [ - ]
characteristic time =  1. [ - ]
characteristic velocity = 1. [ - ]

and using

spatial resolution Nx = 5.000E+01 [ - ]
temporal resolution Nt = 1.000E+03 [ - ]

I start with the discret system (lb units)

lattice spacing in x-direction = .02 [ m ]
lattice spacing in y-direction = .02 [ m ]
lattice spacing in z-direction = .02 [ m ]
rho = 1. [ - ]
Re-number = 1 000. [ - ]
kinematic viscosity = .0025 [ - ]
cell spacing d_x = .02 [ - ]
time step d_t = .001 [ - ]
lb velocity u_lb = .05 [ - ]

The computation converges well, and at z-const. planes at channel inlet and outlet I got two average densities

density inlet	1.099E+00   	[ - ]
density outlet	1.084E+00   	[ - ]

Well, now I’m struggling with getting meaningful physical values (in terms of Pascal) from these numbers. Referring to threads like Example of Units… and other sources, I tried the following…

using...   p_phys = p_lb * d_0^2 / t_0^2 * rho_0 with p_lb = cs^2 * rho

pressure inlet = 44. [ Pa ]
pressure outlet = 43.4 [ Pa ]

Currently I assume there is some mistake (seems to be a to small pressure difference in-out compared to NaSt computation and analytical estimate). I’m not sure if my scaling and unit conversion is done well/correct, and if I get it right with the conversion of pressure.

Please, any help and discussion is appreciated!

Thanks in advance,

Dear All,

spending all night with digging in the available resources, I think I got it… at least I hope so. I have set up a spreadsheet, which is useful for me, maybe for others too? You can get the file here. I would appreciate your review, so do not hestitate to give me some feedback as well as corrections and suggestions.

Kind Regards,


Dear Francois,

I have the feeling that there is a flaw in your conversion formula

p_phys = p_lb * d_0^2 / t_0^2 * rho_0.

From what I could see, the flaw still exists in your updated spread sheet. To convert the pressure from lattice units to physical units, your formula (if I understand it right) uses the physical reference values d_0 and t_0. Instead, I think that the right parameters to use are the discrete cell spacing and time step (not exactly as you define them, though: I will come back to this).

Here is a simple argument to convince you that the above formula cannot be right. Your conversion factor depends only on physical quantities (d_0, t_0, and rho_0) and is independent of the spacial resolution Nx and the time resolution Nt. However, when you run your simulation, you will see that the lattice-units pressure p_lb depends a lot on the resolution. This is the case even when the resolution is large, meaning that the simulation has reached grid convergence. In order for the physical pressure p_phys to be independent of the grid parameters, you therefore need Nx and Nt to intervene somehow in the conversion formula.

A second comment about your analysis of unit conversion: I think that I got lost somewhere half-way through your explanations, because you are working with three systems of units (physical, dimensionless, and lattice) at the same time. I know that this is maybe my fault, because in my tutorial on unit conversions I introduce all three systems (I should maybe write a simpler one in which the dimensionless system is skipped). In your case though, it seems that you have everything fully described by physical variables. In that case, my impression is that your analysis is simpler if you go directly from physical to lattice units, and skip the dimensionless one.

Here’s my suggested procedure:

  1. Physical quantities (I think the other ones are redundant):

characteristic length l0   = 0.001  [ m ]
characteristic velocity u0 = 10.0   [ m / s ]
density rho0               = 1.2    [ kg / m3 ]
kinematic viscosity nu     = 1.0e-5 [ m2 / s ]

  1. Numerical parameters

spatial resolution Nx          = 50   [ - ]
velocity in lattice units u_lb = 0.05 [ - ]

  1. Computation of the conversion variables:

discrete cell spacing dx = l0/Nx      = 2.0e-5 [ m ]
discrete time step dt    = u_lb/u0*dx = 1.0e-7 [ s ]

  1. Variables in lattice units, to be used in the simulation:

velocity for the boundary/initial conditions: u_lb = 0.05   [ - ]
viscosity in lattice units: nu_lb = nu *dt/(dx*dx) = 0.0025 [ - ]
relaxation time:            tau   = 3*nu_lb+0.5    = 0.5075 [ - ]

  1. Conversion of simulation results to physical units:

Velocity: vel = vel_lb *u0/u_lb
Pressure: p = (1/3*rho_lb) * dx^2/dt^2 * rho0

That should do it…


Dear Jonas,

thank you very much for your answer! Indeed, it clarified a lot on my side, and I think now I have it.

Since it might be useful for someone, I’ve uploaded a updated “LBM Unit” spreadsheet, you can get it here (there are a lot of other scaling parameters, since I need them for different other models coupled).

Kind Regards,


Dear Francois

The spreadsheet which you have uploaded is showing garbage values when opened in MS Excel 2010.
It would be a huge help for beginnerslike myslef, if you could open it in OO, save the file as xls and then re upload it.

Thanks for your time and thank you in advance


May be this paper by Feng, which convrts units directly from Physical sysytem to LB system, will prove handy:

The spreadsheet file is not available anymore could you please post it again

Thank you