You are on page 1of 15

Seminar

Lattice Boltzmann method


Author: Igor Mele
Mentor: prof. dr. Iztok Tiselj
Ljubljana, March 2013

Abstract
Lattice Boltzmann method is relatively new method in the field of computational fluid dynamics.
It has been derived from lattice gas automata and is still under development. Basic steps of the LBM
(collision, streaming, boundary conditions, macroscopic quantities) will be presented. Comparison
with the finite difference method that uses Navier-Stokes equation on a lid driven cavity benchmark
test will be made.

Contents
1 Introduction

2 Lattice gas

3 From LGA to LBM


3.1 BGK model equation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Equilibrium distribution function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4
5
6

4 Macroscopic quantities

5 Reynolds number

6 Lattice arrangements
6.1 Two-dimensional lattice arrangements . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8
8

7 Boundary conditions
7.1 Bounceback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8
9

8 Driven cavity 2D
10
8.1 Driven cavity with LBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
8.2 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
9 Conclusion

11

Introduction

In this seminar, a relatively new method in computational fluid dynamics will be presented. It is called
the lattice Boltzmann method (LBM). In the last 20 years, LBM developed into an alternative and
promising numerical scheme for simulating fluid flows [1].
Transport equations (for heat, mass, momentum) can be simulated on different scales. On a macroscopic scale, partial differential equations (PDE) like Navier-Stokes equation are used. This kind of
equations are difficult to solve analytically due to non-linearity, complicated geometry and boundary
conditions. With the help of numerical schemes like the finite difference method (FDM), finite volume
method (FVM), finite element method (FEM), PDE is converted to a system of algebraic equations. We
usually solve these equations iteratively until satisfying results are obtained.
The second approach is to simulate small particles on a microscopic scale. This is molecular dynamics.
The governing equation is the Hamiltons equation. With molecular dynamics, we have to identify the
location and velocity of each particle. But there would be simply too much data to handle in order to
simulate a problem that is interesting on a macroscopic scale (i.e. flow past an object). For example,
one liter of air contains about 1022 molecules. We dont have to know the position of every particle, the
important thing is the resultant effect [2], for example wind.
The lattice Boltzmann method closes gap between macro-scale and micro-scale. Method considers
behaviour of a collection of particles as a unit [2]. LBM is based on microscopic models and mesoscopic
kinetic equations. The fundamental idea of the LBM is to construct simplified kinetic models that
incorporate the essential physics of microscopic processes so that the macroscopic averaged properties
obey the desired macroscopic equations [1]. Reason, why simplified kinetic models can be used is that
the macroscopic dynamics of a fluid is the result of the collective behaviour of many microscopic particles
in the system [1]. The property of the collection of particles is represented by a distribution function
[2]. Reason, why LBM is becoming more and more popular in the field of CFD (exponential growth
of number of articles with LBM topic), is the fact that LBM is solved locally. It has high degree of
parallelization, hence it is ideal for parallel machines (computational clusters).
First, the inception of LBM will be explained 2. Next, the reason for transition from lattice gas to
LBM and its mainframe equation is written 3. Lattice models in two dimensions are presented in 6.
An important part in every numerical method are boundary conditions 7. LBM was tested with the
benchmark driven cavity problem and compared with the finite difference method 8.
2

Macroscopic scale - continuum


FDM, FVM, FEM...
Navier-Stokes equation

Mesoscopic scale
LBM
Boltzmann equation

Microscopic scale
Molecular dynamics
Hamiltons equation

Figure 1: Techniques of simulations on different scales. Adapted after [2].

Lattice gas

The lattice Boltzmann method has its roots in the lattice gas automata (LGA), kinetic model with
discrete lattice and discrete time. Starting from LGA on a hexagonal lattice, Frish, Hasslacher, and
Pomeau obtained correct Navier-Stokes equations for the first time [3]. This model is known as FHP
model. As said before, the lattice gas automata is constructed as simple particle dynamics in discretized
space and time. Consequently, all particle velocities are also discrete. So we have particles that can move
around, but only within lattice nodes. Lets introduce a set of boolean (true or false) variables
ni (x, t),

i = 0, ...M.

