High velocity flow

I am trying to simulate flow in a media driven by body force. At low body force (less than e-3, and relaxation time=1.0436) I get very good result. However, I tried with a large body force (of about e-2, and relaxation time = 6), and I get nan in my velocity and density. I decided to use a high viscosity to reduce the magnitude of the velocity as a result of the large body force.
What could be responsible for this.
Thus, how do I go about simulating a high velocity flow in my system considering that my resolution is already fixed i.e, cannot be changed


when you are using the standard LBM with nearest neighbor latices (D2Q9 or D3Q19 for example) you can only simulate velocities that are much smaller than the speed of sound (in the weakly compressible regime). In the case of the two lattices above it means that u_max<<1/sqrt(3). You are therefore unable to simulate velocities higher than about 0.02.

Furthermore the force in the lattice Boltzmann must be of the order of the Knudsen number (Kn=Ma/Re). I do not really know what are the parameters of your simulation but force=10^(-2) seems very high to me and therefore may be the origin of your problem. Finally the relaxation time must also be treated carefully, since it is related to the Knudsen number Kn~tau*c_s/L, with tau, c_s and L the relaxation time, the speed of sound and the characteristic length of your domain. Note that this is an approximation but the order of magnitude should be correct…

I hope this helps a bit.


Well, I get the knudsen number relationship. However, my system is a porous media with a bunch of spheres such that one cannot determine the Reynolds number a priori. Only when the simulation is complete can I know the velocity. What I can only fix is the body force and then the velocity (reynolds number ) is obtained at the end of the simulation.
My surprise also is the nan that appeared. I thought atleast, I should get some values, though they may be outrageous.
Again, I was expecting that the high body force will be taken care of by a large viscosity, as given by the relaxation time.

I do know that the LBM method is restricted by the Mach number. Thus, if I do want to go to a high body force regime, what do you suggest?

If you have to simulate a really large body force (at least in physical units), you have to increase resolution and/or decrease the time step. This of course will lengthen your computing time. But that is life.

Well, like I said, my resolution is fixed,. so it is not an option for change. As regards the time step, I do not have a physical system to reference to. Thus I am left with varying the time step by changing my initial velocity (in lattice units) in the system. However, I do not remember anywhere in the LBM where the time step is used in calculating the particle distribution function, which is the variable of interest. I am wondering how this will relate to the fact that velocity and density is nan in my simulation for large body force.

I read through the paper “Shear stress in lattice boltzmann simulations” and it says that to simulate high Reynolds number flow, the relaxation time should be reduced. I do not know the reason for this and would appreciate an explanation.

Now, my initial simulation used a relaxation time of about 1.08, and it worked. For the large body force, the relaxation time was about 5 as stated in the first submission. But I do know that the minimum value of tau is 0.5 (I do not know of any maximum value). Which means that 5 is an acceptable value for LBM simulation ( but it may not be numerically stable). Again, I do not know why and how the relaxation time should be responsible for the nan.

In all this, my major concern is why I have nan appearing. I would prefer having values of the simulation, even if they are numerically stable. Atleast in that case, I can analyze the result, play with some paraameters and figure out what the problem is. But as it stands, dont know why just a change in body force would render a successful code useless


the reason for decreasing tau for large Re simulation is easily understood. Start from the equation
Ma / Re = (tau - 0.5) / N
I have omitted the constant factor sqrt(3), we do not need it for this argument. N is the number of grid points defining the Reynolds number. If you define a particle Reynolds number, you have to use that value instead of N. However, the idea is clear: N is just the system’s length scale in lattice units. Now, if you keep Ma and N fixed, the only choice to increase Re is to reduce tau. That’s all.

I bet that the nan in your simulation is not a direct consequence of the time step. As a matter of fact, the large value of the body force could cause a collapse of the LB algorithm. And one way to decrease the body force (in lattice units) is the reduction of the physical time step length. What happens if you just decrease the body force? Is your simulation still unstable then? Have you tested the LB code in a simpler geometry, e.g. duct flow?

Another comment: since you simulate porous media, it would be advantageous to use MRT instead of SRT, since SRT simulations of porous media are highly tau-dependent. As a consequence, it is very hard to compare SRT results of porous media flow obtained from tau = 1 and tau = 5, say.


Thank you Timm. I also agree with you that the simulation collapsed probably because of the large body force. I now understand the concept of small relaxation time for large Reynolds number flow and I have applied it to my simulation. I used the same large body force that collapsed the simulation, but with a smaller relaxation time. I am waiting for the result to come out. However, this was the best I could do because I have two degrees of freedom,tau, and N (actually one since my N is fixed), while Re and Ma are unknown until the simulation gets to steady state. So all I can do is play around with tau.

I have already simulated with smaller body force values and the result was good. Values of the order of <e-3 gave good results. However, when I tried in the regime of e-2, I experienced the collaspe.

It is pretty much difficult to reduce the body force by increasing the physical time step which you talked about. This is so because, like I mentioned earlier, I do not have any physical system to reference to, and I do not need either. I am interested in the permeability of my system which is independent of the fliud flowing through it. The low Reynolds number/body force regime was good. But I decided to increase the body force to see the influence of inertial forces in my flow, then the simulation collapsed.

Concerning the MRT, is there any example of the cavity flow using the MRT in openLB?