8.3 Lattice Gas Models for Hydrodynamics
8.3.1 Lattice Gas Cellular Automata
The first example of cellular automata was John H. Conway's
computer game "Life": some initial pixel patterns on a screen
are set, and at each iterative step every pixel is set or erased
depending on the status of the neighboring pixels.
[Eigen 82]
Generally, cellular automata are one or twodimensional
bit patterns that evolve in (discrete) time according to certain
simple rules. They have come to play a role in such diverse fields
as informatics
[Wolfram 86],
evolution theory, and the mathematical theory of complexity
[Wolfram 84].
The HPP model
A model representing a twodimensional flow field in terms of bit
patterns was introduced by Hardy, Pomeau and de Pazzis. Their
"HPP model" is defined as follows
[Hardy 73]:
 Represent the flow region by a point lattice
 Populate each grid point $(i,j)$ with up to four "particles" whose
velocities must point into different compass directions
 Absolute value of each velocity is always $v=1$
There are $2^{4}=16$ possible "states" of a grid point.
Representation: Use a 4bit (halfbyte) computer word $a_{i,j}$
to describe the "empty" or "full" status of the compass
directions E,N,W,S by one bit each (see Fig.
8.3.)
Alternative representation:
Combine the bits referring to the same direction at several successive
grid points into one computer word.
Example: In a $16 \times 16$ grid each compass direction described by
a set of 32 words of 1 byte each (see Fig.
8.4.)
Figure 8.4: Storage methods in the HPP model}
Evolution law:
$t_{n}$ $\longrightarrow$ $t_{n}$ by a deterministic rule comprised of two
substeps, Free flight and Scattering.

Free flight: Each particle moves on by one vertex in its
direction of flight. In the representation of Figure
8.4
each "north" bit in the second row (in words
$n_{2}$ and $n_{3}$), if $=1$ at time $t_{n}$ would be reset to $0$;
the respective bit above (in words $n_{0}$ and $n_{1}$) would be set to $1$.
Similar translations take place for the "south" bits.
The $1$bits in the "east" and "west" words are right and
leftshifted, respectively, by one position.
In most programming languages logical operations may be performed not
only with single bits but also with
bytewords or even integers made up of several bytes. In the above
example the new word $n_{0}'$ could be computed as
$
n_{0}'=n_{0}\; \vee \; n_{2}
$
with $\vee$ denoting the bitwise oroperation.
Analogous commands apply to the $s$words.
The $e$ and $w$words have to be handled, in this representation,
in a bitbybit manner. By combining the east and west bits columnwise
the translation may then be formulated as for north and south.
Free flight and boundaries:

Reflection:
Transform all $n$bits in the top row into $s$bits before the translation
takes place.

Periodic boundary conditions: To describe part of a longer tube etc.
Note: Periodic boundary conditions preserve momentum and energy
exactly, while in the presence of reflexion the conservation laws can
hold only on the average.
 Scattering:

If after the translation step a grid point is inhabited by
two particles, change its state according to Fig.
8.5.

Otherwise: the state remains unaltered
Figure 8.5: Scattering law for the HPP model
Momentum and energy are conserved by this scattering rule.
We may write the HPP scattering rule in a concise,
computeradapted way as follows:
$
a_{i,j}'=\{e \oplus u, \, n \oplus u, \, w \oplus u, \, s \oplus u \}
$
where $a_{i,j} \equiv \{e,n,w,s \}$ is the state of grid point
$(i,j)$ before scattering (but after translation), and
$
u \equiv [(e \oplus n) \odot (w \oplus s)] \odot [e \oplus (\neg w)]
$
$\odot$, $\oplus$ and $\neg$ are the logical operators
and, exclusive or and not. ($\oplus$ differs from
$\vee$ in that $1 \oplus 1 = 0$.)
Lookup table: A fast way to implement the scattering rules is
the use of a table containing all possible pre an postscattering
states of a site.
Reviews of the performance of this simple model:
[Frisch 86],
[Wolfram 86B].
Application:
 Population number at a grid point = density at that position
 Sum of velocities at $(i,j)$ = local velocity density
 Coarsegraining in space and time $\longrightarrow$ averaged dynamics obeys
equations similar to the flow equations
 However: only logical operations
