Open Journal of Fluid Dynamics
Vol.05 No.01(2015), Article ID:54003,6 pages

A Semi-Implicit Scheme of Lattice Boltzmann Method for Two Dimensional Cavity Flow Simulation

Lei Zhang1, Jun Yao1*, Hai Sun1,2, Jianguang Zhang1

1School of Petroleum Engineering, China University of Petroleum, Qingdao, China

2School of Geosciences, China University of Petroleum, Qingdao, China

Email: *

Copyright © 2015 by authors and Scientific Research Publishing Inc.

This work is licensed under the Creative Commons Attribution International License (CC BY).

Received 21 January 2015; accepted 9 February 2015; published 12 February 2015


The calculation sequence of collision, propagation and macroscopic variables is not very clear in lattice Boltzmann method (LBM) code implementation. According to the definition, three steps should be computed on all nodes respectively, which mean three loops are needed. While the “pull” scheme makes the only one loop possible for coding, this is called semi-implicit scheme in this study. The accuracy and efficiency of semi-implicit scheme are discussed in detail through the simulation of lid-driven cavity flow. Non-equilibrium extrapolation scheme is adopted on the boundary of simulation area. The results are compared with two classic articles, which show that semi-implicit scheme has good agreement with the classic scheme. When Re is less than 3000, the iterations steps of semi-scheme can be decreased by about 30% though comparing the semi-im- plicit scheme with standard scheme containing three loops. As the Re increases into more than 3400, the standard scheme is not converged. On the contrary, the iterations of semi-implicit scheme are approximately linear to Re.


Lattice Boltzmann, Cavity Flow, Reynolds Number, Semi-Implicit

1. Introduction

In recent years, the lattice Boltzmann method has developed into an alternative and promising numerical scheme for simulating fluid flows and modeling physics in fluids. The LBM can simulate various fluid flow situations that are difficult to operate in the laboratory. However, these simulations are very computation-intensive and time-consuming even with modern computing power. There are many different ways to accelerate the simulation, such as parallel computing and different data layouts [1] or data storage in memory [2] . Among them, parallel computing contains CPU parallel computing [3] - [5] and GPU parallel computing [6] [7] .

However, the calculation sequence of collision, propagation and macroscopic variables is ambiguous in code implementation. The “pull” and “push” scheme [1] can be used in propagation step. According to the definition, three steps should be computed orderly on all nodes, which means three loops are needed in the programming, and both “pull” and “push” scheme are available. Especially the “pull” scheme, which integrates the three steps into one loop, will be discussed in this paper. The “pull” scheme with one loop is called semi-implicit scheme. In Section 2, Figure 1 will show why we call it “semi-implicit”. The accuracy and efficiency of semi-implicit scheme is discussed in detail through the simulation of lid-driven cavity flow.

Lid-driven cavity flow is a well-known fluid flow problem where the fluid is set into motion by a part of containing boundary. This type of flow has been used as a benchmark problem for many numerical methods due to its simple geometry and complicated flow behavior. Ghia et al. [8] give a comprehensive review on the numerical studies related to this type of fluid flows. Hou et al. [9] use LBM for simulating the cavity flow and present solution up to Reynolds number Re = 7500. The results in this paper will be compared with the results of these two articles.

In this paper, Section 2 presents the lattice Boltzmann model used in this study. The standard scheme and semi-implicit scheme of LBM are introduced, and the difference between two schemes is given. Section 3 draws the cavity flow problem, which is simulated by lattice Boltzmann method with semi-implicit scheme. The simulation result is compared with the results from previous articles. In addition, the performance comparison between the two schemes is given. Moreover, the final section shows the concluding remarks.

2. Numerical Schemes

2.1. Lattice Boltzmann Method

A lattice Bhatnagar-Gross-Krook (BGK) model [10] [11] is briefly introduced here for the purpose of describing the semi-implicit scheme in the following section. The BGK model is defined by the following equation:


