LB Units

I have managed to get myself completely confused regarding a translation from real units to LB units. I have read the earlier posts and Jonas’ note on units, but can’t seem to get things sorted out. My geometry is a 5 X 1 X 1 cm box, with an inlet velocity of 10cm/s and at the outlet a constant pressure condition.

When I use the converter class, I use N = 40, i.e. 200 grid points in x and 40 in the y and z direction. I specify a Re = 10, but cant figure out how to independently calculate Umax. From what I understand, once Umax is specified, the program calculates dt = Umax/dx, and it uses this value to calculate all other quantities such as tau, omega and nu. My problem is what value of Umax should I use such that I get back the 10cm/s physical condition?

I am probably missing something simple, but cant put my finger on it. Any help would be greatly appreciated.


OK, there we go. Le me first state what you need to do, and then, why this is the right thing to do. I assume from your post that your converter looks somehow like

LBunits converter(uMax, Re, 40., 5., 1., 1.);

That’s fine, if you agree that your reference length for the definition of the Reynolds number is the short direction (1cm), not the long one. In the latter case, the geometry must be (1., 1./5., 1./5). Now set the lattice velocity to a value which has nothing to do with your 10 cm/s. A good value is for example uMax=0.02 (see below). Run your simulation. Measure the results. For example, compute the velocity at one point through the command

T u[3];

Or, compute the RMS value of the velocity through a command like

T uRMS = sqrt( 2. * lattice.getStatistics().getAverageEnergy() )

In both cases, you get a velocity value which is measured in lattice units, u_{lu}. Convert this value into a system of dimensionless variables:

u_{dl} = u_{lu} * converter.getDeltaX()/converter.getDeltaT();

Finally, convert from dimensionless variables into your physical units:

u_p = u_{dl} * 10 cm/s

And you’re done. Here’s the explanation. The unit converter assumes that the lattice-independent system consists of dimensionless variables (after having read this thread, you could write, for your convenience, a unit converter which performs automatically the conversion from dimensionless to physical variables). In this system, the reference variables have value 1: L_{dl}=1 and U_{dl}=1. In this notation, reference variables are uppercase, whereas free variables, which you typically measure from the simulation, are lowercase. Conversion between the dimensionless and the physical system is straightforward. In physical units, you have L_p = 1 cm and U_p = 10 cm/s. The conversion formula is

l_p = l_{dl}*L_p  and  u_p = u_{dl}*U_p.

The variable uMax stands for the velocity in lattice units and is used to control the Mach number. When you simulate an incompressible fluid, this variable has no physical meaning, and is simply a numerical parameter. If you decrease uMax your simulation is more accurate because compressibility effects are smaller, and if you increase uMax, your simulation is faster because dt is larger. It may seem counter-intuitive to you that your value U_p = 10 cm/s is not used to set up the simulation, but only to evaluate the results. However, that’s what it means when people speak of similarity in fluids. The flow structure depends only on the aspect-ratio of the geometry and on the Reynolds number, and not on all individual parameters.

Thanks a lot, that clears up everything. I come from the world of molecular dynamics simulation and am used to setting dimensionless parameters slightly differently, so this was a bit confusing to me.


Happy to help. I understand your concern, as I am frequently confused with unit conversion issues as well. Things are particularly delicate in lattice Boltzmann, because arguments from the kinetic theory of gases overlap with arguments from the Navier-Stokes community and need to find a common language.

I’m simulating thermal flow in a 2-d micro-couette using LBM. I have a serious problem with thermal unit conversion in LB.
I want to reproduce the results of the DSMC method in (XIAO-JUN GU et. al. “A high-order moment approach for capturing non-equilibrium phenomena in the transition regime”, J. Fluid Mech. (2009), vol. 636, pp. 177–216. c ,Cambridge University Press 2009, doi:10.1017/S002211200900768X) Part 6. Results and discussion, for thermal-micro-couette flow in the transition regime (namely, Knudsen number Kn>0.1). But I don’t know how to convert the values of the wall temperature (Tw) and the gas constant ® to lattice units.
as we know the sound speed in the LBM is Cs=C/SQRT(3) and C=SQRT(3RT). Then what should I do with the value of the R and T in the calculation of the C.
Please help me. I’m working on my thesis and I’m in a bad hurry.
I appreciate any help in advance.