These variables will describe occupation of a particle. M is the number of directions of particle velocities
at each node. For example i = 0, ..., 6 for hexagonal lattice frequently used in LGA simulations.. Boolean
algebra has the advantage that it is without round-off errors. There can be either 0 or 1 particle at a
lattice node.
ni (x, t) = 0
ni (x, t) = 1

no particles at site x and time t


a particle is present at site x and time t

Also, an exclusion rule applies, forbidding two particles sitting on the same node. We can write down
the evolution equation of the LGA:
ni (x + ei t, t + 1) = ni (x, t) + i (n(x, t)),

i = 0, ...M,

where ei are local particle velocities, i is the collision operator, t is time step. Collision operator
contains all possible collisions. For example, in case of a hexagonal lattice, two-, three- and four-body
collisions are possible. There are scattering rules that bring proper dynamics to the system. i changes
occupation number due to collision at site i and can have values -1, 0, 1. Number -1 means that the
particle was destroyed, 0 leaves things unchanged and 1 means new particle is created. Boolean nature
is preserved. It is important to stress that interaction is completely local. Neighbouring sites do not
interact. Configuration of particles at each time step evolves in two sequential sub-steps:
streaming: each particle moves to the nearest node in the direction of its velocity
collision: particles arrive at a node and interact by changing their velocity directions according
to scattering rules
If we set the collision operator to zero, then we obtain an equation for streaming alone.
In figure 2 we see an example of head-on collision of two particles at three sequential times (t 1, t,
t + 1). At t 1 we have two incoming particles at sites 1 and 4. At site zero, all directions e1 to e6 are
empty. After the streaming process, these two particles collide at time t. Directions e1 and e4 are now
occupied. After collision at time t + 1 particles move according to scattering rules in directions e2 and
e5 . This is possible if e2 and e5 are empty. We can write the expression for this specific collision in form
n1 n4 n2 n5 ,
3

e3

t1

e2

e4

t+1

t
n1,4 = 1
n2,3,5,6 = 0

e1
e5

n1

e6

n2

n4
n5

t+1
n2,5 = 1
n1,3,4,6 = 0

Figure 2: FHP model with six velocity vectors left. Head-on collision of two particles at three sequential
times centre. Head-on collision with boolean values right.
where n5 means negation of n5 . This is one of the contributions to the . Between ns is boolean AND
function. If the expression has a value of 1, then collision is possible. For example in figure 2 we get
1100 1111 = 1.
So collision is possible.

From LGA to LBM

The main motivation for the transition from LGA to LBM was the desire to remove the statistical
noise by replacing particle occupation variables ni (boolean variables) with single particle distribution
functions
fk = hnk i.
These functions are an ensemble average of nk and real variables [1, 4]. nk can be 0 or 1 whereas fk
can be any real number between 0 and 1. In order to obtain the macroscopic behaviour of a system
(streamlines) in the LGA, one has to average the state of each cell over a rather large patch of cells (for
example a 32 32 square) and over several consecutive time steps [5]. With the replacement nk fk ,
noise is erased because fk is by definition an averaged, a smooth quantity [6]. On the other hand, we get
round-off errors. Now we will deal with the distribution function f (x, e, t). It depends on the position
F
t
x + dx

t + dt
F dt
e+m

x + edt

Figure 3: Phase diagram left. Position and velocity vector before and after applying force right. Adapted
after [2].
vector x, the velocity vector e and time t. f (x, e, t) represents the number of particles with mass m at
time t positioned between x + dx which have velocities between e + de. Now, we apply force F on these
particles. After time dt, position and velocity obtain new values.
position
velocity

x x + edt
F
e e + dt
m
4

If there is no collision, the number of particles before and after applying force stays the same:
f (x + edt, e +

F
dt, t + dt)dxde = f (x, e, t)dxde.
m

In case of collision between particles, then all dont arrive at new positions. The rate of change between
final and initial status of the distribution function is called collision operator . Evolution equation with
collisions now writes as
f (x + edt, e +

F
dt, t + dt)dxde f (x, e, t)dxde = (f )dxdedt.
m

By dividing the equation with dxdedt and in the limit dt 0 we can write
Df
= (f ).
dt
The above equation states that the total rate of change of the distribution function is equal to the rate
of the collision [2]. Lets expand Df
Df =

