Here is the flow past a square cylinder configuration. The problem is a viscous and incompressible with parabolic velocity profile using freestream velocity $U$ across a single cylinder. I use the single relaxation time lattice Boltzmann method. For the two-dimensional nine-velocity lattice(D2Q9), the directions of the particles are shown in the picture.

enter image description here

The parameters: $H=160$, $L=780$, $I=170$, $D=20$, $U_\max=0.0438$, $\mathrm{density}=1.0$, $dy=dx=1$, $dt=1$, $\mathrm{Re}=160$

The boundary conditions:

  • Inlet: He-Zou boundary condition

  • Wall: bounce-back conditions

  • Outlet: interpolation (Here is the code for outlet BCs)


My problem is whether the outlet boundary conditions are right or not. If it is right, why it's about f1, f5, f8 rather than f3, f6, f7? In my opinion, it seems that we can't get f3, f6, f7 from streaming on the outlet.


2 Answers 2


Your outlet boundary condition is not correct. In your outlet BCs, you have to impose the value of $f_6$, $f_3$ and $f_7$ since these populations are not updated by the streaming step.

This paper presents a good example on how to do an outflow BC in LBM : https://www.researchgate.net/publication/40536594_Outflow_boundary_conditions_for_the_lattice_Boltzmann_method


Some other fairly easy methods to assign values to the unknown populations include:

  1. You could save the post-collision values of the missing populations $f_3, f_6, f_7$ at timestep $j - 1$ and set them in the $j$'th streaming step as incoming populations.
  2. Based on the macroscopic variables $u, \rho$ you can set $f_3, f_6, f_7$ in the streaming step to their equilibrium values.
  3. If you know one of $u_x, u_y, \rho$ at the outlet, you can also use the Zou-He boundary conditions you already used at the inlet.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.