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 NavierStokes equation on a lid driven cavity benchmark test will be made.
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 Introduction 2 Lattice gas 3 From LGA to LBM 3.1 BGK model equation 3.2 Equilibrium distribution function Macroscopic quantities Reynolds number Lattice arrangements 6.1 Two-dimensional lattice arrangements 8 Boundary conditions 7.1 Bounceback Driven cavity 2D 10 8.1 Driven cavity with LBM 10 8.2 Results 11 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 Hamilton’s 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 don’t 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 it’s 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 Macroscopic scale - continuum FDM, FVM, FEM Navier-Stokes equation Mesoscopic scale LBM Boltzmann equation Microscopic scale Molecular dynamics Hamilton’s 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 Let’s 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, , for hexagonal lattice frequently used in LGA simulations Boolean algebra has the advantage that it is without round-off errors There can be either or particle at a lattice node ni (x, t) = ni (x, t) = 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, Number -1 means that the particle was destroyed, leaves things unchanged and means new particle is created Boolean nature is preserved It is important to stress that interaction is completely local Neighbouring sites 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 we see an example of head-on collision of two particles at three sequential times (t − 1, t, t + 1) At t − we have two incoming particles at sites and 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 + 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 , e3 t−1 e2 e4 t t+1 t n1,4 = n2,3,5,6 = e1 e5 n1 e6 n2 n4 n5 t+1 n2,5 = n1,3,4,6 = 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 n’s is boolean AND function If the expression has a value of 1, then collision is possible For example in figure we get 1100 → 1111 = 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 = nk These functions are an ensemble average of nk and real variables [1, 4] nk can be or whereas fk can be any real number between and 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 e x x 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 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 don’t 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 → 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] Let’s 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 Ω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 k’s 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 ν= τ− cs , Navier-Stokes equation ρ ∂u ∂t Lattice Boltzmann equation ∂f ∂t + (u · ∇)u = −∇p + µ∇ u + 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 ∂f + e · ∇f = − (f − f EQ ) ∂t τ The form of the Boltzmann equation in a specific direction would be ∂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 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 : f˜k (xk , t + ∆t) = fk (xk , t) − (fk − fkEQ ) , τ streaming step : fk (xk + ek ∆t, t + ∆t) = f˜k (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 Maxwell’s distribution function for low Mach number M We start with normalized Maxwell’s distribution function ρ − (e−u)2 ρ − (e·e) (2e·u−u·u) f= e = e 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 f= ρ − (e·e) e + 3(e · u) − (u · u) + (e · u)2 2π/3 2 (4) The expansion is done up to second order O(u·u = 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 fkEQ = ρwk + 3(ek · u) − (u · u) + (ek · u)2 , (5) 2 where k runs from 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 ρ(x, t) = m f (x, e, t)de, ρ(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 ρ = fkEQ , fk = k=0 (6) k=0 8 ρu = ek fkEQ ek fk = k=1 (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 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 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 we choose ∆tLBM ? Error in the LBM because of compressibility scales like Mach number squared M , 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, let’s make an example with the driven cavity problem (see §8) Square cavity of 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 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 wk = 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 Model e 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 f0 64 , f1,2,3,4 12 1 f0 , f1, ,6 12 , f1,2,3,4 19 , f5,6,7,8 f0 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 = f5 + (f1 − f3 ) − ρN uN , 2 1 = f6 + (f3 − f1 ) + ρN uN 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 LBM’s 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 Re≥5000 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 and 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 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 = ,6 ,2 ,0 0 0 0 0 0 0 ,0 0 ,5 0 0 ,0 R e = R e = R e = R e = R e = R e = R e = R e = Y V e r tic a l v e lo c ity , Y = ,4 -0 ,2 -0 ,5 -0 ,4 -1 ,0 -0 ,6 -1 ,0 -0 ,5 ,0 ,5 ,0 -0 ,4 -0 ,2 ,0 X ,2 ,4 ,6 1 0 0 0 0 0 0 0 0 0 ,8 ,0 H o r iz o n ta l v e lo c ity , X = 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) ,0 ,0 R e = R e = R e = R e = ,8 0 0 0 0 L B M F D M L B M F D M R e = 0 R e = 0 0 ,8 ,6 Y Y ,6 ,4 ,4 ,2 ,2 ,0 ,0 -0 ,4 -0 ,2 ,0 ,2 ,4 ,6 ,8 -0 ,0 ,0 -0 ,0 -0 ,0 (a) Normalized horizontal velocity son between LBM and FDM -0 ,0 ,0 0 ,0 ,0 ,0 ,0 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 = 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 ,4 R e = R e = R e = R e = ,3 L B M F D M L B M F D M R e = 0 R e = 0 0 ,0 0 ,0 ,0 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 = ,2 0 0 0 0 ,1 ,0 -0 ,1 -0 ,2 ,0 ,0 ,0 0 -0 ,0 -0 ,0 -0 ,3 -0 ,0 -0 ,4 -0 ,0 -0 ,5 -0 ,0 0 ,0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,0 ,0 (a) Normalized vertical velocity between LBM and FDM ,2 ,4 ,6 ,8 ,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 x y x y x y A 0.6188 0.7357 0.0375 0.0313 0.9375 0.0563 B 0.6172 0.7344 0.0313 0.0391 0.9453 0.0625 C 0.6196 0.7373 0.0392 0.0353 0.9451 0.0627 D 0.6157 0.7411 0.0337 0.0342 0.9412 0.0588 A 0.5563 0.6000 0.0500 0.0500 0.8875 0.1188 B 0.5547 0.6055 0.0508 0.0469 0.8906 0.1250 C 0.5608 0.6078 0.0549 0.0510 0.8902 0.1255 D 0.5490 0.6040 0.0470 0.0514 0.8784 0.1176 A 0.5438 0.5625 0.0750 0.0813 0.8625 0.1063 B 0.5313 0.5625 0.0859 0.0781 0.8594 0.1094 C 0.5333 0.5647 0.0902 0.0784 0.8667 0.1137 D 0.5216 0.5647 0.0877 0.0757 0.8510 0.1059 A 0.5125 0.5313 0.0625 0.1563 0.8500 0.0813 B 0.5117 0.5352 0.0703 0.1367 0.8086 0.0742 C 0.5176 0.5373 0.0784 0.1373 0.8078 0.0745 D 0.5137 0.5333 0.0725 0.1376 0.8000 0.0706 B 0.5117 0.5322 0.0645 0.1504 0.7813 0.0625 C 0.5176 0.5333 0.0706 0.1529 0.7922 0.0667 D 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 x y B 0.0625 0.9102 C 0.0667 0.9059 D 0.0644 0.9082 B 0.0664 0.9141 C 0.0706 0.9098 D 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 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 ... 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,... 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, ... 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)