f
f
f
dx +
de +
dt,
x
e
t

and divide it by dt
Df
f dx f de f
=
+
+
,
dt
x dt
e dt
t
de
fraction dx
dt represents velocity e, fraction dt represents acceleration a, which can be written as
Finally we obtain
f
f
F f
+
e+
= (f ).
t
x
m e
We have derived the Boltzmann equation for a case without external forces (F = 0)

f
+ e f = (f ).
t

F
m.

(1)

Kinetic form stays the same as in LGA. We write it as


fk (x + ek t, t + t) = fk (x, t) + k (f (x, t)),

i = 0, ...M,

where t is a time increment, fk is the particle velocity distribution along the kth direction, or in another
words, fk is the fraction of the particles having velocities in the interval ek and ek + dek . In the LBM,
space is discretized in a way that is consistent with the kinetic equation, i.e. the coordinates of the
nearest neighbour nodes around x are x + ek t [1, 2].

3.1

BGK model equation

Collision operator k mentioned before is in general a complex non-linear integral. The idea is to
linearize the collision term around its local equilibrium solution. k is often replaced by the so-called
BGK (Bhatnagar, Gross, Krook, 1954 [7]) collision operator
1
k = (fk fkEQ ) ,

where is the rate of relaxation towards local equilibrium, fkEQ is equilibrium distribution function (for
the details see subsection 3.2). Collision operator is equivalent to the viscous term in the Navier-Stokes
equation. Rate of relaxation is constant for all ks. This scheme is called single-time relaxation scheme
(SRT). All nodes relax with the same time scale [6]. The Navier-Stokes equation can be recovered from
a Chapman-Enskog expansion [3]. This gives the kinematic viscosity in terms of the single relaxation
time


t 2
=
cs ,
2
5

Navier-Stokes equation

2
u
t + (u )u = p + u

Lattice Boltzmann equation


f
t

+ e f = 1 (f f EQ )

second-order PDE

first-order PDE

need to treat the non-linear convective term u u

avoids convective term,


convection becomes simple advection

need to solve Poisson equation for the pressure p

pressure p is obtained from equation of state

Table 1: Comparison between Navier-Stokes equation and lattice Boltzmann equation.

where cs = 13 x
t is the sound speed in the lattice, x is lattice spacing, t is time increment. Usually
both x and t are set to unity. After introducing the BGK approximation, the Boltzmann equation
(without external forces) can be written as
1
f
+ e f = (f f EQ ) .
t

The form of the Boltzmann equation in a specific direction would be


1
fk
+ ek fk = (fk fkEQ ) .
t

We could say that this equation is the heart of lattice Boltzmann method. It is the most popular kinetic
model and replaces Navier-Stokes equation in CFD simulations. The completely discretized equation
with the time step t and space step xk = ek t is
t
(fk fkEQ ) .
(2)

The main advantage of the above equation is simplicity. Adding the force term is also straightforward.
Equation 2 is usually solved in two sub-steps. Like in the case of LGA we have
fk (xk + ek t, t + t) = fk (xk , t)

t
collision step : fk (xk , t + t) = fk (xk , t)
(fk fkEQ ) ,

streaming step : fk (xk + ek t, t + t) = fk (xk , t + t).


Collision is not defined explicitly any more as in LGA. In the LBM, collision of the fluid particles is
considered as relaxation towards a local equilibrium [8]. During the computation, there is no need to
store both fk (xk , t + t) and fk (xk , t)[9].

3.2

Equilibrium distribution function

Equilibrium distribution function f EQ , which appears in the BGK collision operator, is basically an
expansion of the Maxwells distribution function for low Mach number M . We start with normalized
Maxwells distribution function
3 (eu)2
3 (ee) 3 (2euuu)
f=
e 2
=
e 2
e2
,
(3)
2/3
2/3
where u is macroscopic velocity of particles in a medium, e are velocity vectors in the specific lattice
model and is macroscopic mass density. Now we expand equation (3) for small velocities M = cus  1,
where cs represents speed of sound.


9
3 (ee)
3
e 2
(4)
f=
1 + 3(e u) (u u) + (e u)2 .
2/3
2
2
The expansion is done up to second order O(uu = u2 ) to match the order of the Navier-Stokes equation.
Here, the non-linearity of the collision operator is hidden. Equilibrium distribution function is of the
form


