Top Banner
Straight velocity boundaries in the lattice Boltzmann method Jonas Latt and Bastien Chopard University of Geneva, Geneva, Switzerland Orestis Malaspinas, Michel Deville, and Andreas Michler Ecole Polytechnique F´ ed´ erale de Lausanne, Lausanne, Switzerland (Dated: April 8, 2008) Various ways of implementing boundary conditions for the numerical solution of the Navier-Stokes equations by a lattice Boltzmann method are discussed. Five commonly adopted approaches are re- viewed, analyzed and compared, including local and non-local methods. The discussion is restricted to velocity Dirichlet boundary conditions, and to straight on-lattice boundaries which are aligned with the horizontal and vertical lattice directions. The boundary conditions are first inspected an- alytically by applying systematically the results of a multi-scale analysis to boundary nodes. This procedure makes it possible to compare boundary conditions on an equal footing, although they were originally derived from very different principles. It is concluded that all five boundary condi- tions exhibit second-order accuracy, consistent with the accuracy of the lattice Boltzmann method. The five methods are then compared numerically for accuracy and stability through benchmarks of two-dimensional and three-dimensional flows. None of the methods is found to be throughout supe- rior to the others. Instead, the choice of a best boundary condition depends on the flow geometry, and on the desired trade-off between accuracy and stability. From the findings of the benchmarks, the boundary conditions can be classified into two major groups. The first group comprehends boundary conditions that preserve the information streaming from the bulk into boundary nodes and complete the missing information through closure relations. Boundary conditions in this group are found to be exceptionally accurate at low Reynolds number. Boundary conditions of the second group replace all variables on boundary nodes by new values. They exhibit generally much better numerical stability and are therefore dedicated for use in high Reynolds number flows. PACS numbers: 47.11.-j, 05.20.Dd I. INTRODUCTION The lattice Boltzmann (LB) method has established itself as a a tool with growing acceptance for the numeri- cal simulation of fluid flows. However, in spite of several important breakthroughs in the past decades, many as- pects of the method have been analyzed only recently. A variety of radically different approaches is consequently found in the literature, and a general consensus on spe- cific implementation issues is often lacking. Even such a common topic as the implementation of boundary con- ditions is not treated in a unified manner. This state of affairs raises numerous difficulties, from the choice of an appropriate boundary condition to the evaluation of the numerical error. A selection of commonly used boundary conditions is therefore reviewed under a common light and compared in the present paper. The review concen- trates on the implementation of Dirichlet velocity bound- ary conditions, which prescribe a given velocity profile along boundaries of the numerical domain. Furthermore, * Currently at Mathematics Department, Tufts University (USA). Electronic address: [email protected] Currently at Institute of Aerodynamics and Flow Technology, Ger- man Aerospace Center, Braunschweig (Germany). only straight boundaries are considered that traverse the nodes of the numerical grid, and which are aligned with the main directions of the grid. Lattice Boltzmann models do not directly simulate the evolution of the flow velocity. Instead, they calculate the dynamics of particle populations which stem from a microscopic description of the fluid. While the macro- scopic pressure and velocity fields are easily calculated from the particle populations, the reverse procedure is more contrived. Thus, implementing a velocity condi- tion on straight boundaries boils down to finding a way to translate from macroscopic flow variables to particle populations. This problem has been approached by au- thors from different viewpoints, some of them based on the kinetic theory of gases, and some of them on a hy- drodynamic description of fluids. Although the numerical scheme of the LB method is derived from microscopic physics, it is able to recover ac- curate solutions of the macroscopic Navier-Stokes equa- tions. This can be shown in various ways through an asymptotic analysis, in which particle populations are formally related to macroscopic flow variables. An anal- ysis of this type is however not always conducted in the literature for boundary conditions, and only little is known about their hydrodynamic limit. In the present article, the boundary conditions are therefore inspected with help of a Chapman-Enskog multi-scale analysis (see
29

Straight velocity boundaries in the lattice Boltzmann method

May 13, 2023

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Straight velocity boundaries in the lattice Boltzmann method

Straight velocity boundaries in the lattice Boltzmann method

Jonas Latt∗ and Bastien Chopard†

University of Geneva,

Geneva, Switzerland

Orestis Malaspinas, Michel Deville, and Andreas Michler‡

Ecole Polytechnique Federale de Lausanne,

Lausanne, Switzerland

(Dated: April 8, 2008)

Various ways of implementing boundary conditions for the numerical solution of the Navier-Stokesequations by a lattice Boltzmann method are discussed. Five commonly adopted approaches are re-viewed, analyzed and compared, including local and non-local methods. The discussion is restrictedto velocity Dirichlet boundary conditions, and to straight on-lattice boundaries which are alignedwith the horizontal and vertical lattice directions. The boundary conditions are first inspected an-alytically by applying systematically the results of a multi-scale analysis to boundary nodes. Thisprocedure makes it possible to compare boundary conditions on an equal footing, although theywere originally derived from very different principles. It is concluded that all five boundary condi-tions exhibit second-order accuracy, consistent with the accuracy of the lattice Boltzmann method.The five methods are then compared numerically for accuracy and stability through benchmarks oftwo-dimensional and three-dimensional flows. None of the methods is found to be throughout supe-rior to the others. Instead, the choice of a best boundary condition depends on the flow geometry,and on the desired trade-off between accuracy and stability. From the findings of the benchmarks,the boundary conditions can be classified into two major groups. The first group comprehendsboundary conditions that preserve the information streaming from the bulk into boundary nodesand complete the missing information through closure relations. Boundary conditions in this groupare found to be exceptionally accurate at low Reynolds number. Boundary conditions of the secondgroup replace all variables on boundary nodes by new values. They exhibit generally much betternumerical stability and are therefore dedicated for use in high Reynolds number flows.

PACS numbers: 47.11.-j, 05.20.Dd

I. INTRODUCTION

The lattice Boltzmann (LB) method has establisheditself as a a tool with growing acceptance for the numeri-cal simulation of fluid flows. However, in spite of severalimportant breakthroughs in the past decades, many as-pects of the method have been analyzed only recently. Avariety of radically different approaches is consequentlyfound in the literature, and a general consensus on spe-cific implementation issues is often lacking. Even such acommon topic as the implementation of boundary con-ditions is not treated in a unified manner. This state ofaffairs raises numerous difficulties, from the choice of anappropriate boundary condition to the evaluation of thenumerical error. A selection of commonly used boundaryconditions is therefore reviewed under a common lightand compared in the present paper. The review concen-trates on the implementation of Dirichlet velocity bound-ary conditions, which prescribe a given velocity profilealong boundaries of the numerical domain. Furthermore,

∗Currently at Mathematics Department, Tufts University (USA).†Electronic address: [email protected]‡Currently at Institute of Aerodynamics and Flow Technology, Ger-man Aerospace Center, Braunschweig (Germany).

only straight boundaries are considered that traverse thenodes of the numerical grid, and which are aligned withthe main directions of the grid.

Lattice Boltzmann models do not directly simulate theevolution of the flow velocity. Instead, they calculatethe dynamics of particle populations which stem from amicroscopic description of the fluid. While the macro-scopic pressure and velocity fields are easily calculatedfrom the particle populations, the reverse procedure ismore contrived. Thus, implementing a velocity condi-tion on straight boundaries boils down to finding a wayto translate from macroscopic flow variables to particlepopulations. This problem has been approached by au-thors from different viewpoints, some of them based onthe kinetic theory of gases, and some of them on a hy-drodynamic description of fluids.

Although the numerical scheme of the LB method isderived from microscopic physics, it is able to recover ac-curate solutions of the macroscopic Navier-Stokes equa-tions. This can be shown in various ways through anasymptotic analysis, in which particle populations areformally related to macroscopic flow variables. An anal-ysis of this type is however not always conducted inthe literature for boundary conditions, and only little isknown about their hydrodynamic limit. In the presentarticle, the boundary conditions are therefore inspectedwith help of a Chapman-Enskog multi-scale analysis (see

Page 2: Straight velocity boundaries in the lattice Boltzmann method

2

e.g. Refs. [1–3]), which relates the lattice Boltzmannmodel to the equations of a weakly compressible fluid.The results of this analysis are reproduced in SectionII B. Other approaches could however also be consid-ered for this study. The reader is for example pointedto the asymptotic analysis presented in Ref. [4], in whichthe LB model is directly related to the incompressibleNavier-Stokes equations.

The article starts with an overview of the widelyused lattice Boltzmann Bhatnagar-Gross-Krook (BGK)method [1, 2, 5], which is abbreviated as LBGK. Af-ter this, the article introduces five different boundaryconditions that can be found in the literature. Somewell-known properties of the LB method are repeatedto make this presentation accessible even to an audienceless familiar with this model. A set of two-dimensional(2D) and three-dimensional (3D) benchmarks is finallydescribed, which challenge the LBGK method with eachof these boundary conditions as a numerical solver forthe incompressible Navier–Stokes equations.

Aiming at a succinct comparison between differentboundary conditions, the review purposely avoids to ad-dress advanced topics, such as the implementation of off-lattice boundaries, or the treatment of complex fluids. Inparticular, fluid compressibility effects are not analyzedin the benchmark section, although the LBGK methodis able to simulate weakly compressible isothermal flows[2, 3, 16]. Terms related to fluid compressibility are how-ever accounted for in the theoretical discussion of theboundary conditions.

II. THEORETICAL BACKGROUND

A. The LBGK method

Lattice Boltzmann simulations are executed on a reg-ular grid. The state of the system consists of q variablesfi, i = 0 · · · q − 1 on each grid node, called particle pop-ulations. The topology of a lattice is defined by q latticevectors ci, i = 0 · · · q − 1. Thus, a node attributed tothe space location r finds its neighbors at the locationr + ci. Figure 1 displays these vectors for the D2Q9 lat-tice, a common candidate for the implementation of 2Dsimulations [3, 6].

The hydrodynamic variables on each node are definedas moments of the particle populations. The particledensity ρ stands for the moment of order 0, and the fluidmomentum ρu for the moment of order 1:

ρ =

q−1∑

i=0

fi and (1)

ρu =

q−1∑

i=0

cifi. (2)

The moment of order 2 yields the tensor Π, and the

c1

c2

c3 c4 c5

c6

c7c8

x

y

FIG. 1: Lattice vectors for D2Q9. An additional vector withzero components c0 = (0, 0) is defined, which denotes a restparticle population.

moment of order 3 the tensor R:

Π =

q−1∑

i=0

cicifi and (3)

R =

q−1∑

i=0

cicicifi. (4)

These moments can be related to hydrodynamic flowvariables through a multi-scale analysis. In particular,the tensor Π is proportional to the strain rate (see Sec-tion II B). Equations (3) and (4) use a tensor notationwithout explicit space indexes. In a d-dimensional space,Eq. (3) denotes for example d2 scalar equations, which in

full index notation are written as Παβ =∑q−1

i=0 ciαciβfi,for α, β = 1 · · ·d.

These vectors and tensors, as well as all other expres-sions in this article, are written in a system of latticeunits. In this system, the time interval between two iter-ation steps and the lateral or horizontal spacing betweentwo grid nodes are unity. The speed of sound cs in in-compressible fluids is a constant depending on the lattice.An important corollary of this is that the Mach numberMa = U/cs of a fluid is proportional to a characteristicfluid velocity U , expressed in lattice units. LB modelscan be used in a low Mach-number regime to simulateincompressible flows. In that case, the pressure p of thefluid is related to the particle density through the equa-tion of state for an ideal gas:

p = c2sρ. (5)

A LB iteration takes the system from a discrete timestep t to t + 1 and consists of two steps. The collisionstep evaluates first a collision operator Ω on each latticenode, and takes the particle populations fi to their post-collision value f ′

i . This operator is local to each node:

f ′i(r, t) = Ωi(f0(r, t), f1(r, t), · · · fq−1(r, t)). (6)

Page 3: Straight velocity boundaries in the lattice Boltzmann method

3

The collision is followed by a streaming step, which takesthe post-collision variables to a neighbor node deter-mined by the corresponding lattice vector:

fi(r + ci, t + 1) = f ′i(r, t). (7)

LB models possess exact mass and momentum conserva-tion laws which are not subject to numerical approxima-tion. This is expressed by the fact that the pre-collisionpopulations fi and their post-collision counterparts f ′

i

yield the same mass and momentum. Thus,

i

Ωi = 0 and (8)

i

ciΩi = 0. (9)

The common LBGK model [1, 2, 5] approximates thecollision operator as a relaxation of the particle popula-tions to a local equilibrium distribution feq

i , which de-pends only on the value of ρ and u:

Ωi = −ω(fi − feqi (ρ, u)). (10)

The parameter ω determines the inverse time scale of therelaxation process. Through the multi-scale analysis inthe next section, this parameter can be formally relatedto the kinematic shear viscosity ν of the fluid:

ν = c2s

(

1

ω− 1

2

)

. (11)

The local equilibrium depends only on the macroscopicvariables ρ and u. It can be viewed as a truncated ex-pansion of the Maxwell-Boltzmann distribution and iswritten as

feqi (ρ, u) = ρti

(

1 +1

c2s

ci · u +1

2c4s

Qi : uu

)

. (12)

The scalar product between two vectors is denoted by asingle dot (·), and the contraction between two tensors bya colon (:). The tensors Qi are defined as Qi = cici−c2

sI

for i = 0 · · · q − 1, where I is the identity. The scalars tiare lattice weights that account for the varying lengthsof the lattice vectors ci. Thus, a lattice is fully definedby means of the lattice vectors ci, the lattice weightsti, and the speed of sound cs. The benchmarks in thispaper make use of the 2D lattice D2Q9 and the 3Dlattice D3Q19. On the D2Q9 lattice, with the order-ing of indexes used in Fig. 1, the lattice weights aret0 = 4/9, ti = 1/9 for i ∈ 2, 4, 6, 8 and ti = 1/36for i ∈ 1, 3, 5, 7. The speed of sound on this lattice isdefined as c2

s = 1/3. The lattice-specific constants for theD3Q19 lattice can be found for example in Refs. [3, 6].

A remarkable property of the equilibrium distributionis that it possesses the same momenta as the particle

populations for the conserved variables ρ and ρu:

ρ =

q−1∑

i=0

feqi and (13)

ρu =

q−1∑

i=0

cifeqi . (14)

B. Multi-scale analysis

Through a multi-scale Chapman-Enskog analysis ofthe LBGK model, it can be shown that the macroscopicvariables defined in Eqs. (1) and (2) obey the Navier–Stokes equation for a weakly compressible fluid. Only theresults of this analysis are shown here, and the reader isreferred to Refs. [1–3] for more details. In this analysis,the LB dynamics is developed into a truncated Taylorseries in space and time, up to second order accuracy.Furthermore, to separate physical phenomena happeningat different scales, the particle populations are expandedinto a power-law series with respect to a small parameterε ≪ 1: fi =

∑∞k=0 εkfk

i . The two first terms, of orderO(ε0) and order O(ε1), are sufficient to recover asymptot-ically the dynamics of the Navier–Stokes equation. Thus,the approximation

fi = f(0)i + εf

(1)i + O(ε2) (15)

is made. The same approximation is applied to developthe time derivative over two scales:

∂t = ε∂t1 + ε2∂t2 + O(ε3). (16)

Space derivatives are analyzed at a single scale:

∇ = ε∇1 + O(ε2). (17)

The parameter ε is used in analytical developments toformally separate time scales, but it is skipped in theremaining of this article to enhance readability. Theasymptotic and scale separated form of the mass andmomentum conservation laws in Eqs. (9) and (8) can bewritten as follows:

∂tρ + ∇ · (ρu) = 0 and (18a)

∂t(ρu)+

∇ ·(

Π(0) + Π

(1) +1

2

(

∂tΠ(0) + ∇ · R(0)

)

)

= 0,

(18b)

where the operator ∇· denotes a divergence on the lastindex of the involved tensors. The tensors Π

(0), Π(1),

and R(0) are velocity moments equivalent to those de-fined by Eqs. (3) and (4), but evaluated on the com-

ponents f(0)i and f

(1)i of the particle populations. The

Page 4: Straight velocity boundaries in the lattice Boltzmann method

4

nature of the physics described by the momentum equa-tion, Eq. (18b), depends on the form of these tensors. In

the case of the LBGK model, the component f(0)i of the

particle populations is equal to the equilibrium distribu-tion:

f(0)i = feq

i (ρ, u). (19)

Assuming a low Mach-number regime, Eqs. (18a) and(18b) are then equivalent to the Navier–Stokes equationsfor a weakly compressible fluid with fixed bulk viscosity.The terms in the multi-scale analysis are approximatedwith finite series of second order, which leads to the con-clusion that the LB method is second-order accurate inspace and time for the numerical simulation of weaklycompressible fluids.

Although this is not the point of view adopted in thepresent paper, we also point the reader to an alternativetheoretical framework in which the LB model is viewedas a discrete analogue of the continuum Boltzmann equa-tion with a BGK collision term [7]. This discretizationis again second-order accurate, even though the explicittime stepping scheme of Eq. (7) seems to indicate first-order accuracy in time. As it is shown in Ref. [8], thestreaming operator of the Boltzmann equation can be ap-proximated by a second-order accurate trapezoidal rule,after which the resulting implicit scheme is recast intothe explicit LBGK model by an appropriate change ofvariables.

It is interesting to point out that the terms of orderO(ε0) in Eq. (18b) yield the Euler equation, and that theviscous contributions to the dynamics are determined bythe O(ε1) tensor Π

(1). During the implementation of aboundary condition, it is not only central that boundarynodes implement an appropriate value of ρ and u, whichdetermines the form of the equilibrium distribution, andthus the O(ε0) Euler components of the dynamics. Ashas been pointed out previously among others in Ref.[9], it is also crucial that the first-order tensor Π

(1) isimplemented correctly to ensure a proper representationof fluid viscosity. The multi-scale analysis is helpful tounderstand the relation between the O(ε1) terms compo-nents of LB models and the macroscopic variables. For

the LBGK model, the value of f(1)i reads

f(1)i = − ti

c2sω

(

Qi : ρ∇u − ci∇ : ρuu

+1

2c2s

(ci · ∇)(Qi : ρuu))

. (20)

It contains a dominating term proportional to u and twoterms scaling as the square of u which are less importantat low Mach numbers. They cancel for symmetry reasonsduring the evaluation of the tensor Π

(1):

Π(1) = −2c2

s

ωρS, (21)

where S is the strain rate tensor:

S =1

2

(

∇u + (∇u)T)

. (22)

As terms with non-linear velocity components do not con-

tribute to Π(1), it is reasonable to approximate f

(1)i by

its linear term only:

f(1)i ≈ − ti

c2sω

Qi : ρ∇u. (23)

Indeed, both values of f(1)i in Eq. (20) and Eq. (23) yield

the same stress tensor. They are therefore equivalentin view of their effect on fluid flow, as the asymptoticdynamics in Eq. (9) only depends on Π

(1), and not on

the details of the first-order particle populations f(1)i .

In summary, the particle populations can be split intotwo main components which fully determine the hydro-dynamic behavior of the model. The term of order O(ε0)yields the equilibrium distribution, which depends on themacroscopic variables ρ and u via Eq. (12). The term oforder O(ε1) depends additionally on the velocity gradi-ents. For the implementation of a boundary condition itis therefore necessary to possess knowledge of both themacroscopic variables and their gradients.

By introducing the results of the multi-scale expansioninto Eqs. (18a) and (18b), and by taking the limit ofsmall Mach-number, the Navier–Stokes equations for anincompressible fluid are recovered:

∇ · u = 0, (24)

∂tu + (u · ∇)u = −∇p + ν∇2u.

These equations are used as a reference in the bench-marks of Section V, to verify the quality of the boundaryconditions.

III. IMPLEMENTATION OF BOUNDARYCONDITIONS

Prior to the collision step, some particle populationsare unknown on boundary nodes, as they are lacking cor-responding neighbors. This is illustrated in Fig. 2 for anupper boundary on a D2Q9 lattice. The particle popu-lations on the boundary node are represented schemati-cally by a lattice vector pointing into the direction alongwhich they were propagated during the previous stream-ing step. Three particle populations, indicated by dashedvectors, are unknown. The role of a boundary conditionis to find a substitution for the three missing popula-tions, and potentially also for the remaining six, in a waywhich is consistent with the dynamics of the model andwhich leads to the desired macroscopic behavior on thedomain boundary. When only the unknown populationsare substituted, the action of a boundary condition canbe viewed as the effect of a fictitious fluid portion locatedoutside the numerical grid. This fluid portion streams theresults from an imaginary LB operation into the bound-ary node and attributes a value to the unknown particlepopulations. In other types of boundary conditions, thevision of a fictitious LB dynamics is abandoned, and allparticle populations are replaced on the boundary node.

Page 5: Straight velocity boundaries in the lattice Boltzmann method

5

FIG. 2: Boundary node on the top row of a grid. The hatchedregion, located outside the grid, does not participate in thesimulation. Particle populations on the boundary node arerepresented by their lattice vectors; dashed vectors stand forunknown populations.

Once the substitutions have been made, all boundaryconditions described in this paper execute a conventionalLBGK collision and streaming step. Boundary nodesimplement therefore the same dynamics as bulk nodes,and they are also analyzed in the same theoretical terms.In particular, the results from the multi-scale analysisdisplayed in Section II B also apply to boundary nodes.Thus, particle populations on boundaries can be splitinto an equilibrium component feq

i and an off-equilibrium

contribution f(1)i according to Eqs. (15) and (19).

An important constraint in determining these values isgiven by the conservation laws in Eqs. (8) and (9). Exactlocal mass and momentum conservation are pillars of theLB method, as they ensure among others an exceptionalnumerical stability. It is therefore desirable that they arerespected on boundary nodes as well. This is achievedby making sure that mass and momentum, as computedfrom Eqs. (1) and (2), yield exactly the desired value.In that case, conservation laws are automatically veri-fied, as it is seen by inserting Eq. (10) into Eqs. (8) and(9), and using the properties of Eqs. (13) and (14). Thefollowing sections do therefore not refer to conservationlaws, but instead insist on an accurate implementationof Eqs. (1) and (2), without numerical approximation. Itshould be pointed out for clarity that even though theseconservation laws guarantee equal mass in the pre- andpost-collision state of a cell, they do not guarantee globalmass conservation in the system. It has been shown inRef. [10] that a simulation may gain or loose mass duringtime evolution, even with no-slip boundaries. An inter-pretation of this fact is that the actual mass balance isinfluenced by how the density is evaluated on boundaries(see Section III A).

The first step toward the implementation of a bound-ary condition is the construction of the equilibrium distri-bution, defined in Eq. (12), from ρ and u. The velocity u

is known by definition on velocity boundaries. The valueof the particle density ρ is however missing and needs tobe computed by a method described in the next section.

A. Evaluation of the density on boundaries

With a Dirichlet velocity boundary condition, theincompressible Navier–Stokes equations always yield aunique solution. No additional boundary condition forthe pressure is required. With traditional numericalsolvers for the Navier–Stokes equations, this fact is obvi-ous, because the pressure is not treated as an independentvariable. Instead, it is viewed as a functional of the ve-locity field, and may be determined by solving a Poissonequation.

The lattice Boltzmann approach on the other handuses a quasi-compressible method to solve the Navier–Stokes equations. The fluid density ρ is simulated as anindependent variable in a regime close to fluid incom-pressibility and related to the pressure through Eq. (5).As it is shown in this section, the value of the density canhowever be determined on straight walls from the knownparticle populations (indicated by solid arrows in Fig. 2)and the value of the velocity. This method works on any2D and 3D grid and is used by practically all authorsof velocity boundary conditions. It is therefore appliedthroughout in this article, for all boundary conditionsand for all benchmark problems in Section V.

The density of a boundary node can be split into threecomponents. The first, ρ−, is the sum of the unknownparticle populations. The second, ρ+, is the sum of theparticle populations opposite to the unknown ones, andthe third, ρ0, sums up the particle populations whoselattice vector is tangential to the boundary or zero. Letu⊥ be the projection of the velocity onto the boundarynormal pointing outside of the numerical grid. Then, theparticle density of the boundary node is

ρ = ρ− + ρ+ + ρ0, (25)

and the normal momentum

ρu⊥ = ρ+ − ρ−. (26)

These equations are combined to obtain

ρ =1

1 + u⊥(2 ρ+ + ρ0), (27)

which is independent of the unknown quantity ρ−. Onthe D2Q9 lattice of Fig. 1, and on a top grid node shownin Fig. 2, the variables above are defined as follows. Thepartial densities are ρ− = f3 + f4 + f5, ρ+ = f7 + f8 + f1

and ρ0 = f2 + f6 + f0. The normal velocity is given bythe y-component of the boundary velocity, and Eq. (27)becomes

ρ =1

1 + uy(2 (f3 + f4 + f5) + f2 + f6 + f0). (28)

This method can obviously only be applied to straightboundaries. On other types of boundaries, for exampleon corner nodes, the locally available information on acell may be insufficient for the evaluation of the density.

Page 6: Straight velocity boundaries in the lattice Boltzmann method

6

In that case, it is common to extrapolate the density fromneighboring bulk cells. For the benchmark problems inSection V, second-order accurate extrapolation is usedto evaluate the pressure in the 4 corners in 2D problems,and in the 8 corners and the 12 edges in 3D problems.

B. Preserving the known particle populations

The two boundary conditions BC1 and BC2, which areintroduced in Section IV and listed in Table I, computevalues for the unknown particle populations only, andleave the others untouched. By doing so, they exploit allthe information available from the LB dynamics in thebulk of the simulation. As it is shown in Section V, theyare rewarded by achieving more accurate results in 2Dflows, but lose this advantage in a 3D problem.

As it is pointed out in the introduction to Section III,it is important that the values for the density and thevelocity are recovered accurately from Eqs. (1) and (2)on boundary nodes. It is clear from Section III A thatthe particle density of a boundary node depends on theknown populations and on the value of uy, but not onthe detail of the unknown populations. Therefore, insituations where only the unknown particle populationsare replaced, the value of ρ needs not (and cannot) beenforced explicitly. Enforcing the value of the velocityvia Eq. (2) on the other hand yields two equations in 2Dand three equations in 3D. Additional closure relationsare therefore required to match the number of unknownparticle populations, which amount to 3 on the D2Q9lattice, and to 9 (for D3Q27) or 5 (for D3Q19 and D3Q15)on 3D lattices.

It was argued in Section II B that the hydrodynamiclimit of the lattice Boltzmann equation is expressed interms of the quantities ρ, u and Π

(1). To help understandthe boundary conditions from a hydrodynamic point ofview, it is therefore good to reinterpret the closure rela-tions suggested by the authors of boundary conditions asclosure relations for the values of the stress tensor Π

(1).As Π

(1) is symmetric, this introduces a set of 3 equationsin 2D, and 6 equations in 3D, which are enforced by Eq.(3). Some of the equation for Π

(1) (Eq. (3)) are howeverlinearly dependent on those for u (Eq. (2)). In the 2D

example illustrated in Fig. 2, the equation for Π(1)xy de-

pends linearly on the equation for ux, and the equation

for Π(1)yy depends on the one for uy. Generally speaking,

a total of d equations for the tensor components Π(1)nα, for

α = 0 · · ·d−1, are linearly dependent on the equations ofuα. Here, the index n labels the direction of the bound-ary normal (in the above example, this is the y-index).In 2D in particular, the two equations for u and the re-maining equation for Π

(1) yield three closure relations, inthe same amount as when a closure relation is introducedfor each of the missing particle populations.

0 0.2 0.4 0.6 0.8 10

0.2

0.4

0.6

0.8

1

y−position in channel

u x

Poiseuille profileEquilibrium on boundaryRegularized boundary condition BC3

FIG. 3: 2D channel flow, simulated once with an equilibriumdistribution on boundaries, and once with the Regularizedboundary condition BC3. The solid line plots the analyticPoiseuille profile. Although only 11 data points are used toresolve the channel width, the result obtained with BC3 isvisually indistinguishable from the Poiseuille profile. Withequilibrium boundaries on the other hand, the velocity gra-dients are ill represented on boundary nodes, which impairsthe accuracy of the whole simulation.

C. Replacing all particle populations

The boundary conditions BC3, BC4 and BC5 in Ta-ble I use the known particle populations only to computethe particle density ρ and, in the case of BC3, the stresstensor Π

(1). After this, they disregard all particle pop-ulations and replace their value by new ones, based onthe velocity and the computed macroscopic variables. Asthey treat all particle populations in the same way, theycan be formulated generically and are easily implementedon various 2D and 3D lattices. Furthermore, they turnout to be more stable than BC1 and BC2, and can there-fore be used at substantially higher Reynolds numbers.

A tempting approach to setting up such velocityboundaries might be to initialize all particle populations,the known and the unknown ones, to their equilibriumdistribution with the imposed velocity and the densitycomputed from Eq. (28). It is however clear from the dis-cussion in Section II B that this method is inappropriate,as it respects the O(ε0) contributions to the dynamics,but neglects the hydrodynamically relevant O(ε1) terms.As a result, the quality of the simulation is spoiled, notonly close to boundaries, but in the full simulated do-main. The expected second-order accuracy can conse-quently not be reached. To illustrate this issue, Figure3 displays the velocity profile obtained for the steady-state solution of a 2D channel flow. The no-slip (zerovelocity) walls are implemented once via this equilib-rium approach, and once with the obviously more ac-curate boundary condition BC3. An exact visual match

Page 7: Straight velocity boundaries in the lattice Boltzmann method

7

TABLE I: The boundary conditions reviewed in this article

Method Replaces all fi’s Local Explicit in 3DBC1 (Inamuro) No Yes NoBC2 (Zou/He) No Yes YesBC3 (Regularized) Yes Yes YesBC4 (FD) Yes No YesBC5 (Nonlinear FD) Yes No Yes

between the exact analytical solution and the numericalresult is obtained with the accurate boundary condition.With the equilibrium boundary condition on the otherhand, the numerical values are far from the analyticalcurve. Although the velocity has a correct no-slip valueon the boundary, the velocity gradient starts out erro-neously. This confirms the theoretical considerations ofthe previous section, in which the O(ε0) components ofthe particle populations are shown to represent macro-scopic variables, and the O(ε1) components their gradi-ents.

It is finally noted that one may avoid rewriting thevalues of all particle populations in an actual implemen-tation to increase numerical efficiency. Once the densityand velocity on a boundary node are computed, parti-cle populations which leave the numerical domain (corre-sponding to the three upward pointing arrows on Fig. 2)have no more influence on the future evolution of the sys-tem. This is due to the fact that BGK collision in Eq. (10)does not introduce a coupling between lattice directions,except during the evaluation of macroscopic variables.The value carried by particle populations that leave thedomain is therefore irrelevant in the LBGK model, butmay still be important if another type of collision is used.

IV. PRESENTATION OF THE REVIEWEDBOUNDARY CONDITIONS

The five boundary conditions listed in Table I are ana-lyzed in this review paper. The table specifies whether aboundary condition replaces all particle populations bya new value, or only the unknown ones. It also stateswhether they are local to a given boundary node, or ifthey need to access neighboring nodes in order to executetheir algorithm. The original papers of boundary con-ditions most often concentrate on 2D implementations.Table I specifies whether there exists a straightforwardway to extend them to 3D, or if this requires the solutionof an implicit equation.

Boundary condition BC1 is described in an article byT. Inamuro et al. [11] from 1995. Boundary conditionBC2 was published subsequently in 1997 by Q. Zou andX. He [12]. Both methods modify only the value of un-known particle populations, and both are local. WhileBC2 extends naturally to any 3D lattice, 3D formula-tions of BC1 are more contrived and require the solu-tion of an implicit equation at each iteration step of the

method. Boundary condition BC3, formulated by J. Lattand B. Chopard [3], replaces all particle populations bya new value. It is local and extends naturally to any3D lattice. Boundary conditions BC4 and BC5 are non-local, as they use finite-difference (FD) approximationsto evaluate the velocity gradients in Eqs. (20) and (23).They are based on the work from 1993 by P. A. Skordos[13], with two minor modifications that are discussed inSection IVD and IVE.

In the remaining part of this section, the five reviewedboundary conditions are introduced within a commonframework. A formalism is used in which all particlepopulations fi on a boundary node are replaced by alter-native populations gi resulting from the boundary condi-tion algorithm. It is stated explicitly when some of theoriginal fi’s are kept. It is then assumed that a LBGKcollision is applied to the populations gi, followed by astreaming step. Explicit formulas are given for the D2Q9lattice of Fig. 1 and for a top grid node as in Fig. 2.Furthermore, it is explained how the algorithms can beextended to 3D lattices.

All presented boundary conditions are shown to re-cover the desired hydrodynamic behavior. According tothe discussion in Section II B, this amounts to showingthat the expected value for the boundary velocity is ob-tained from Eq. (2), and that the stress tensor calculatedfrom Eq. (3) is consistent with its hydrodynamic valuepredicted by Eq. (21). These requirements are enforcedby construction in the boundary conditions BC3, BC4

and BC5, and are therefore valid for obvious reasons. Forthe boundary conditions BC1 and BC2 however, onlythe value of the velocity is explicitly enforced. In thisreview article, the value of the stress tensor is thereforeevaluated separately for the D2Q9 lattice, as a proof ofvalidity. For this, the six known particle populations areassumed to obey the value predicted by the multi-scaleanalysis in Eq. (23), and thus, to depend on ρ, u andthe gradients of u. Based on this assumption, the miss-ing particle populations are evaluated from the algorithmof the boundary condition, and the stress tensor Π

(1) iscomputed from Eq. (3).

A. Inamuro method (BC1)

The boundary condition BC1 by T. Inamuro et al.

uses a reasoning based on the kinetic theory of gases tofind an appropriate value for the missing particle popu-lations. It assumes that the missing populations are ata local thermohydrodynamic equilibrium and thus yieldthe discrete analog of a Maxwell-Boltzmann distribution.This distribution is however centered around a fictitiousdensity ρ′ and velocity u′, both of which are differentfrom the macroscopic fluid variables ρ and u. While ρ′

is a free variable, u′ is assumed to differ from u onlyby a “slip velocity” s, which is tangential to the wall:u′ = u + s. These assumptions introduce a set of 2unknowns in 2D, and 3 unknowns in 3D. For an upper

Page 8: Straight velocity boundaries in the lattice Boltzmann method

8

boundary on a D2Q9 lattice, they read

gi = feqi (ρ′, ux + sx, uy) for i = 3, 4, 5, (29)

where feqi is the equilibrium distribution described by Eq.

(12). As has been emphasized in Section III B, the valueof the velocity u needs to be enforced on the boundaryvia Eq. (2). This system of two equations can be solvedfor the two unknowns ρ′ and sx, with the following result:

ρ′ = 6−ρuy + f1 + f7 + f8

1 + 3u2y − 3uy

, (30)

sx = −ux + 6ρux + f1 + f2 − f6 − f7

ρ′(1 − 3uy). (31)

In these relations, the lattice constants have been re-placed by their numerical value for the D2Q9 lattice. Themissing populations are now evaluated with the help ofEq. (29), and the other populations are left unchanged:

gi = fi for i = 0, 1, 2, 6, 7, 8. (32)

In 3D, the slip velocity s has two independent compo-nents. The unknowns thus amount to 3, which matchesthe number of closure relations introduced by Eq. (2).This system of equations is more difficult to solve thanin the 2D case, and to our knowledge, no analytic solutionis presently known. For the 3D benchmarks in SectionV, the lattice Boltzmann code solves these equations nu-merically on each boundary cell and at every time stepwith the help of a multivariate Newton-Raphson solver[14].

The velocity u is explicitly enforced by this boundarycondition, but nothing is known a priori about the valueof the stress tensor. The method described in the intro-duction of Section IV is now applied to evaluate Π

(1) forthe D2Q9 lattice, by making use of a computer algebrasystem. The following values are found:

Π(1)xx =

ρ

9ω(1 − 3uy)2(ω − 2Syy − 3ωuy + 3ωu2y)

· (33a)

(

10SxxSyy(1 − 3uy)2 + 6S2

xy(1 − 3uy + 3u2y)

−ω(3uy − 1)(

5Sxx(−1 + 6uy − 12u2y + 9u3

y)

+Syyu2x(3 − 9uy) + 18uxSxy(

1

3− uy + u2

y))

)

,

Π(1)yy = − 2

3ωρSyy, and (33b)

Π(1)xy = − 2

3ωρSxy. (33c)

The tensor components Πyy and Πxy yield an exactmatch with the value expected from Eq. (21). As hasbeen pointed out in Section III B, this is a direct corol-lary of the fact that the equation for the velocity, Eq. (2),is satisfied. The component Πxx is the only free parame-ter on a D2Q9 lattice, and can be viewed as a signatureof how the boundary condition influences the dynamicsof the fluid. In its present form, Eq. (33a) is not very

enlightening, and we present therefore two limit values.The first represents the case of a no-slip wall, with van-ishing values of u:

Π(1)xx = ρ

−5Sxx + 2ω (3S2

xy + 5SxxSyy)

9ω − 18Syywhen u = 0.

(34)

For the second limit case, Π(1)xx is expanded into a finite

Taylor series for small values of the components Sxx, Syy

and Sxy. It is assumed that, in the limit of fluid incom-pressibility, the Mach number Ma, and thus the velocityu in lattice units, scales like the small parameter ε [15].The components of the strain rate tensor S exhibit there-fore order ε2 scaling. From the above Taylor series, onlyterms of order ε2 are retained, and terms of the formSαβSγδ or Sαβuγ are neglected. This leads to the follow-ing approximation of Eq. (33a):

Π(1)xx = − 5

9ωρSxy + O(ε3). (35)

This expression is identical to the hydrodynamic tensorvalue in Eq. (21), with exception of the factor 5/9, whichdiffers from the expected factor 2/3 by 20%. This er-ror has however no important effect in practice, as theInamuro method is found to be equally or even moreaccurate than the other approaches in low-Reynolds ap-plications (see Section V). One may however point outthat as a consequence of Eq. (35), the trace of Π

(1) isnon-zero with BC1. This is a violation of the continuityequation, because Eqs. (21) and (22) show that the traceof Π(1) is proportional to ∇·u in the hydrodynamic limit.

B. Zou/He method (BC2)

The boundary condition BC2 by Q. Zou and X. Heis based on an idea referred to by its authors as “apply-ing the bounce-back rule to off-equilibrium parts”. Thisexpression can be understood as a reference to a symme-

try property of the variables f(1)i that follows from Eq.

(23). Let the opposite opp(i) of a lattice direction i bedefined by the relation copp(i) = −ci. Then, Eq. (23)is symmetric under the operation of taking the oppositedirection:

f(1)i = f

(1)opp(i). (36)

This relation can be used to copy data from known par-ticle populations to the opposite, unknown ones. It mayhowever not be applied blindly to all unknown particlepopulations, because this would conflict with Eq. (2) forthe velocity. On a D2Q9 lattice for example, there is re-ally only one degree of freedom left on which the bound-ary condition may have an influence. The choice made inthe case of BC2 was to apply Eq. (36) to the unknownparticle population whose lattice vector is parallel to theboundary normal. Thus, for an upper boundary on a

Page 9: Straight velocity boundaries in the lattice Boltzmann method

9

D2Q9 lattice, the following relation is applied:

g(1)4 = f

(1)8 . (37)

The remaining two unknown populations g(1)3 and g

(1)5 are

computed by enforcing the values of the velocity throughEq. (2). On a D2Q9 lattice, the obtained values are

g(1)3 = f

(1)7 +

1

2(f

(1)6 − f

(1)2 ) and (38)

g(1)5 = f

(1)1 +

1

2(f

(1)2 − f

(1)6 ). (39)

The value of the unknown particle populations is con-structed by adding equilibrium and off-equilibrium parts:

gi = feqi (ρ, u) + g

(1)i for i = 3, 4, 5. (40)

All other populations are kept as they are:

gi = fi for i = 0, 1, 2, 6, 7, 8. (41)

Like the Inamuro method BC1, the Zou/He methodBC2 enforces the value of the velocity explicitly, but doesnot specify anything about the stress tensor. The valuesof Π

(1) can again be computed for the D2Q9 lattice, us-ing the procedure described in the introduction of SectionIV. The resulting expressions match exactly the hydro-dynamic values of Π

(1) claimed in Eq. (21). This con-firms analytically the validity of the Zou/He boundarycondition for 2D simulations.

This algorithm cannot be used as it stands in 3D. Inthat case, Eq. (2) yields three independent equations,but the number of unknowns is larger (5 or 9). In thatcase, the authors of Ref. [12] suggest to proceed as fol-lows. To begin with, the “off-equilibrium bounce-back”rule, Eq. (36), is applied to assign a value to all missingparticle populations. By doing this, the exact value ofthe component uα is recovered for the index α in direc-tion of the boundary normal. To keep this relation valid,the sum over the value of the unknown particle popula-tions is kept invariant during subsequent operations. Theexcess of momentum is then evaluated in the remainingdirections:

δβ ≡∑

i

fneqi ciβ for β 6= α. (42)

Finally, the values δβ are redistributed over the unknownparticle populations, in order to find an exact match forEq. (2):

gneqi = fneq

i −∑

β 6=α

1

nβciβδβ for all unknown fi’s, (43)

where nβ is the number of unknown particle populationsfor which ciβ is non-zero.

C. Regularized method (BC3)

The method [3] by J. Latt and B. Chopard replaces allparticle populations on a boundary node. It first eval-uates the value of Π

(1), based on the knowledge of theknown particle populations. Then, the equations of themulti-scale analysis in Section II B are reversed to recon-struct all particle populations from ρ, u and Π

(1) in away consistent with the hydrodynamic limit of the model.With the use of Eq. (21), and by exploiting the symmetryof tensors Qi and of tensor Π

(1), Eq. (23) is rewritten asfollows:

f(1)i ≈ − ρti

c2sω

Qi : S =ti

2c4s

Qi : Π(1). (44)

With this relation, the off-equilibrium part of the particlepopulations can be reconstructed from the tensor Π

(1).This procedure is called a regularization of the particle

populations, because it compels the f(1)i to respect ex-

actly (without numerical error) the symmetry propertiesof Eq. (21), such as the symmetry explicited in Eq. (36).

The tensor Π(1) is evaluated as follows. First, all un-

known particle populations are assumed to take the valueobtained by a “bounce-back of off-equilibrium parts”,as in Eq. (36). Thus, their value is described as fi =feq

i (ρ, u) + fopp(i) − feqopp(i). It was emphasized in Sec-

tion IVB that this relation may not be used to definea boundary condition, because it prohibits an exact im-plementation of Eq. (2). It it therefore used temporarilyonly, to evaluate the value of Π

(1) by means of Eq. (3).After this, Eq. (44) is used to construct all particle

populations:

gi = feqi (ρ, u)+

ti2c4

s

Qi : Π(1) for i = 0 · · · q−1. (45)

It is obvious that not only ρ and u, but also the ten-sor Π

(1) are recovered appropriately by this boundarycondition.

D. Finite-difference velocity gradient method(BC4)

In the regularized approach of BC3, the stress tensorΠ

(1) is evaluated on the boundary from information lo-cally available on the cell. The boundary condition BC4

computes Π(1) from Eq. (21) instead, by relating it to

the strain rate tensor S. The components of S are eval-uated by a second-order accurate finite-difference scheme,which accesses the value of the velocity on neighboringgrid cells. The algorithm of BC4 is summarized by thefollowing equation:

gi = feqi (ρ, u) − ρti

c2sω

Qi : S for i = 0 · · · q − 1, (46)

where the strain rate tensor S is defined as in Eq. (22).The velocity gradients of S that run along directions

Page 10: Straight velocity boundaries in the lattice Boltzmann method

10

parallel to the boundary are evaluated by a symmetricfinite difference scheme. This presumes the knowledgeof the velocity on nearest-neighbor cells. Velocity gra-dients along the boundary normal use non-symmetricfinite differences, which access the velocity on nearestand next-to-nearest neighbors. Please note that, insteadof evaluating the symmetric tensor S, one may alter-natively compute all components of the non-symmetrictensor ∇u and calculate the population functions fromEq. (23). These two ways of constructing the boundarycondition are algebraically equivalent.

This boundary condition was published in 1993 in apioneering article by P. A. Skordos [13]. It should bementioned that Ref. [13] makes a slightly different as-sumption on the asymptotic value of Π

(1), as it uses thefollowing expression in lieu of Eq. (21), in which the den-sity ρ resides inside the spatial derivative:

Π(1) = −c2

s

ω

(

∇(ρu) + (∇(ρu))T)

. (47)

It has however been shown that Eq. (21), which pre-dicts the proper deviatoric strain rate for a compressiblefluid, can be recovered in a multi-scale analysis by tak-ing into account derivatives of non-linear velocity terms[3, 16, 17]. The difference between Eqs. (21) and (47),however subtle, may have a noticeable effect in compress-ible fluids. We decided therefore to depart from the origi-nal article on this point, but emphasize that the credit forthis boundary condition should be attributed to Skordos[13]. It should also be mentioned that Ref. [13] discussesboth first- and second-order accurate finite difference ap-proximations to velocity gradients, but only second-orderschemes are presented here.

An interesting discussion of boundary conditions withfinite-difference approximation to velocity gradients ispresented in Ref. [9]. This paper points out that otherchoices than Eq. (46) also lead to the expected valueof the stress tensor, and it proposes different closureschemes that are compatible with the hydrodynamiclimit of the model.

E. Nonlinear finite-difference method (BC5)

It is shown by multi-scale analysis that Eq. (23) is avalid approximation to Eq. (20) within the hydrodynamicscales of the model. It is therefore clear that bound-ary conditions BC3 and BC4, which are based on thisapproximation, yield accuracy of second order, consis-tent with the overall accuracy of the lattice Boltzmannscheme. Beyond this asymptotic estimate, the accuracymay however vary in actual simulations, due to higher-order effects that are not visible in the finite expansion ofSection II B. For this reason, it is sometimes argued thatthe full term of Eq. (20) should be implemented on theboundary, to gain accuracy and numerical stability. Inorder to test this conjecture numerically, a correspondingboundary condition BC5 is presented in the following. It

uses the same principles as BC4, but also includes thenon-linear velocity contributions to the particle popula-tions. This approach has not been published previouslyin the literature, and serves only as a toy model to exper-iment with the limits of BC4. It is explicited as follows:

gi = feqi (ρ, u) − ti

c2sω

(

Qi : ρ∇u − ci∇ : ρuu

+1

2c2s

(ci · ∇)(Qi : ρuu))

for i = 0 · · · q − 1. (48)

For the implementation of this method, the gradients ofthe components of the tensor uu need to be evaluated via

a finite difference scheme, additionally to the gradientsof u.

V. BENCHMARKS

This section produces the results of lattice Boltzmannsimulations, based on the five reviewed boundary con-ditions. For some of the simulated problems, analyticalsolutions are known which describe the steady state ofthe flow. In that case, the simulation is iterated untila steady state is reached. Then, the numerical result isvalidated against the analytical solution on every gridpoint, and the mean discrepancy between these two val-ues is evaluated as a measure of quality for the imple-mented boundary condition. Other benchmarks focus onthe time evolution of the flow. They keep track of thetime-evolution of a scalar quantity (such as the averageenergy in Section VC), or the occurrence of a partic-ular event (as the maximum value of the enstrophy inSection V D). Several 2D benchmarks are presented, im-plemented on a D2Q9 lattice, and one 3D benchmark ona D3Q19 lattice.

The simulated domains of all presented problems havea rectangular shape. This raises the issue of how to im-plement corner nodes and, in 3D, edge nodes that lie onthe connexion between two plane walls. Although someauthors of boundary conditions make suggestions on howto treat these cases, some authors do not. To guaran-tee an equal treatment, the present article treats cor-ners and edges always in the same way, independently ofthe boundary condition that is being tested. The finite-difference algorithm of BC5 was selected to implementthese special boundary nodes. This approach is straight-forward, because the velocity gradients referred to in Eq.(45) can be evaluated on corners and edges just like ev-erywhere else. It must furthermore be pointed out thatEq. (28) for the particle density cannot be evaluated oncorners and edges. In those cases, the density is extrapo-lated with second-order accuracy from neighboring cells.

In all benchmark problems, a velocity U and a lengthL are selected that are characteristic for the flow. Thedynamics of the flow is then described in a system of di-mensionless variables, independent of the numerical grid,

Page 11: Straight velocity boundaries in the lattice Boltzmann method

11

in which U = 1 and L = 1. The equations of motiondepend only on the dimensionless Reynolds number, de-fined as a function of the kinematic fluid viscosity ν:

Re =UL

ν. (49)

The parameters used for the numerical implementationare described by the number N , which is the number ofgrid nodes used to resolve the length L, and the veloc-ity Ulb, representing the velocity U in a system of lat-tice units. This is a common choice in LB simulations,because Ulb is proportional to the Mach number of thefluid. It can therefore be fine-tuned to make sure the flowis close enough to the limit of incompressibility. For thenumerical implementation of the benchmarks, the pre-scribed velocity field for the initial and/or boundary con-dition needs to be converted from dimensionless variablesto lattice units. This is simply done by multiplying thedimensionless velocity by Ulb. From these definitions, thediscrete parameters of the simulation are characterized asfollows. The grid interval δx is given by

δx =1

N − 1. (50)

The time lapse of an iteration δt is defined throughthe relation U = δx/δtUlb, which recovers the lattice-independent form of the velocity. Given our choice ofU = 1, this leads to

δt = δxUlb. (51)

At a given time step, the numerical error is evalu-ated by computing a l2-norm of the difference betweenthe simulated velocities ulb(rk) on grid nodes locatedat position rk, and the dimensionless analytical solutionuanalytic(rk):

ǫ =

1

P

P−1∑

k=0

ulb(rk)

Ulb− uanalytic(rk)

2

, (52)

where the sum runs over all P nodes of the numericalgrid.

The parameters of the simulation for a varying res-olution N are adapted in order to keep the value ofthe Reynolds number constant, and to prevent effects offluid compressibility from interfering with the accuracyof the result. Compressibility errors ǫcompr are knownto scale like the square Mach-number and are thereforeestimated by ǫcompr = O(U2

lb). This error is requiredto decrease at least as fast as the discretization errorǫδx

= O(1/L2lb) = O(1/N2). It follows from Eq. (49)

that this is achieved by keeping the viscosity νlb constantwhen the grid resolution is modified.

The benchmark codes can be retrieved from the Inter-net address [18]. The programs are based on the opensource lattice Boltzmann library OpenLB [19], which ispublicly available.

A. Steady plane channel flow (2D)

This 2D stationary flow evolves in a straight channel,which extends in x-direction between x = 0 and x = lx.The walls of the channel are parallel to the x-axis, anddefined by the equations y = 0 for the lower wall, andy = ly for the upper wall. A no-slip condition for thevelocity is enforced on these walls. The flow is character-ized by a constant pressure drop along the channel. Thispressure drop can be obtained by using pressure bound-ary conditions on the inlet and the outlet. An alternativeapproach, which is used in this benchmark, is to enforcethe velocity profile from the analytical solution of theflow on the inlet and on the outlet. The velocity is par-allel to the walls, and the only non-zero component ux isindependent of x: ux = ux(y). The height ly of the chan-nel is taken to represent the characteristic length L. Themaximum value of the velocity, which is measured in themiddle of the channel, is selected for the characteristicvelocity U . The analytic solution to this flow is given bythe parabolic Poiseuille profile, which, in dimensionlessvariables, reads

ux(y) = 4(y − y2). (53)

The pressure drop amounts to ∂p/∂x = −8/Re.The two-dimensional channel flow is for many reasons

an inappropriate benchmark, and it is presented here in ahistorical spirit, to conform with some authors of bound-ary conditions that use it as a basic test case for theiralgorithm. One shortcoming of this flow as a benchmarkcase is that the components Sxx and Syy of the strainrate tensor S vanish in the analytical solution. Bound-ary conditions that replace only unknown particle popu-lations (BC1 and BC2 in this article) are therefore au-tomatically exempt from numerical errors. This followsfrom the discussion in Section III B, where the compo-nents Πxx (on horizontal boundaries) and Πyy (on verti-cal boundaries) of the stress tensor are shown to be theonly degrees of freedom for which the boundary conditioncould possibly be wrong. If the corner nodes are imple-mented in an appropriate way, these two methods areshown in Refs. [11] and [12] to solve the 2D channel flowwith a precision close to machine accuracy (the best accu-racy one can expect to obtain, given the limited precisionof floating point values on a computer), independent ofthe grid resolution. Machine accuracy is however not ex-hibited in the present benchmark, because we chose toimplement corner nodes in a generic way that works forall boundary conditions and for all types of flows.

In this benchmark, the channel has quadratic shape(lx = ly = 1), the grid resolution is varied from N = 25to N = 400, and the Reynolds number is Re = 10. Com-pressibility effects are controlled by setting Ulb = 0.01 ata grid resolution N = 50. As discussed in the previousparagraph, the velocity Ulb is recomputed for differentvalues of N in such a way as to keep the viscosity νlb

constant from one grid to another. Figure 4 (a) shows

Page 12: Straight velocity boundaries in the lattice Boltzmann method

12

101

102

103

10−7

10−6

10−5

10−4

10−3

(a)

Grid resolution N

Err

or

−2 SlopeInamuroZou/HeRegularizedFinite differenceNonlinear finite difference

50 100 150 20010

1

102

103

104

105

(b)

Grid resolution N

Max

imum

Rey

nold

s nu

mbe

r

InamuroZou/HeRegularizedFinite differenceNonlinear FD

FIG. 4: (a) Numerical accuracy in a 2D channel flow. (b) Numerical stability in a 2D channel flow. The maximum Reynoldsnumber which can be reached before numerical instabilities appear is plotted.

that all reviewed boundary conditions lead to the ex-pected second-order accuracy with respect to grid reso-lution. Boundary conditions BC1 and BC2 are distinctlymore accurate, because their overall accuracy is only af-fected by the error in corner nodes. It is furthermoreobserved that the non-linear finite difference scheme ofBC5 is slightly more accurate than the linear approachof BC4. The numerical stability of boundary conditionsis explored in Figure 4 (b) by means of the maximumReynolds number which can be reached before numericalinstabilities occur. The most accurate boundary condi-tions, BC1 and BC2 are also the distinctly least stable.Most stable boundary conditions are those based on anon-local algorithm, BC4 and BC5.

B. Oscillating plane channel flow (2D)

This laminar channel flow is also known as “Womersleyflow” on ground of the analytical solution proposed byJ. Womersley [20]. It is defined by the same geometryas the steady flow in Section VA. The pressure gradientis however not constant, but oscillates in time. Beforethe reference velocity U can be defined, the equationsof the flow are written in an arbitrary system of units,other than the dimensionless one. In this system, theamplitude of the oscillations is denoted by A, and thefrequency by ω:

∂p

∂x= −A cos(ωt). (54)

In the low-frequency limit ω → 0, the solution to thisflow is defined by a succession of Poiseuille profiles, withoscillating amplitude:

ux(y, t) =A

2ν(lyy − y2) cos(ωt). (55)

The maximum velocity of the flow, reached in the middleof the channel at time t = n2π/ω for any integer valuen, is found to be

umax =A

8νL2. (56)

This value umax is used to define the reference velocityU , as it characterizes the flow reasonably well when os-cillations are slow. The reference length L is describedby the channel height ly. As the flow depends on time, itis characterized by two dimensionless parameters, whichare the Reynolds number Re defined in Eq. (49), and theWomersley number α, defined as

α =L

2

ω

ν. (57)

In a system of dimensionless variables described by Uand L, the time-dependent solution to this flow is givenby the Womersley profile [20, 21]:

ux(y, t) =

Re

ei α2

Ret 8

iα2

1 − cosh(√

2(α + iα)(

y − 12

))

cosh(√

22 (α + iα)

)

,

(58)

where i is the imaginary unit, and Re means that thereal part of the formula needs to be evaluated.

The error ǫ of the numerical result with respect to theanalytical solution of Eq. (58) is computed at each timestep by evaluation of Eq. (52) over the whole computa-tional domain. The overall error ǫ of the simulation isdefined as an average of ǫ over one time period. Only theasymptotic value of ǫ, reached after a large number ofiterations, is accounted for. The initial transient regimeof the fluid, and consequently the choice of the initialcondition, are irrelevant.

Page 13: Straight velocity boundaries in the lattice Boltzmann method

13

101

102

10−5

10−4

10−3

(a)

Grid resolution N

Err

or

−2 SlopeInamuroZou/HeRegularizedFinite differenceNonlinear finite difference

101

102

10−4

10−3

(b)

Grid resolution N

Err

or

−2 SlopeInamuroZou/HeRegularizedFinite differenceNonlinear finite difference

FIG. 5: Numerical accuracy in an oscillating channel. (a) α = 2 (slow oscillations), (b) α = 5 (fast oscillations).

In this simulation, the geometry is quadratic (lx =ly = 1). The Reynolds number is Re = 1, and the latticevelocity is set to Ulb = 0.01 at a reference resolution ofN = 10. The numerical results are plotted in Fig. 5 (a)for a value of α = 2 and on Fig. 5 (b) for a value ofα = 5. All other parameters are chosen to be the sameas in the steady channel flow. Figure 4 (a) in SectionVA can also be included in this discussion, as it corre-sponds to the limit α = 0 in which the flow does notoscillate. It should be pointed out that, as α increases,inertial effects on the flow dominate over viscous effects.The velocity profile in the bulk becomes progressively in-dependent of the boundary condition. As it can be seenfrom the simulations (see Fig. 5 (b)), the result is prac-tically independent of the chosen boundary condition ata value of α = 5.

C. Periodic array of vortices (2D)

The following benchmark measures the energy dissi-pation during time evolution of a laminar flow withoutexternal energy input. The initial velocity field consistsof an array of counter-rotating vortices [22]. The flowis described by its value inside a periodic box of sizeL × L. The flow velocity u0 at any time t0 is derivedfrom its stream function Ψ0, which is an eigenfunction ofthe Laplacian operator with eigenvalue λ:

∇2Ψ0 = λΨ0. (59)

The time evolution of this flow is characterized by anexponential decrease of the velocity amplitude:

u(t) = u0eλν(t−t0) for t ≥ t0. (60)

Among all eigenfunctions of the Laplacian, the followinginitial stream function Ψ0 was selected for the benchmark

(expressed in dimensionless variables):

Ψ0(x, y) =1

2π√

m2 + n2cos(2πmx) cos(2πny), (61)

where x and y are contained in the interval [0, 1] andlabel the two space directions. The velocity field is givenby

ux,0(x, y) =∂Ψ0

∂y=

− cos(2πmx) sin(2πny)√

m2

n2 + 1(62a)

and

uy,0(x, y) = −∂Ψ0

∂x=

sin(2πmx) cos(2πny)√

n2

m2 + 1. (62b)

It is clear that ‖u0(x, y)‖ ≤ 1 for all values of x and y,which justifies the choice of the reference velocity U . Thedecay rate λ is found by solving the eigenvalue problem(59):

λ = −(m2 + n2). (63)

The initial pressure distribution of the flow is evaluatedby solving the Poisson equation ∇2p = −(u · ∇)u:

p = −(n2 cos(4πmx) + m2 cos(4πny)). (64)

The dimensionless pressure p is converted as follows tothe density ρlb, expressed in lattice units: ρlb = 1 +pδ2

x/(c2sδ

2t ), where the discrete steps δx and δt are defined

as in Eq. (50). This benchmark is formulated as an ini-tial value problem. The initial condition is therefore setup with special care, using an approach described in Ref.[23] and based on an original suggestion in Ref. [13]. Theparticle populations are first initialized at an equilibriumdistribution, based on the desired value of u and p. Theoff-equilibrium parts of the particle populations are then

Page 14: Straight velocity boundaries in the lattice Boltzmann method

14

0 0.002 0.004 0.006 0.008 0.0110

−10

10−8

10−6

10−4

10−2

100

(a) N=8

Time

Ene

rgy

InamuroZou/heRegularizedFinite difference

2 3 4 5 6

x 10−3

10−12

10−10

10−8

10−6

(b) N=32

Time

Ene

rgy

InamuroZou/heRegularizedFinite difference

FIG. 6: Time-evolution of the average energy in the 2D periodic array of vortices. The curves for the linear and the non-linearfinite difference methods overlap as far as one can distinguish visually. Therefore, only the linear case is presented. A boundarycondition is considered to be of good quality if the point at which the curve oscillates and departs from an exponential decayoccurs late.

instantiated with the help of Eq. (23), with numericallycomputed velocity gradients. Although the flow is pe-riodic in both space directions, non-periodic boundaryconditions are used, and the boundary velocity is explic-itly imposed by use of the reviewed boundary conditions.The velocity along the boundaries of this sub-domain isset to the analytical value of Eq. (60) at every time stepwith the help of the five tested boundary conditions.

Figure 6 displays the time-evolution of the average en-ergy with different boundary conditions at a resolutionN = 8 and a resolution N = 32. The Reynolds numberis Re = 1, and the reference velocity in lattice units isset to Ulb = 0.01 at a grid resolution N = 8. In an initialregime, the energy decay is in all cases exponential, aspredicted by Eq. (60). After reaching a critical value ofthe time t, the curve starts oscillating and deviates fromthe theoretical prediction. For the non-local boundaryconditions BC4 and BC5, this deviation occurs earlierthan for the local ones. It is therefore concluded that thenon-local boundary conditions are less accurate for thisproblem.

D. Dipole-wall collision (2D)

This benchmark, based on Refs. [24] and [23], ana-lyzes the time evolution of a self-propelled dipole con-fined within a square box. The box is located in the ge-ometrical domain [−L, L] × [−L, L] and implements no-slip walls. The initial condition describes two counter-rotating monopoles, one with positive core vorticity atthe position (x1, y1) and one with negative core vortic-ity at (x2, y2). This is obtained with an initial velocityfield u0 = (u0, v0) which reads as follows in dimensionless

variables:

u0 = −1

2‖ηe‖ (y − y1)e

−(r1/r0)2

(65a)

+1

2‖ηe‖ (y − y2)e

−(r2/r0)2

and

v0 = +1

2‖ηe‖ (x − x1)e

−(r1/r0)2 (65b)

−1

2‖ηe‖ (x − x2)e

−(r2/r0)2 .

Here, the distance to the monopole centers is defined asri =

(x − xi)2 + (y − yi)2. The parameter r0 labelsthe diameter of a monopole and ηe its core vorticity.

The average kinetic energy of this system at a giventime is defined by the expression

E(t) =1

2

∫ 1

−1

∫ 1

−1

‖u‖2(x, t)d2x, (66)

and the average enstrophy by

Ω(t) =1

2

∫ 1

−1

∫ 1

−1

η2(x, t)d2x, (67)

where η = ∂xv − ∂yu is the flow vorticity.The dipole described by Eqs. (65a) and (65b) develops

a net momentum directed in the positive x-direction andis self-propelled toward the right wall. The collision be-tween the dipole and the no-slip wall is characterized bya turbulent dynamics where the wall acts as a source ofsmall-scale vortices that originate from detached bound-ary layers. This problem is therefore particularly inter-esting as a test for the ability of boundary conditions toreproduce the dynamics of boundary layers during colli-sion. For this purpose, the maximum value of the flowenstrophy, which is reached during the dipole-wall colli-sion, is evaluated and retained for a comparison among

Page 15: Straight velocity boundaries in the lattice Boltzmann method

15

300 500 80010

−4

10−3

10−2

10−1

Grid resolution N

Err

or

−2 SlopeRegularizedFinite differenceNonlinear finite difference

FIG. 7: Accuracy on the value of the enstrophy peak in a 2Ddipole-wall collision at Re = 625. Boundary conditions BC1

and BC2 could not be tested, because they are numericallyunstable at this Reynolds number.

boundary conditions. As no analytical result for thisflow is known, the measured values are compared againstbenchmark results obtained with a spectral method inRef. [24].

In the benchmark, the initial core vorticity of themonopoles is fixed to ηe = 299.5286, which leads to aninitial average kinetic energy of E(0) = 2. Furthermore,the Reynolds number and the monopole radius are setto Re = 625 and r0 = 0.1. The lattice velocity is setto Ulb = 0.01 at a reference resolution of N = 300.The monopoles are aligned symmetrically with the box,in such a way that the dipole-wall collision is frontaland takes place in the middle of the wall. The posi-tion of the monopole centers is (x1, y1) = (0, 0.1) and(x2, y2) = (0,−0.1). As in Section V C, the approachof Ref. [23] is used to set up the initial condition. Theinitial pressure is evaluated numerically, by solving thePoisson equation with a successive overrelaxation (SOR)scheme, using an algorithm described e.g. in Ref. [25].The off-equilibrium parts of the particle populations arethen instantiated with the help of Eq. (23), with numer-ically computed velocity gradients.

The boundary conditions BC1 and BC2 could not beused for this problem, because they experienced numer-ical instabilities at the required Reynolds number (thebenchmark values in the literature start at Re = 625).These instabilities are due to an inherent limitation ofthe boundary conditions, and do not originate from theway the initial condition or the boundary condition incorner nodes are treated. This possibility was ruled outby initializing the population functions with an equilib-rium distribution, and keeping the corner nodes at anequilibrium distribution with constant pressure through-out the simulation. Although this approach to settingup initial states and boundaries tends to be exception-

ally stable, the simulations using BC1 and BC2 were stillsubject to numerical instabilities.

The numerical results are presented in Fig. 7. Please beaware that a resolution of N = 300, for example, standsfor a total grid size of 600×600, as the size of the systemis 2 × 2 in dimensionless variables. For a Reynolds num-ber Re = 625, all three boundary conditions BC3, BC4,and BC5, the error decreases roughly at a second-orderrate. The local boundary condition BC3 is however anorder of magnitude more accurate than the other can-didates. This is striking, because BC3 is least accuratein all benchmarks of laminar flows. It is concluded thatthe local, cell-based approach of BC3 is particularly welladapted to reproduce the dynamics of a boundary layer.A possible interpretation is that the finite difference ap-proximation of velocity gradients in BC4 and BC5 be-comes inaccurate in presence of a turbulent boundarylayer due to small-scale velocity variations.

E. Rectangular steady channel flow (3D)

This problem is a 3D generalization of the channel flowpresented in Section VA. This time, the channel extendsin z-direction. At every fixed value of z, the cross sec-tion is rectangular, extending from x = 0 to x = L,and from y = 0 to y = ζL, where ζ is the aspect ra-tio of the cross section. The pressure is independent ofthe x- and the y-coordinates, and decreases linearly as afunction of z. The velocity has a non-zero component inz-direction only, and depends on x and y: uz = uz(x, y).As in the 2D case, nonlinear contributions to the Navier–Stokes equation cancel out, and the velocity profile uz isdescribed as a solution of the following Poisson equation:

∇2uz ≡ ∂2uz

∂x2+

∂2uz

∂y2=

∂p

∂z. (68)

As this equation is non-homogeneous, the general solu-tion is described as the sum of a particular solution up

and a general solution uh to the homogeneous problem∇2uz = 0. The particular solution can be taken fromthe 2D flow in Section VA. In dimensionless variables,it reads

up(x, y) = 4(x − x2). (69)

This settles the choice for the reference velocity U asbeing the maximum velocity reached in a 2D channel.The pressure drop is the same in the 3D as in the 2Dcase: ∂p/∂z = −8/Re. The complete analytic solutionto this 3D channel flow is [26]

uz(x, y) = 4(x − x2) +32

π3

+∞∑

n=0

(

(−1)n

(2n + 1)3(70)

cos ((2n + 1)πx)cosh

(

(2n + 1)πyζ

)

cosh(

(2n + 1)π2 ζ

)

)

.

Page 16: Straight velocity boundaries in the lattice Boltzmann method

16

101

102

10−6

10−5

10−4

10−3

(a)

Grid resolution N

Err

or

−2 SlopeInamuroZou/HeRegularizedFinite differenceNonlinear finite difference

0 20 40 60 80 10010

0

101

102

103

104

105

106

(b)

Grid resolution N

Max

imum

Rey

nold

s nu

mbe

r

InamuroZou/HeRegularizedFinite differenceNonlinear FD

FIG. 8: (a) Numerical accuracy in a 3D channel flow. (b) Numerical stability in a 3D channel flow. The maximum Reynoldsnumber which can be reached before numerical instabilities appear is plotted. Boundary conditions based of finite differenceapproximations (BC4 and BC5 ) are unconditionally stable at high grid resolution. Numerical values are therefore only reportedin the unstable regime, up to N = 25 for BC4 and up to N = 20 for BC5.

Figure 8 (a) shows results of numerical accuracy atRe = 10. The reference velocity is Ulb = 0.01 at N = 50,and the aspect ratio is ζ = 1. Numerical stability is ex-plored in Figure 8 (b) for a varying grid resolution. Thenumerical results in this 3D benchmark are similar tothose of the 2D application in Section V A. The boundarycondition BC1 is again much more accurate than bound-ary conditions that replace all particle populations. As inthe 2D case, all but one component of the strain rate ten-sor vanish in this flow, and some potential deficiencies ofBC1, as the one shown in Eq. (35), might not be visible inthe benchmark. An unexpected result is that boundarycondition BC2, which in 2D applications achieves resultsvery similar to those of BC3, falls in the same categoryas the non-local boundary conditions BC4 and BC5 inthis 3D case. Another remarkable difference with respectto 2D results is that the non-local boundary conditionsachieve unconditional numerical stability in 3D, as soonas the grid resolution exceeds a certain threshold value.At this point, further investigations would be needed todecide if this difference is due to different flow geometries(the analytical solutions in Eqs. (53) and (70) are qualita-tively different) or if 3D simulations are inherently morestable than 2D ones for this type of boundary conditions.

VI. DISCUSSION AND CONCLUSION

Five boundary conditions for the lattice Boltzmannmethod have been selected and presented in this reviewarticle. As it is concluded from applying the results of amulti-scale analysis to boundary nodes, all methods aresecond-order accurate with respect to the grid resolution.This implies that their error varies asymptotically at thesame rate. Beyond this asymptotic estimate, the accu-racy experienced in numerical simulation differs however

from one boundary condition to another, depending onthe flow geometry and the grid resolution. A way tounderstand these differences might be to take the multi-scale analysis to a higher order O(ε2) and discuss thecouplings between higher order terms and the hydrody-namic scales. This technique is for example employed inRef. [27] to understand the asymptotic low Mach-numberbehavior of a family of lattice Boltzmann models. In-stead of doing this, this review article produces bench-mark results for the boundary conditions in many differ-ent geometries. Those results are intended to serve as areference to help select the most appropriate boundarycondition for a given lattice Boltzmann simulation. It isemphasized once more that the results are valid only forstraight boundaries which are aligned with the numer-ical grid. Different conclusions can be expected whenoff-lattice boundaries are implemented.

In 2D simulations and at low Reynolds numbers, theInamuro and Zou/He boundary conditions BC1 and BC2

are found to produce the most accurate results. Bothof them preserve the known particle populations on aboundary node, a fact which probably explains their ex-cellent benchmark performance. They retrieve a largeamount of information from the bulk of the fluid, andmanipulate only few particle populations (3 out of 9).It seems plausible that by doing this, they retain infor-mation on higher order terms which are not visible inthe hydrodynamic terms of the multi-scale analysis. TheInamuro method is also very accurate in the 3D bench-mark, but this performance is not reproduced by theZou/He condition, which in this case compares to non-local boundary conditions. The main deficiency of BC1

and BC2 is that they are numerically unstable at (evenmoderately) high Reynolds numbers. They could for ex-ample not be used to simulate the turbulent dipole-wallcollision presented in Section VD.

Page 17: Straight velocity boundaries in the lattice Boltzmann method

17

In conclusion, BC1 and BC2 are the boundary con-ditions of choice for the simulation of laminar 2D flows,when high accuracy is important. The Inamuro bound-ary condition BC1 is also a good candidate for laminar3D flows, although it is not an explicit method, and thustends to be complicated to implement. The extension ofBC2 to 3D flow does not seem to make much sense, as itdoes not exhibit exceptional accuracy, and is less stablethan other approaches.

The Regularized boundary condition BC3 uses a hy-brid approach, as it is local like BC1 and BC2, but itreplaces all particle populations like BC4 and BC5. Assuch, it is less accurate than BC1 and BC2 in lami-nar flows, but it has the ability to reach much higherReynolds numbers. Furthermore, simulations of a tur-bulent dipole-wall collision show that it reproduces thedynamics of boundary layers more accurately than allother boundary conditions. Because of its numerical sta-bility, and because it is easy to implement in 2D and3D applications, BC3 is a good general-purpose method,and seems to be the best candidate for high Reynoldsnumber flows.

The non-local boundary conditions BC4 and BC5,which use a finite difference scheme to approximate theoff-equilibrium part of particle populations, exhibit thebest numerical stability. In the laminar 3D benchmark,

they are even unconditionally stable on a sufficientlylarge grid. Their main disadvantage is the non-locality oftheir algorithm. This violates the basic principles of theLB method, may substantially increase the complexityof a code, and even be an obstacle to parallelizing theprogram in a straightforward way. On the other hand,the boundary conditions BC4 and BC5 are very gen-eral and may adapt well to a larger software project.They are for example not bound to the lattice structure,and can be extended to the case of off-lattice boundaries,like the one described in Ref. [28]. Boundary conditionBC5 takes into account non-linear velocity terms in off-equilibrium particle populations, which are neglected inBC4. Thanks to this, it is slightly more accurate andmore stable. The difference is however so small that itdoes not seem to justify the increased complexity andcomputational burden.

Acknowledgments

We thankfully acknowledge the support of the SwissNational Science Foundation SNF (Awards FN 200020–1007931, PBGe2–117144, and FN 200021–107921). Wealso thank Andreas Malaspinas for inspiring suggestions.

[1] S. Chen, H. Chen, D. Martinez, and W. Matthaeus, Phys.Rev. Lett. 67, 3776 (1991).

[2] S. Chen and G. D. Doolen, Ann. Rev. Fluid Mech. 30,329 (1998).

[3] J. Latt, PhD dissertation, University of Geneva,Geneva, Switzerland (2007), http://www.unige.ch/

cyberdocuments/theses2007/LattJ/meta.html.[4] M. Junk, A. Klar, and L.-S. Luo, J. Comput. Phys. 210,

676 (2005).[5] Y. Qian, D. d’Humieres, and P. Lallemand, Europhys.

Lett. 17, 479 (1992).[6] S. Succi, The lattice Boltzmann equation for fluid dynam-

ics and beyond (Oxford University Press, 2001).[7] X. He and L.-S. Luo, Phys. Rev. E 56, 6811 (1997).[8] X. He, X. Shan, and G. D. Doolen, Phys. Rev. E 57, R13

(1998).[9] I. Halliday, L. A. Hammond, and C. M. Care, J. Phys.

A: Math. Gen. 35, L157 (2002).[10] A. Dupuis and B. Chopard, Int. J. Mod. Phys. B 17, 103

(2003).[11] T. Inamuro, M. Yoshina, and F. Ogino, Phys. Fluids 7,

2928 (1995).[12] Q. Zou and X. He, Phys. Fluids 9, 1592 (1997).[13] P. A. Skordos, Phys. Rev. E 48, 4823 (1993).[14] W. Press, S. Teukolsky, W. Vetterling, and B. Flannery,

Numerical Recipes in C++: The Art of Scientific Com-

puting (Cambridge University Press, 2002).[15] D. Hanel, Einfuehrung in die kinetische Theorie der

Gase und Lattice-Boltzmann-Methoden (Springer Verlag,2004).

[16] P. J. Dellar, Phys. Rev. E 64, 031203 (2001).[17] Z. Guo, C. Zheng, and B. Shi, Phys. Rev. E 65, 046308

(2002).[18] LB boundary condition benchmarks. http://www.

lbmethod.org/bcbench.html.[19] The OpenLB project. http://www.lbmethod.org/

openlb/.[20] J. R. Womersley, J. Physiol. 127, 553 (1955).[21] J. A. Cosgrove, J. M. Buick, S. J. Tonge, C. G. Munro,

C. A. Greated, and D. M. Campbell, J. Phys. A : Math.Gen. 36, 2609 (2003).

[22] O. Walsh, in The Navier-Stokes Equations II – The-

ory and Numerical Methods, edited by J. G. Hey-wood, K. Masuda, R. Rautmann, and S. A. Solonnikov(Springer-Verlag, 1991), vol. 1530 of Lecture Notes in

Mathematics, pp. 305–309.[23] J. Latt and B. Chopard, Int. J. Mod. Phys. C 18, 619

(2007).[24] H. J. H. Clercx and C.-H. Bruneau, Computers & Fluids

35, 245 (2006).[25] M. Griebel, T. Dornseifer, and T. Neunhoffer, Numerical

simulation in fluid dynamics (SIAM, 1998).[26] C.-S. Yih, Fluid Mechanics (McGraw-Hill, 1969).[27] P. J. Dellar, J. Comp. Phys. 190, 351 (2003).[28] Z. Guo and C. Zheng, Phys. Fluids 14, 2007 (2002).

Page 18: Straight velocity boundaries in the lattice Boltzmann method

c1

c2

c3 c4 c5

c6

c7c8

x

y

Figure 1

Page 19: Straight velocity boundaries in the lattice Boltzmann method

Figure 2

Page 20: Straight velocity boundaries in the lattice Boltzmann method

0 0.2 0.4 0.6 0.8 10

0.2

0.4

0.6

0.8

1

y−position in channel

u x

Poiseuille profileEquilibrium on boundaryRegularized boundary condition BC3

Figure 3

Page 21: Straight velocity boundaries in the lattice Boltzmann method

101

102

103

10−7

10−6

10−5

10−4

10−3

(a)

Grid resolution N

Err

or

−2 SlopeInamuroZou/HeRegularizedFinite differenceNonlinear finite difference

Figure 4a

Page 22: Straight velocity boundaries in the lattice Boltzmann method

50 100 150 20010

1

102

103

104

105

(b)

Grid resolution N

Max

imum

Rey

nold

s nu

mbe

r

InamuroZou/HeRegularizedFinite differenceNonlinear FD

Figure 4b

Page 23: Straight velocity boundaries in the lattice Boltzmann method

101

102

10−5

10−4

10−3

(a)

Grid resolution N

Err

or

−2 SlopeInamuroZou/HeRegularizedFinite differenceNonlinear finite difference

Figure 5a

Page 24: Straight velocity boundaries in the lattice Boltzmann method

101

102

10−4

10−3

(b)

Grid resolution N

Err

or

−2 SlopeInamuroZou/HeRegularizedFinite differenceNonlinear finite difference

Figure 5b

Page 25: Straight velocity boundaries in the lattice Boltzmann method

0 0.002 0.004 0.006 0.008 0.0110

−10

10−8

10−6

10−4

10−2

100

(a) N=8

Time

Ene

rgy

InamuroZou/heRegularizedFinite difference

Figure 6a

Page 26: Straight velocity boundaries in the lattice Boltzmann method

2 3 4 5 6

x 10−3

10−12

10−10

10−8

10−6

(b) N=32

Time

Ene

rgy

InamuroZou/heRegularizedFinite difference

Figure 6b

Page 27: Straight velocity boundaries in the lattice Boltzmann method

300 500 80010

−4

10−3

10−2

10−1

Grid resolution N

Err

or

−2 SlopeRegularizedFinite differenceNonlinear finite difference

Figure 7

Page 28: Straight velocity boundaries in the lattice Boltzmann method

101

102

10−6

10−5

10−4

10−3

(a)

Grid resolution N

Err

or

−2 SlopeInamuroZou/HeRegularizedFinite differenceNonlinear finite difference

Figure 8a

Page 29: Straight velocity boundaries in the lattice Boltzmann method

0 20 40 60 80 10010

0

101

102

103

104

105

106

(b)

Grid resolution N

Max

imum

Rey

nold

s nu

mbe

r

InamuroZou/HeRegularizedFinite differenceNonlinear FD

Figure 8b