# Must Lattice speed equals to 1 ?

Dear All,

We all know, for D2Q9 model, Cs^2 = 1/3*c^2, where c=dx/dt. Usually, we take c=1(i.e, dx=dt), thus, Cs^2=1/3.

Now, my question is,

What if c is not equal to 1 (which means Cs^2 is not equal to 1/3)? Will there be any special treatment on the methods?

Any discussion on the topic will be really appreciated!

dx=dt=1 only in lattice units (ie, in the computational scaling). In general, or in a different scaling, they are the grid spacing and time step, so are not unity.

If you have a flow with a characteristic length L=1 then you may want to use N points to discretise it. So the grid spacing, which is the distance between points, is dx=1/(N-1). When you write your code you probably don’t say that the channel is of unit length, but rather then you have (N-1) grid pints, or nodes. So this is a different scaling where L=N-1 and dx=1. The same applies to the speed c, and thus timestep. Of course the Reynolds number should be the same in all scalings.

There are some very good resources on LB scaling on these webpages, which you may like to have a look at. If you want to change the equation of state, then this not the way to do it.

I realize there is a lot of discussion on the forum…actually, “too much” discussion…unfortunately, almost every one has his or her own notations…

Then maybe I will make a very quick point about units and scaling. The important thing is the relevant nondimensional numbers must be the same in any scaling. Otherwise you’re computing different flows. Let’s stick with a simple singe phase flow of a Newtonian fluid. The most relevant number is the Reynolds number, Re=U*L/nu, where U is the characteristic velocity, L the lengthscale and nu the kinematic viscosity.

In numerical analysis and scientific computing we usually discretise the non-dimensional system. As said previously, we might divide L (which is one in the nondimensional system) into N-1 points, so that dx=L/(N-1).Thus, in the computational scaling, the length is L/dx=1/dx=N-1, and the distance between the grid points is 1. In other words, dx=1 in the computational scaling, ie in lattice units.

LB methods also have a Mach number. The value of the Ma number (Ma=U/c_s, where c_s is the sound speed) is determined by the “lattice speed” c=dx/dt, as you mentioned above (c is sometimes called the particle speed). We know that Ma has to be small (Ma<<1), as this is an assumption made in the derivation of the LB method and means we are aways close to incompressibility. So, imposing a value on Ma sets a value for c. Now we know dt, because dt=dx/c and we have already set dx. Again, dt is small, but equal to 1 in the computational scaling. Basically, if we have a non-dimesnional system with U=L=1 and scale it with c and dx (for the computer) then in this scaled system, the distance between grid points is one, the time to complete one LB stream-collide loop is one, and the velocity is small.

Now that we know dx and dt, we can scale the viscosity for our simulation. If you are doing some benchmark tests, such as Poiseuille flow or cavity flow, you may not care too much about the 'physcical parameters and just know the Re number (which is perfectly fine because flows with the same Re number in the same geometry are equivalent). In this case we simply say that the ‘lattice viscosity’ is
nu=UL/Re=(U/c)(L/dx)/Re,
and if L=1, as may well be the case in the non-dimensional system, then
nu=(N-1)*uscale/Re,
where uscale <<1 is the scaled velocity, uscale=U/c (which may well be equal to 1 in the nondimensional system.). If you are testing convergence then you generally keep Ma and Re fixed, so that increasing the number of grid points (ie making dx smaller) changes dt is a way that keeps the ratio dx/dt=c constant.

## pleb01 Wrote:

dx=dt=1 only in lattice units (ie, in the
computational scaling). In general, or in a
different scaling, they are the grid spacing and
time step, so are not unity.

If you have a flow with a characteristic length
L=1 then you may want to use N points to
discretise it. So the grid spacing, which is the
distance between points, is dx=1/(N-1). When you
write your code you probably don’t say that the
channel is of unit length, but rather then you
have (N-1) grid pints, or nodes. So this is a
different scaling where L=N-1 and dx=1. The same
applies to the speed c, and thus timestep. Of
course the Reynolds number should be the same in
all scalings.

There are some very good resources on LB scaling
on these webpages, which you may like to have a
look at. If you want to change the equation of
state, then this not the way to do it.
Hello Pleb, hope u’re doing very well,firstbale let me tell u that i am so sorry to message you like this coz i dont know hoe to do
please could you help me ?!for the test of the classical study : (natural convection in squre cavity ),i am trying to simulate it using TLBM so i applied the simple extrapolation scheme: g+k(I,jmax)=(4* g+k(I,jmax-1)- g+k(I,jmax-2))/3
where k=1:5 (D2Q5model) and g is the temperature distrbution function
to implement the adiabatic walls(top and bottom) and the dirichlet Boundary condition for the active walls(left and right),my problem is the isoterm lines are not similar to those found in litterature (de Vahl Davis) please could you tell me an algorithm to do that or give me some advices. Thank you so much
All the best lbmagis, I have sent you a private message (see top right of the screen)

Hi Pleb,

I’m a beginner. I have a doubt regarding the lattice spacing,dx and lattice time,dt.

In Jonas Latt’s “Choice of units in LBM”,2008. in section 2.3 Discretization of dimensionless system, he used del_x and del_t.

My question is

1. Is del_x and del_t mentioned in his paper is different from dx and dt you mentioned.

2. And should we use lattice speed c or sound speed c_s for mach no calculation in the code?

If you could help me with an example for unit conversion from physical to lattice units

say, for eg: L = 0.01m. how to convert to lattice units.? it will be more helpful.

I read many but unfortunately everything is confusing.

help from anyone will be appreciated.

Many thanks…
ramki

Beside the above, the main LB idea is to be ON cartesian, as it is cited in this paper On pressure and corner boundary conditions with two lattice Boltzmann construction approaches

Mathematics and Computers in Simulation
Volume 84, October 2012, Pages 26–41

which also available
here

If you are off-Cartesian you are not following the main LB idea, see the above paper as an introduction.

Good luck

The point raised in the above post is a good one, but the advertisement for the paper does not appear to be relevant. if the members of this discussion are interested in meshes and the relationship between velocity and spatial discretisation then may I suggest they have a look at He at al (J. Comp. Phys 1996), and He at al (Physica A 1997). Curvilinear LBE models have been given attention by Mei and Shyy (J Comp Phys 1998) More recent “off node” lattices have been discussed by people like Shan et al JFM 2006 (see also work by Ansumali and Karlin)

Another good point by pleb01 In that paper, some people are credited about the main LB idea. Looking to that paper again the main LB idea was “re-phrased” in “Nonequilibrium entropy limiters in lattice Boltzmann methods, Physica A 387 (2008) 385–406” by R. Brownlee, A. Gorban, J. Levesley as follows:
Nonlinearity is local, non-locality is (a) linear; (b) exact and explicitly solvable for all time steps; © space discretization is an exact operation”, which is found in that original paper.