where is a particle distribution function representing the probability of finding a fluid particle with a velocity at location and time. is the relaxation time. is the number of velocities. is an equilibrium distribution function.

Velocity is determined by a lattice structure. For 2D regular cell models, the most commonly used lattice structure is D2Q9 according to the DdQb notation of Qin et al. [11] . Here, is the space dimensions, while is the number of velocities including the zero velocity,.

Figure 1. Comparison between standard scheme and semi-implicit scheme.

The equilibrium distribution function for the D2Q9 lattice model is given by


where is the weight factor in the direction. The weight factors for the D2Q9 model are 4/9 for the rest particles, 1/9 for particles streaming to the face connected neighbors and 1/36 for particles streaming to the edge connected neighbors and while is the speed of sound, and

for D2Q9 model. The relaxation time is related to the viscosity by


2.2. Boundary Conditions

The boundary condition most commonly used in lattice Boltzmann method is the bounce-back method. The bounce-back scheme is easy to implement and make the method ideal for simulating fluid flows in complicated geometries [8] . However, the bounce-back scheme is only first-order in numerical accuracy at the boundaries, which is not consistent with the order of the LBM in interior points. The non-equilibrium extrapolation scheme is adopted here. The basic idea is to decompose the distribution function into equilibrium part and non-equili- brium part. The scheme is of second-order accuracy in both time and space region [12] .

2.3. Difference between Standard and Semi-Implicit Schemes

The macroscopic variables such as density and velocity, which are required for equilibrium distribution function, can be obtained from the following equations:



From Equation (1), the fluid particle evolution involves two distinct steps:





Macroscopic variables, collision and propagation are the three time consuming steps during the lattice Boltzmann simulation process. The main difference between the standard scheme and semi-implicit scheme in code implementation is that, the former scheme needs three loops for three steps, while the latter scheme needs only one loop in all the nodes for all three steps. When the distribution functions for node were computed, the distribution functions of its neighboring node are used by standard scheme for all directions, but the distribution functions of its neighboring nodes are used by semi-implicit scheme for the red directions (shown in Figure 1). The accuracy and efficiency of semi-impli- cit scheme will be discussed through the simulation of cavity flow in the next section.

3. Cavity Simulation and Discussion

The present simulation uses Cartesian coordinates with the origin located at lower left corner. Numerical simulations are carried out using the standard and semi-implicit scheme LBGK model for different Re numbers on a lattice. Initially the velocities at all nodes, except the top nodes, are set to zero. The x-velocity of the top, is set to 0.1 and the y-velocity is zero. Uniform fluid density is imposed initially. The convergence criterion for the steady state is given by the follow:


where is the total number of nodes in the computational domain. and are the x-velocity and y-ve- locity respectively.

3.1. Stream Function

The simulation results computed by semi-implicit scheme were compared with previous works done by Ghia et al. [8] and Hou et al. [9] . First, the locations of primary and secondary vortices are listed in Table 1 and Table 2. The convergence criterion, Er is choosen 10−6 for all simulations.

Numerical simulations were carried out for, 1000, 2000, 5000, 7500. Figure 2 shows the changes of stream function for each Reynolds numbers, the locations of vortices with different level can be seen clearly from these figures, for example, the third level vortices is turned out on the upper left corner of the square cavity when. Table 1 shows the locations of the center of primary vortices and the pair of lower vortices for different Reynolds numbers. The locations of the secondary vortex in the upper left corner for and 7500 are listed in Table 2. These result show good agreement with Ghia et al. [8] and Hou et al. [9] .

3.2. Performance Compare

For all simulations, steady state is reached when the convergence criterion, Er is less than 10−6 for successive 1000 simulation steps. Table 3 shows the iterations that both schemes are needed. Ef in Table 3 equals, which shows the saving proportion of iterative steps of the semi-implicit

Table 1. The locations of primary and secondary vortices.

Note: a, Ghia [8] b, Hou [9] , c, semi-implicit scheme.

Table 2. The locations of upper left vortex.