3
9
fkEQ = wk 1 + 3(ek u) (u u) + (ek u)2 ,
(5)
2
2
6

where k runs from 0 to M and represents available directions in the lattice, and wk are weighting factors
(look 6). The complete procedure of deriving equation (5) can be seen in [10].

Macroscopic quantities

We live in a macroscopic world and macroscopic quantities are of interest to us, whereas distribution functions are not as meaningful. Macroscopic quantities (velocity u, pressure p, mass density , momentum
density u, . . . ) are directly obtained by solving the Navier-Stokes equation. In the LBM, macroscopic
quantities are obtained by evaluating the hydrodynamic moments of the distribution function f [9].
Connections of the distribution function to macroscopic quantities for the density and momentum flux
are defined as follows
Z
(x, t) = m f (x, e, t)de,
Z
(x, t)u(x, t) = m f (x, e, t)ede.
In the discretized velocity space, the density and momentum fluxes can be evaluated as

8
X

fk =

k=0

u =

8
X

8
X

fkEQ ,

(6)

k=0

ek fk =

k=1

8
X

ek fkEQ .

(7)

k=1

Macroscopic fluid density (6) is defined as the sum of the distribution functions. Macroscopic velocity
(7) is an average of the microscopic velocities ek weighted by the directional densities fk . Mass m of
particles is set to 1.

Reynolds number

When we deal with incompressible flow, we cannot pass by the Reynolds number Re. Reynolds number is
non-dimensional unit and is used to characterize different flow regimes. Laminar at low Re and turbulent
at high Re. It is defined as
U0 L0
Re =
,
0
where U0 is characteristic velocity, L0 is characteristic length and 0 is kinematic viscosity. Kinematic
viscosity is obtained by dividing viscosity 0 with mass density 0 : 0 = 00 . It is convenient to rewrite
macroscopic quantities (length x0 , velocity u0 , kinematic viscosity 0 ) in dimensionless form:
xD =

x0
,
L0

uD =

u0
,
U0

D =

0
.
L0 U0

With dimensionless quantities Reynolds number is of form


Re =

UD LD
.
D

The final step is to discretize time and space. We denote tLBM as the time step and xLBM as the space
step in the lattice Boltzmann method. Dimensionless quantities in lattice units are written as
xLBM =

LD
,
N

uLBM =

tLBM
uD ,
xLBM

LBM =

tLBM
D ,
x2LBM

where N is number of nodes along characteristic direction. Reynolds number in lattice units is
Re =

ULBM N
.
LBM
7

f2
f3

f6

f2
f1

f3

f3
f1

f4

f1

f4

f5

f4

f5

f3

f0

f0

f2

f2
f1
f0

f6

f7

f4

f8

Figure 4: Two-dimensional lattice models. From left to right: D2Q4, D2Q5, D2Q7 and D2Q9.
As said before, xLBM is lattice spacing. How do we choose tLBM ? Error in the LBM because of
compressibility scales like Mach number squared M 2 , where M = uLBM /cs . It follows that (M )
(tLBM/xLBM)2 . LBM is also second-order accurate in space (xLBM) xLBM2 . If we keep both errors
at the same order (M ) (xLBM ) then we obtain relation between time and space step t x2
[11].
In practical applications, the macroscopic Re should be equal to the LBM Re number. For better
understanding, lets make an example with the driven cavity problem (see 8). Square cavity of 1 m
side is filled with honey at room temperature. Kinematic viscosity of honey is 0 = 0.03 m2 /s. Flow
is driven by a moving top wall with a velocity of 3 m/s. We calculate Reynolds number Re = 100. In
dimensionless representation, length and velocity of the top wall become 1, kinematic viscosity is then
D = 0.01. Next we discretize cavity by a N N = 100 100 mesh. Velocity of the top wall in the
lattice units is ULBM = 0.01 and the kinematic viscosity LBM = 0.01. Re number in the LBM remains
at a value of 100. If we use a mesh with more nodes (for example 200 200), then we have to rescale
velocity or viscosity in order to keep Re constant.

Lattice arrangements

