Lattice Boltzmann Equation

Contents

Lattice Boltzmann Equation#

The discrete version of Boltzmann equation is called lattice Boltzmann equation, and with the BGK collision operator is written as (Mohamad and Kuzmin[1]):

(1)#\[f_i(\boldsymbol{x} + \boldsymbol{c}_i \Delta t, t+\Delta t) - f_i(\boldsymbol{x}, t) = - \omega\bigg[f_i(\boldsymbol{x}, t)-f_i^\mathrm{eq}(\boldsymbol{x}, t)\bigg] + \Delta t\left(1-\frac{\omega}{2}\right)F_i(\boldsymbol{x}, t)\]

where \(f_i\) are the so-called populations and \(\omega = \Delta t / \tau\) is the non-dimensional relaxation frequency. The \(i\) directions are set according to a discrete lattice such as the classical D3Q27. The above equation is also discrete in space and time according to a finite differences scheme Krüger et al.[2]. While \(x\) sits on a cartesian grid with spacing \(\Delta x\), \(t\) has a uniform time-step \(\Delta t / c_s = \sqrt{3}\). \(c_s\) is the speed of sound, used extensively as a scaling factor in LBM context. \(Q_{i\alpha\beta} = c_{i\alpha}c_{i\beta} - c_s^2\delta_{\alpha\beta}\) is the scaled second-order Hermite polynomial and \(\delta_{\alpha\beta}\) is the Kronecker delta. The discrete-velocity force is Guo et al.[3].

(2)#\[F_i = w_i\left[ a_\mathrm{s}^2 c_{i\alpha} F_\alpha + \frac{1}{2} a_\mathrm{s}^4 \left( F_\alpha u_\beta + F_\beta u_\alpha\right)Q_{i\alpha\beta}\right]\]

The moments from discrete velocity force are:

(3)#\[\sum_{i}F_{i}=0\]
(4)#\[\sum_{i}F_{i}c_{i,\alpha}=F_{\alpha}\]
(5)#\[\sum_{i}F_{i}c_{i,\alpha}c_{i,\beta}=F_{\alpha}u_{\beta} + F_{\beta}u_{\alpha}\]

Flow Evolution#

The lattice Boltzmann equation is performed in two stages, named collision and streaming. The right-hand side of the Eq (1) is solved first at collision, where we make \(f_{i}=f_{i}^{\mathrm{eq}}+f_{i}^{\mathrm{neq}}\):

(6)#\[f_i^* = \left(1 - \omega\right)f_{i}^{\mathrm{neq}} + f_i^\mathrm{eq} + \Delta t \left(1 - \frac{\omega}{2}\right) F_i\]

The corresponding amount is called post-collision population, denoted with an asterisk. The final step needed to solve the lattice Boltzmann equation is called streaming, which is a shift of the post-collision populations along their velocity directions:

(7)#\[f_{i}(\boldsymbol{x} + \boldsymbol{c}_{i} \Delta t, t+\Delta t) = f_{i}^{*}(\boldsymbol{x}, t)\]

The collision/streaming procedures account for the evolution of the flow.