$\longrightarrow$ calculations are much faster!
Improvement: the FHP model
Frisch, Hasslacher, and Pomeau
[Frisch 86]:
suggested to introduce hexagonal cells in place of the simple quadratic lattice:
 Six possible flight directions per grid point
 More scattering rules (see Figure
8.6)
Figure 8.6: Scattering rules in the FHP model
Possible refinements of FHP: Possibility of particles at rest
$\longrightarrow$ richer microdynamics.
Advantage of FHP over HPP: Rotational symmetry of the flow distribution,
in spite of the discretized velocities.
FHP in 3 dimensions:
To retain rotational symmetry, a fourdimensional
face centered hypercubic (FCHC) lattice is set up and used in the
propagation and collision steps. The results are then mapped
onto three dimensions following a rule due to
d'Humieres.
Note: In the basic HPP and FHP models the particles lose
their identity in the process of scattering (see Figs.
8.5 and
8.6.)
To determine single particle properties, like velocity autocorrelations,
"tag" some particles and pass the tags in the scattering step
in a unique way.
$\longrightarrow$ Application:
Long time behavior of the velocity autocorrelation function
[Frenkel,
Ernst].
Using a twodimensional FHP simulation with tagging,
Frenkel et al. were able to produce proof for the expected
$t^{1}$ long time tail.
8.3.2 The Lattice Boltzmann Method
Problem with HPP and FHP: Numerical noise $\longrightarrow$
coarsegraining needed to smooth out the results.
Reason: at each grid point, each discrete velocity $\vec{c}_{i}$ may be
taken by just one or no particle.
Improvement: Relax the "zero or one" rule; use
a floating point number to describe the degree to which
each $(\vec{r},\vec{c})$cell is filled.
$\longrightarrow$ Floating point arithmetic again, but digital noise reduced.
Let $f_{i}(\vec{r},t)$ be the density, at time $t$, at position $\vec{r}$ and
velocity $\vec{c}_{i}$.
Let the velocity vectors point to each of the nearest neighbours on the
lattice, with magnitudes such that after one time step
($\Delta t=1$) each particle arrives at that neighbouring site.
Example 1:
2D square lattice; 8 neighbour sites, one "rest" status
($i=0$) $\longrightarrow$ 9 numbers $[f_{i}(\vec{r},t)\, , \; i=0,1, \dots 8]$
at each grid point. For speeds, take
$\vec{c}_{0}=0$, $\vec{c}_{i}=1$ along the 4 grid axes,
$\vec{c}_{i}=\sqrt{2}$ along the 4 diagonal directions.
Example 2:
2D hexagonal (FHP) lattice; 6 nearest neighbours, 1 rest particle.
Example 3:
3D models; invoke the method introduced by
d'Humieres
for lattice gas cellular automata (4D FCHC lattice plus down projection.)
Procedure:
Translation and collision are included in the propagation formula
$
f_{i}(\vec{r}+\vec{c}_{i},t+1)=
f_{i}(\vec{r},t) + \Delta_{i}(f)
$
where $\Delta_{i}(f)$ denotes the increase or decrease of $f_{i}$ due to
the collision process.
Collision term:
Originally, boolean operators were invoked as in the HPP and FHP schemes.
Later the LB model was regarded as a representation of the NS equations,
independent of the lattice gas model.
[Quian 92,
Chen 91, 94]
$\longrightarrow$ New approximations for the collision term:
the single time relaxation expression
$
\Delta_{i}(f)= \frac{\textstyle f_{i}f_{i}^{eq}}{\textstyle \tau}
$
was found to be sufficient to reproduce NavierStokes dynamics.
Here, $1/\tau$ is a relaxation rate, and
$f_{i}^{eq}$ denotes an equilibrium distribution.
For the 2D hexagonal lattice this distribution is
[Quian 95,
Chen 94]
$ \begin{eqnarray}
f_{i=1 \dots 6}^{eq}&=&\frac{\textstyle \rho}{\textstyle 12}
+\frac{\textstyle \rho}{\textstyle 3}\, \vec{e}_{i}\cdot\vec{v}
+\frac{\textstyle 2\rho}{\textstyle 3}\, \left(\vec{e}_{i}\cdot\vec{v}\right)^{2}
\frac{\textstyle \rho}{\textstyle 6}\, \cdot\vec{v}^{2}
\\
f_{i=0}^{eq}&=&\frac{\textstyle \rho}{\textstyle 2}  \rho \vec{v}^{2}
\end{eqnarray} $
where $\vec{e}_{i}$ is a unit vector along $\vec{c}_{i}$, and
$\rho$ and $\vec{v}$ are the hydrodynamic density and
flow velocity, respectively:
$
\rho(\vec{r},t) = \sum_{i} f_{i}(\vec{r},t) \;\;\;\;\;
\rho \vec{v}(\vec{r},t) = \sum_{i} \vec{c}_{i}f_{i}(\vec{r},t)
$
Applications of LB:
 Compressible and incompressible flow
 Basic studies of the dynamics of vortices
 Applied studies of turbulent channel flow
 Oil recovery from sandstone
 etc.
Surveys of LB:
Quian 95
and current synopses on the Web.
vesely 2006