In this section two-dimensional lattice arrangements used in the LBM will be presented. The common
terminology is to refer to the dimension of the problem and the number of velocity vectors - DnQm.
Where n represents the dimension of a problem and m refers to the speed model (number of linkages of
a node) [2].
It is also worth mentioning, that nodes in different positions regarding to the central node have
appropriate weighting factors wk . Values of these factors depend on the distance from central node,
which has the highest value. Weighing factors are an important part in the calculation of equilibrium
distribution function. The normalization condition for the weights is
X
wk = 1.
k

6.1

Two-dimensional lattice arrangements

D2Q9 has been widely and successfully used for simulations of two-dimensional flows. We can describe
it as nine-velocity square lattice model. It is a bit more demanding from a computational aspect than
the hexagonal D2Q7 model, but it is more accurate. It has to be stressed, that for fluid flow problems,
where non-linear term in Navier-Stokes equation is important, the D2Q4 or D2Q5 model is not appropriate because of insufficient lattice symmetry. It fails to achieve basic symmetry of the NS equation rotational invariance. In plain words, hexagon is good enough to replace a circle, whereas a square is
not. Consequently the lattice Boltzmann equation cannot recover the correct Navier-Stokes equation on
inappropriate lattices [1, 2, 6].

Boundary conditions

Boundary conditions are an important part in computational fluid dynamics and no application can be
discussed without specifying them. In the Navier-Stokes equation, boundary conditions are relatively
8

Model

fk (wk )

D2Q4
D2Q5
D2Q7
D2Q9

(1, 0), (0, 1)


(0, 0), (1, 0), (0, 1)

(0, 0), (1, 0), ( 12 , 23 )


(0, 0), (1, 0), (0, 1), (1, 1)


f1,2,3,4 14

1
f0 64 , f1,2,3,4 12


1
f0 21 , f1,...,6
12


4
1
9 , f1,2,3,4 9 , f5,6,7,8

f0

1
36

Table 2: Two-dimensional lattice models with corresponding velocity vectors e, distribution functions fk
and weighting factors wk .

easy to implement. This is not the case for LBM, where we have to determine appropriate equations for
calculating distribution functions f at the boundaries for a given boundary condition [2]. Bounceback
scheme for the D2Q9 model will be presented in the next subsection.

7.1

Bounceback

Bounceback is used to model solid stationary or moving boundary condition, non-slip condition, or flow
over obstacles. Name implies that a particle coming towards the solid boundary bounces back into the
flow domain [2]. Two different schemes are suggested regarding the position of the solid wall. One suggest
to place a solid in the middle of the lattice nodes. Other suggest placing a solid on the nodes. It has
been shown, that the first scheme is second-order in numerical accuracy, whereas the second scheme is
only first-order [12]. If we want particles to bounce back from a solid, we have to change certain values of
SOLID
FLUID

f7

f4

f8
f6
f3

f5
f7

f1
f8
f6

f2

f5
FLUID
SOLID

Figure 5: Unknown f s on all four walls.


distribution functions fk . For example, we focus on the bottom boundary. There is no streaming from a
solid, so we have three unknown distribution functions f5 , f2 and f6 . Bounce-back is simply performed
with next equations
f5 = f7 , f2 = f4 , f6 = f8 .
Particles bounce back to the node from which they were originally streamed. It is important, that
streaming process is executed before applying boundary conditions. Conservation of mass and momentum
at the boundary is ensured [2]. Bounce-back works great in complicated geometries, for example flow
over obstacle. All we need to do, is specify a particular node as solid and apply boundary conditions.

f5
f2

Pre-stream [t]

Post-stream [t]

Bounce-back [t]

f6

f5

FLUID

f8

f6

f4

SOLID

FLUID

f2

SOLID

f7

Post-stream [t + t]

f8
f4
f7

Figure 6: Bounce back on south boundary with boundary in the middle of the lattice nodes. Adapted
after [8].

Driven cavity 2D
v = 0.0

u = 0.0,

u = 0.0,

v = 0.0

v = 0.0

u = 1.0,

u = 0.0,

v = 0.0

Figure 7: Geometry of lid driven cavity .


