Lattice Boltzmann Method: Rui Liu Chengcheng Lu Junjun Li
Lattice Boltzmann Method: Rui Liu Chengcheng Lu Junjun Li
Rui Liu
Chengcheng Lu
Junjun Li
Project Outline
• Introduction
• Historical Perspective
• General Principle
• Governing Equation
• Hand-Calculation Example
• Numerical Example
• Field Application
• References
Introduction
Lattice Boltzmann Method is a dynamic method that simulates the macroscopic behavior
of fluids by using a simple mesoscopic model. It inherited the main principles of Lattice
Gas Automaton (LGA) and made improvements. From lattice gas automaton, it is possible
to derive the macroscopic Navier-Stokes equations.
Introduction
Specialty of Lattice Boltzmann Method & Difference from the traditional macroscopic
numerical calculation method:
1. It is based on and starts from Non-equilibrium statistical mechanics and Discrete model
2. It connected dynamic lattice model, whose time, space and velocity phase space are fully
discrete, with Boltzmann equation.
3. The implementation of this method can describe the law of fluid motion without
Solving Navier-Stokes equations
Introduction
Achievements of Lattice Boltzmann method from a macroscopic perspective
All in all, its successful application reflect a fundamental principle of scientific research.
That is, conservation is the most fundamental law in the material world, which guides the
movement and development of the material world. There are certain internal links between
the macroscopic and microscopic world, which is in fact a dialectical unity.
Introduction
Compare LBM with CFD
LBM vs. CFD (traditional)
The following figure will show that different CFD equations could be applied
to different ranges of 𝑘↓𝑛 .
Introduction
Introduction
Compared with traditional computational fluid dynamics methods, Lattice-Boltzmann method has the
following advantages:
(1) Its algorithm is simple, which can simulate various complicated nonlinear macroscopic phenomena;
(3) The values of pressure in the lattice Boltzmann method can be directly solved by the state equation;
(4) It is easy to program, and the processing before and after calculation is also very simple
(5) It is easy to process and complete the parallel tasks based LBM;
Mathematic
Boltzmann equation LBE
physics
Lattice Gas
Newton automata
Historical Perspective
Ø reflecting the true collision of granules, so that we can get the fluid Macro
features for a long time.
Historical Perspective
J·Hardy, Y·Pomeau and O·Pazzis (1973)-HPP Model
Non-Galilean invariance!!
Still improving !!
Historical Perspective
Disadvantages:
• Lack of Galilean invariance
• Statistical noise
• Difficulty in expanding the model to handle three dimensional problems
Why Lattice Boltzmann method?
ü Most of the calculations in LBM are local and more suitable for parallel
Ø LBM requires a lot of memory to store the distribution function, which is also the main bottleneck of
LBM
Ø The nature of LBM is time-dependent, so calculating steady flow is not particularly efficient
Why Lattice Boltzmann method?
Geometry
ü LBM is well suited for mass-conservative fluid simulation of complex boundaries (e.g.
porous media)
ü LBM can well realize mass-conserving mobile boundary problems and it is very attractive
for soft material simulation
Thermal effect
ü Thermal disturbances originate from the microscopic and average macroscopic, LBM
includes them in the mesoscopic description
Ø Simulation of energy conservation in LBM is not straightforward
Sound generation
Ø LBM is not suitable for direct simulation of long-distance acoustic transmission under real
adhesion
Ø LBM does not adapt to strong compressible (eg ultrasonic and transonic) fluids
Why Lattice Boltzmann method?
ü Many methods for solving multiphase flow and multicomponent flow using LBM
ü LBM is suitable for simulation of multi-phase flow and multi-component flow in complex
boundary
Ø The lattice-based method has the existence of spurious currents between fluid-fluid interface
Ø The current multiphase flow and multicomponent flow methods of LBM do not make good
use of the kinetics principle.
Ø In the simulation of multi-phase flow and multi-component flow, the values of viscosity and
density are limited.
General Principles
General Principles
Lattice Gas Automata (LGA)
C3 C2
C4 C1
C5
C6
General Principles
https://www.youtube.com/watch?v=8qorVDJS1QA
General Principles
Lattice Gas Automata (LGA)
ωi = 4/6, 1/6,
1/6 DnQm
LBM Equation
After discretizing
Governing Equation
Chapman-Enskog Expansion
Governing Equation
Relative to Macroscopic View
Hand-Calculation Example
Model & Example Introduction
2. The pressure of the pipeline’s left boundary changes to one (P=1) when
time goes by (t>0).
As assumed before, when time goes by, the pressure of the left boundary is one
(PBoundary=1)
For this case, distribution function 𝑓↓𝑖 is set as 𝑤↓𝑖 in first element, and in the second and
third elements distribution function 𝑓↓𝑖 set as 𝐶↓𝑖 initially.
Hand-Calculation Example
Therefore:
𝑃(2,0)=0;𝑃(3,0)=0
Hand-Calculation Example
Initialization Calculation------Equilibrium Distribution Function Calculation
Because,
𝒇↓𝒊↑𝒆𝒒 (𝒙,𝒕)=𝒘↓𝒊 𝑷(𝒙,𝒕)
So,
𝒇↓𝟎↑𝒆𝒒 (𝟏,𝟎)=𝒘↓𝟏 ×𝑷(𝟏,𝟎)=𝟒/𝟔 ×𝟏=𝟒/𝟔 ;
In the same way, the following the result values of equilibrium distribution function could be obtained:
Therefore,
𝑓↓0 (1,1)=𝑓↓0↑∗ (1,0)=2/3 ;
𝑓↓0 (2,1)=𝑓↓0↑∗ (2,0)=0;
𝑓↓0 (3,1)=𝑓↓0↑∗ (3,0)=0;
Similarly,
That is a whole process of one iteration, aiming to obtain the final result, more iterations
are needed, here is just an example. When the latest macroscopic properties are pretty
closed to the previous macroscopic result, get out of the iterations and output the final
result.
Matlab Implementation
Define Velocity Vector
Matlab Implementation
% D2Q9 LATTICE CONSTANTS
t = [4/9, 1/9,1/9,1/9,1/9, 1/36,1/36,1/36,1/36];
Cx= [0, 1, 0, -1, 0, 1, -1, -1, 1];
Cy= [0, 0, 1, 0, -1, 1, 1, -1, -1];
Opp=[1, 4, 5, 2, 3, 8, 9, 6, 7];
col = [2:(ly-1)];
[y,x]= mesggrid(1:ly,1:lx);
obst = (x-obst_x).^2 + (y-obst_y).^2 <= obst_r.^2;
obst(:,[1,ly]) = 1;
bbRegion = find(obst);
% MACROSCOPIC VARIABLES
rho = sum(fIn); % Density
Ux = reshape ( ...
(cx * reshape(fIn,9,lx*ly)), 1,lx,ly) ./rho;
Uy = reshape ( ...
(cy * reshape(fIn,9,lx*ly)), 1,lx,ly) ./rho
Matlab Implementation
% COLLISION STEP
for i=1:9
cu = 3*(cx(i)*ux+cy(i)*uy);
fEq(i,:,:) = rho .* t(i) .* ...
( 1 + cu + 1/2*(cu.*cu) ...
-3/2*(ux.^2+uy.^2) );
fOut(i,:,:) = fIn(i,:,:) - ...
omega .* (fIn(i,:,:)-fEq(i,:,:));
end
Matlab Implementation
% MICROSCOPIC BOUNDARY CONDITIONS
for i=1:9
% Left boundary
fOut(i,1,col) = fEq(i,1,col) + ...
18*t(i)*cx(i)*cy(i)* ( fIn(8,1,col) - ...
fIn(7,1,col)-fEq(8,1,col)+fEq(7,1,col) );
% Right boundary
fOut(i,lx,col) = fEq(i,lx,col) + ...
18*t(i)*cx(i)*cy(i)* ( fIn(6,lx,col) - ...
fIn(9,lx,col)-fEq(6,lx,col)+fEq(9,lx,col) );
end
Matlab Implementation
% STREAMING STEP
for i=1:9
fIn(i,:,:) = ...
circshift(fOut(i,:,:), [0,cx(i),cy(i)]);
end
% VISUALIZATION
if (mod(cycle,tPlot)==0)
u = reshape(sqrt(ux.^2+uy.^2),lx,ly);
u(bbRegion) = nan;
imagesc(u');
axis equal off; drawnow
end
end
% end main loop
Results
Other simulation
Flow around moving boundary
Field Application
1. Land-cover variations
2. Human-land relationships