Shan-Chen model delta T setting

Dear LBM colleague,

I am revising the Rayleigh-Taylor instability example provided in the Palabos. I change the body force from vertical to horizontal. So the flow should like the two phase plane poiseuille flow.

Here are the settings:

const T omega1 = 1.25;
const T omega2 = 1.0;
const int nx = 300;
const int ny = 100;
const T G = 1.4;
T force = 1.0 / (T)ny;
const int maxIter = 100001;
const int saveIter = 5000;
const int statIter = 10;

What is the delta T( the reference time divided by the number of iteration steps) in the simulation? Is it the inverse of maxIter?

Also, Ulb = (delta T) / (delta X) * Ud, (Ulb is the velocity simulated in the LBM, Ud is the velocity in dimensionless system)

So when delta T is changes, the simulated Ulb should change. But at some cases, when I increase maxIter, the LBM calculated velocity does not change as it already reached equilibrium. So I guess delta T should not equal to maxIter. However, I did not find settings of delta T in other places of the example code. How should I change the delta T?

Thank you very much!


Dear CYU,

Delta T is the time step for the simulation: in lattice units this will be equal to 1, but it is possible to relate this to a real-life quantity. The time step and the lattice spacing (delta X) can be related to the speed of sound:

C = (Delta X) / (Delta T) * 1/sqrt(3)

and the kinematic viscosity of a fluid:

nu = 1/3 * (1/omega - 0.5) * (Delta X)^2 / (Delta T)

In lattice units, the calculated value of Ulb will not change as both Delta X and Delta T will be equal to 1. However, if you convert it into real-life units, the velocity will depend on the physical quantities for grid spacing and time step. (As you have already observed, the maximum number of iterations - time steps - has no effect on the solution.)

If you want to change the velocity of the fluid, you will need to change the force.



Hi Michael,

Thank you very much!


i didn’t understand why Delta T and Deltax will be equal to 1 in lattcie units?

Hi Student,

You can refer to this document: to understand better one of the trickiest part of lattice Boltzmann: the lattice-units.

If we take the classic example of passing from physical units to dimensionless units, you chose L0 as characteristic length and T0 as characteristic time. Normalizing the physical quantities with those numbers you find the dimensionless form of the equations. Now, as the author says in the document, you can think at the dimensionless system as the system in which the L0 and T0 are equal to 1.

Now chose the DeltaX and the DeltaT to pass to lattice units is essentially the same. You use deltaX and deltaT to pass from whatever units to lattice units and you can think as the LB system as the System in which DeltaX and DeltaT are equal to 1.

I know this can be confusing but I cannot explain it better. From a practical point of view, if you think about how you make the lattice, the grid spacing is 1. Even in the cycle for the LB algorithm the time step is 1. This because you are operating in lattice units!

Good luck