Lid driven cavity is one of the most common benchmark test problems. Benchmark tests are used to
test CFD codes for their accuracy, numerical efficiency, . . . The simplicity of the geometry of the cavity
flow makes the problem easy to code and apply boundary conditions [13]. A square cavity is filled with
an incompressible fluid, which is governed by the Navier-Stokes equations. Flow is driven by the moving
top wall. Velocities at other boundaries are set to zero. Non-slip boundary conditions are applied on
all four walls. A characteristic of the two dimensional cavity flow is emergence of primary vortex in the
centre of cavity. With higher Re, secondary vortices appear in the lower corners.

8.1

Driven cavity with LBM

In the beginning, we set all velocities to zero, except for the x-component velocity on the north boundary.
Collision and streaming step are performed at every node of the grid. Next we apply boundary conditions.
Simple bounceback is used on all walls except on the north wall, where we use following equations for
moving boundaries proposed by Zou and He [14]
N
f4
f7
f8

= f0 + f1 + f3 + 2(f2 + f6 + f5 ),
= f2 ,
1
1
= f5 + (f1 f3 ) N uN ,
2
2
1
1
= f6 + (f3 f1 ) + N uN .
2
2

Last step is to calculate macroscopic quantities. Iteration is performed until the stationary state is
achieved. If we increase lattice size, more iteration steps are required.
10

INITIALIZE

COLLISION
fk (xk , t + t)
STREAMING
fk (xk + ek t, t + t)
BOUNDARY
CONDITIONS
MACROSCOPIC
QUANTITIES

RESULT

Figure 8: Scheme of the LBM algorithm.

8.2

Results

The results presented here, were obtained with the lattice Boltzmann method and finite difference
method. The main goal was to test LBMs numerical accuracy on a lid driven cavity problem. Numerical simulations were carried out for Re=10, 100, 400, 1000, 2000 and 7500. For these Re numbers,
steady-state solutions exist.
Figures 9(a)-9(f) show plots of the stream function for different Re numbers. These plots give a clear
picture of the overall flow pattern and the effect of the Re number on the structure of the steady vortices
in the cavity. The large primary vortex appear near the centre of the cavity. In the lower corners, two
counter-rotating secondary vortices of much smaller strength also appear. With higher Re, secondary
vortices start to grow. At Re=2000, the third secondary vortex appears in the upper left corner. For
Re5000 the tertiary vortex in the lower right corner appears. It has again the same rotation as the
central (primary) vortex.
We can also observe moving of the centre of the primary vortex. As Re increases, centre moves
towards the geometrical centre of the cavity. After Re=5000, the centre movement stops and it becomes
fixed.
Velocity profiles along a horizontal (figure 10(a)) and vertical (figure 10(b)) centreline are presented.
We can see that for low Re numbers, the velocity profile is curved. At higher Re, curvature starts to
disappear. The profile becomes linear in the most part of the cavity. Linear profiles in the central core
indicate the uniform vorticity region generated in the cavity at higher Re numbers [15].
Figures 11 and 12 show velocity a profile obtained by LBM and FDM. They show good agreement
between two completely different methods. Maximal difference is around 1% at Re=1000 and around
0,5% at Re=400. We can say that the difference is within the numerical uncertainty of the solutions
using other numerical methods.
Since there is no analytical solution for the driven cavity problem, one has to compare results with
other authors. It is difficult to give a detailed answer which method is more accurate.
Tables 3 and 4 give numerical comparison of vortex centre positions at different Reynolds numbers.
Benchmark solutions in [16, 17] were obtained by solving Navier-Stokes equations, in [15] LBM was used.
My values show good agreement with those reported in previous studies. Perhaps, at low Re numbers
difference is a bit larger. A possible reason is that number of iterations was too low and consequently
system did not reach a complete steady state.

Conclusion

The lattice Boltzmann method is a new and promising method for computational fluid dynamics. In
this seminar, only the isothermal single phase problem (driven cavity) was presented. LBM can do
much more. For example non-isothermal problems, multiphase flows, granular flows, viscoelastic flows,
simulations in porous media as example of complicated boundary conditions, ...

11

(a) Re=10.

(b) Re=100.

(c) Re=400.

(d) Re=1000.

(e) Re=2000.

(f) Re=7500.

Figure 9: Stream function of driven cavity problem for different Reynolds numbers.

12

R e =
R e =
R e =
R e =
R e =
R e =
R e =
R e =

0 ,6

