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]):
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].
The moments from discrete velocity force are:
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}}\):
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:
The collision/streaming procedures account for the evolution of the flow.