Note: a, Ghia [8] b, Hou [9] , c, semi-implicit scheme.

Table 3. Comparison of iterations between two schemes.

Figure 2. Stream functions for different Reynolds numbers.

Figure 3. Comparison of iterations between two schemes.

scheme. The iterations can be saved about 30%, when Re less than 3000, and the advantage of semi-implicit scheme becomes more obvious as the Re increases. The standard scheme is not converged once Re > 3400. On the contrary, the iterations of semi-implicit scheme is approximately linear to Re (Figure 3).

4. Conclusion

The essence of semi-implicit scheme is that it uses the latest equilibrium distribution function, computed by the new macroscopic variables. The semi-implicit scheme accelerates the computation rate of flowing status to steady statement and increases the computation efficiency. In addition, the application of semi-implicit scheme is not limited to the cavity flow simulation; many other problems can choose this scheme to reduce the total computing time.


We would like to express appreciation to the following financial support: the National Natural Science Foundation of China (No. 51490654, 51234007), the National Natural Science Foundation of Shandong Province (No. ZR2013DL011, No. ZR2014EEP018), China Postdoctoral Science Foundation (No. 2014M551989).


  1. Wellein, G., Zeiser, T., Hager, G. and Donath, S. (2006) On the Single Processor Performance of Simple Lattice Boltzmann Kernels. Computers & Fluids, 35, 910-919.
  2. Ma, J., Wu, K., Jiang, Z. and Couples, G.D. (2010) SHIFT: An Implementation for Lattice Boltzmann Simulation in Low-Porosity Porous Media. Physical Review E, 81, Article ID: 056702.
  3. Skordos, P.A. (1995) Parallel Simulation of Subsonic Fluid Dynamics on a Cluster of Workstations. Proceedings of the Fourth IEEE International Symposium, Washington DC, 2-4 August 1995, 6-16.
  4. Amati, G., Succi, S. and Piva, R. (1997) Massively Parallel Lattice-Boltzmann Simulation of Turbulent Channel Flow. International Journal of Modern Physics C, 8, 869-877.
  5. Martys, N.S., Hagedorn, J.G., Goujon, D. and Devaney, J.E. (1999) Large-Scale Simulations of Single- and Multicomponent Flow in Porous Media. Proceedings of the International Symposiumon Optical Science, Engineering, and Instrumentation, Denver, 18 July 1999, 205-213.
  6. Tölke, J. (2010) Implementation of a Lattice Boltzmann Kernel Using the Compute Unified Device Architecture Developed by nVIDIA. Computing and Visualization in Science, 13, 29-39.
  7. Kuznik, F., Obrecht, C., Rusaouen, G., and Roux, J.J. (2010) LBM Based Flow Simulation Using GPU Computing Processor. Computers & Mathematics with Applications, 59, 2380-2392.
  8. Ghia, U.K.N.G., Ghia, K.N. and Shin, C.T. (1982) High-Re Solutions for Incompressible Flow Using the Navier- Stokes Equations and a Multigrid Method. Journal of Computational Physics, 48, 387-411.
  9. Hou, S., Zou, Q., Chen, S., Doolen, G. and Cogley, A.C. (1995) Simulation of Cavity Flow by the Lattice Boltzmann Method. Journal of Computational Physics, 118, 329-347.
  10. Bhatnagar, P.L., Gross, E.P. and Krook, M. (1954) A Model for Collision Processes in Gases. I. Small Amplitude Processes in Charged and Neutral One-Component Systems. Physical Review, 94, 511-525.
  11. Qian, Y.H., D’Humières, D. and Lallemand, P. (1992) Lattice BGK Models for Navier-Stokes Equation. Europhysics Letters, 17, 479.
  12. Guo, Z.L., Zheng, C.G. and Shi, B.C. (2002) Non-Equilibrium Extrapolation Method for Velocity and Pressure Boundary Conditions in the Lattice Boltzmann Method. Chinese Physics, 11, 366-374.


*Corresponding author.