0 ,2

0 ,0

1 0 0
4 0 0
5 0 0
1 0 0
2 0 0
5 0 0
7 5 0

1 ,0

0 ,5

0
0
0

0 ,0

R e =
R e =
R e =
R e =
R e =
R e =
R e =
R e =

V e r tic a l v e lo c ity , Y = 0 .5

0 ,4

1 0

-0 ,2
-0 ,5

-0 ,4
-1 ,0

-0 ,6
-1 ,0

-0 ,5

0 ,0

0 ,5

1 ,0

-0 ,4

-0 ,2

0 ,0

0 ,2

0 ,4

0 ,6

1 0
1 0 0
4 0 0
5 0 0
1 0 0
2 0 0
5 0 0
7 5 0
0
0
0
0

0 ,8

1 ,0

H o r iz o n ta l v e lo c ity , X = 0 .5

v
.
U0

(a) Normalized vertical velocity

u
.
Uo

(b) Normalized horizontal velocity

Figure 10: Velocity profiles for different Re numbers along the horizontal centreline (a) and along the
vertical centreline (b).

1 ,0

1 ,0

R e =
R e =
R e =
R e =

0 ,8

4 0 0
4 0 0
1 0 0
1 0 0

L B M
F D M
0 L B M
0 F D M

R e = 4 0 0
R e = 1 0 0 0

0 ,8

0 ,6

0 ,6

0 ,4

0 ,4

0 ,2

0 ,2

0 ,0

0 ,0
-0 ,4

-0 ,2

0 ,0

0 ,2

0 ,4

0 ,6

0 ,8

-0 ,0 0 8

1 ,0

-0 ,0 0 6

-0 ,0 0 4

(a) Normalized horizontal velocity


son between LBM and FDM.

-0 ,0 0 2

0 ,0 0 0

0 ,0 0 2

0 ,0 0 4

0 ,0 0 6

0 ,0 0 8

D iffe r e n c e L B M - F D M

H o r iz o n ta l v e lo c ity , X = 0 .5

u
.
U0

(b) Difference between LBM and FDM.

Compari-

Figure 11: Actual velocity profiles obtained from LBM and FDM (a) and difference between numerical
values at two Reynolds numbers (b).

0 ,0 1 2

0 ,4

R e =
R e =
R e =
R e =

0 ,3

L B M
F D M
0 L B M
0 F D M

R e = 4 0 0
R e = 1 0 0 0

0 ,0 1 0
0 ,0 0 8
0 ,0 0 6

D iffe r e n c e L B M - F D M

V e r tic a l v e lo c ity , Y = 0 .5

0 ,2

4 0 0
4 0 0
1 0 0
1 0 0

0 ,1
0 ,0
-0 ,1
-0 ,2

0 ,0 0 4
0 ,0 0 2
0 ,0 0 0
-0 ,0 0 2
-0 ,0 0 4

-0 ,3

-0 ,0 0 6
-0 ,4

-0 ,0 0 8
-0 ,5

-0 ,0 1 0
0 ,0

0 ,1

0 ,2

0 ,3

0 ,4

0 ,5

0 ,6

0 ,7

0 ,8

0 ,9

0 ,0

1 ,0

(a) Normalized vertical velocity


between LBM and FDM.

0 ,2

0 ,4

0 ,6

0 ,8

1 ,0

X
X

v
.
U0

Comparison

(b) Difference between LBM and FDM.

Figure 12: Actual velocity profiles obtained from LBM and FDM (a) and difference between numerical
values at two Reynolds numbers (b).

13

Primary vortex
Re
100

400

1000

5000

7500

Lower left vortex

Lower right vortex

0.6188

0.7357

0.0375

0.0313

0.9375

0.0563

0.6172

0.7344

0.0313

0.0391

0.9453

0.0625

0.6196

0.7373

0.0392

0.0353

0.9451

0.0627

0.6157

0.7411

0.0337

0.0342

0.9412

0.0588

0.5563

0.6000

0.0500

0.0500

0.8875

0.1188

0.5547

0.6055

0.0508

0.0469

0.8906

0.1250

0.5608

0.6078

0.0549

0.0510

0.8902

0.1255

0.5490

0.6040

0.0470

0.0514

0.8784

