I wrote a code for Poisseulle flow previously and result was near to analytical solution (periodic boundary + BB). recently I want to adapt my code with changing initial condition as a matter of fact i just want to decrease dx to dx/2(equivalent to increase Number of grids), so I check and see to get same result I should change Relaxation time from 1 to 1.5 and change body force g to g/2, but as a matter of fact result is completely different with initial one, i think there was a problem with relaxation time and bounce-back i read somewhere (I don’t know where!!!) BB give good result only in the case of relaxation time=1.0, if I am wrong please correct me?
(in the case of tao=1.0 ===> umax=0.025)
(in the case of tao=1.5 ===> umax=0.037)
Is this possible such a great difference could be due to relaxation time?

If you are using a body force to drive your flow in the standard way then your results should converge to a fully developed parabolic profile, of course, with “almost” zero velocity at the walls an a maximum value “close” to Umax.

It is true that bounce back with BGK models does not always give good results. In particular, the LBE can be solved exactly for Poiseuille flow and doing this shows we have a second order (in dx) error term (some people call it slip, but it is not slip) which depends on the relaxation time. Or in other words, the location of the wall (ie, the place where the velocity vanishes) is a function of the viscosity. This is the motivation behind the very interesting TRT models. This means you should expect to get non-exact results for your Poiseuille flow, and they could indeed be different for different values of tau on different (coarser) meshes. But you can also quantify this error, so although you may not get the exact analytic solution of the Navier-Stokes equation for Poiseuille flow with your parameters, I think they should converge to Umax with a second order in dx error (dependent on tau - this error will be an order worse if you use on-wall bounce-back.).

My first suggestion is to make sure your results converge: ie, make sure your results fit a parabolic profile with a maximum “close” to Umax (and velocities approaching zero at the wall) when you refine the mesh - if this doesn’t happen then I’d say you have a bug in your code. I’d also recommend reading some of the theoretical papers of Ginzburg et al and Luo et al on boundary conditions with BGK/TRT/MRT models. Then you’ll have to decide if you want to continue using the BGK model with bounce-back with tau>1.5 (in lattice units) because to get accurate results you may need to have unpleasant discretisation parameters and Mach number. And, of course, it depends on what you mean by “good” results - a second order error term seems to be ok for some people but unacceptable for others.

Good luck!
Tim

ps
the error term (or “slip” in some people’s incorrect language) in force-driven channel flow with BGK and bounce back is something like this:

(48nu^2-1)/(8nu)Gdt

where nu is the kinematic viscosity, G is the driving force (a function of Umax and the width of the channel) and dt is the time-step. You should check this as I’ve probably remembered incorrectly, but you can see how tau and the mesh affect the results.

result converge in the case of relaxation time=1 and completely fit analytical solution but when change relaxation time to 1.5 as I said first there is a large difference between analytical solution and LBM solution. Thanks

But you can still refine the mesh to get predictions of the non-dimensional flow - more nodes and a smaller time-step should show that the results are at least closer to the correct solution. You may want to alter Umax, but you can rescale your final solution back into non-dimensional values (remember that all your lattice parameters depend of dx and dt). The difference between the analytic solution of the Navier-Stokes equation and your results should be something like the expression I gave above (which comes from the analytic solution of the LBE for channel flow). We can see that tau will affect the results, but will have less effect on a finer grid. You will need to see if your error agrees with this term (it shouldn’t be larger than what the theory tells us - please look at the work mentioned above for more details and to check this term).

Although BGK with bounce-back is often promoted as being nice, elegant and easy, there are a lot of hidden problems. Channel flow may not be exciting, physically speaking, but it is a good tool for assessing LB models because we know exactly what’s going on.

ps
To be concrete (and in case I wasn’t clear), the error when tau>>1 is expected to be large because it is quadratic in nu, and therefore requires a fine mesh if it can ever be considered tolerable. I think you should make sure that the error term in your simulations agrees with what the theory says and decided if, for your needs, 1.5 is too big. Note that tau~1.11 should give the best results (again, see the aforementioned literature).

my code now can handle when there is one kind of grid(coarse or fine) every where. and result are in very well agreement with analytical solution. but as a matter of fact there is some problem when i have two kind of grid simultaneously (somewhere in my domain i have coarse grid and somewhere fine just like models for grid refinement verification). i think there is a bug in application of lbm. this means when we have two kind of grid we have relaxation time for each kind of grid (tao_fine=2*(tao_coarse-.5)+0.5) and dt_fine=dt_coarse/2 and dx_fine =dx_coarse/2 and g_fine=g_coarse/2 ,…
i read somewhere collision formula in this way: f=f-(dt/tao)*(f-feq) so I understand from this if we get dt_coarse=1 then we should set dt_fine=0.5 and in the application of body force we should have do same multiplication. is it true?
if I am wrong please correct me. and what should I do where 2 or more kind of grids exist. most of equation such as equilibrium and collision and streaming are in the case of one type of grid what should I do in the case when exist two or three type of grids?