0.1176

0.5438

0.5625

0.0750

0.0813

0.8625

0.1063

0.5313

0.5625

0.0859

0.0781

0.8594

0.1094

0.5333

0.5647

0.0902

0.0784

0.8667

0.1137

0.5216

0.5647

0.0877

0.0757

0.8510

0.1059

0.5125

0.5313

0.0625

0.1563

0.8500

0.0813

0.5117

0.5352

0.0703

0.1367

0.8086

0.0742

0.5176

0.5373

0.0784

0.1373

0.8078

0.0745

0.5137

0.5333

0.0725

0.1376

0.8000

0.0706

0.5117

0.5322

0.0645

0.1504

0.7813

0.0625

0.5176

0.5333

0.0706

0.1529

0.7922

0.0667

0.5137

0.5333

0.0645

0.1536

0.7843

0.0627

Table 3: Locations of vortices of the lid-driven cavity flow at different Reynolds numbers. A, Vanka [17];
B, Ghia et al [16]; C, Hou et al [15]; D present work.

Upper left
Re
5000

7500

0.0625

0.9102

0.0667

0.9059

0.0644

0.9082

0.0664

0.9141

0.0706

0.9098

0.0677

0.9110

Table 4: Locations of vortices of the lid-driven cavity flow at different Reynolds numbers. B, Ghia et al
[16]; C, Hou et al [15]; D present work.

14

References
[1] S. Chen, G. Doolen: Lattice Boltzmann method for fluid flows, Annu. Rev. Fluid Mech. 30, 329-364,
(1998).
[2] A. A. Mohamad: Lattice Boltzmann method, Springer-Verlag London, (2011).
[3] U. Frish, B. Hasslacher, Y. Pomeau: Lattice gas automata for the Navier-Stokes equation, Phys.
Rev. Lett. 56, 1505-1508, (1986).
[4] http://en.wikipedia.org/wiki/Lattice_Boltzmann_methods (3. 9. 2012)
[5] B. Chopard, P. Luthi, A. Masselot: Cellular Automata and Lattice Boltzmann Techniques, University
of Geneva, (1998).
[6] S. Succi: The lattice Boltzmann Equation for Fluid Dynamics and Beyond, Oxford University Press,
(2001).
[7] P. L. Bhatnagar, E. P. Gross, M. Krook: A Model for Collision Processes in Gases. I. Small
Amplitude Processes in Charged and Neutral One-Component Systems, Phys. Rev. 94, 511-525,
(1954).
[8] M. C. Sokup, D. T. Thorne: Lattice Boltzmann Modeling, Springer-Verlag Berlin Heidelberg, (2006).
[9] D. Yu, R. Mei, L. Luo, W. Shyy: Viscous flow computations with the method of lattice Boltzmann
equation, Progress in Aerospace Sciences 39, 329-367, (2003).
[10] X. He, L. Luo: Theory of the lattice Boltzmann method: From the Boltzmann equation to the lattice
Boltzmann equation, Phys. Rev. E 56, 6811-6817, (1997).
[11] J. Latt: Choice of Units in Lattice Boltzmann Simulations, technical report, LBMethod.org, (2008).
[12] D. P. Ziegler: Boundary conditions for lattice Boltzmann simulations, J. Stat. Phys. 71, 1171-1177,
(1993).
[13] E. Erturk: Discussions On Driven Cavity Flow, Int. J. Numer. Meth. Fluids 60, 275-294, (2009).
[14] Q. Zou, X. He: On pressure and velocity flow boundary conditions and bounceback for the lattice
Boltzmann BGK model, Phys. Fluids 9, 1591-1598, (1997).
[15] S. Hou, Q. Zou, S. Chen, G. Doolen, A. Cogley: Simulation of Cavity Flow by Lattice Boltzmann
Method, J. Comput. Phys. 118, 329-347, (1995).
[16] U. Ghia, K. N. Ghia, C. T. Shin: High-Re solutions for incompressible flow using the Navier-Stokes
equations and a multigrid method, J. Comput. Phys. 48, 387-411, (1982).
[17] S. P. Vanka: Block-implicit multigrid solution of Navier-Stokes equations in primitive variables, J.
Comput. Phys. 65, 138-158, (1986).

15

You might also like