lattice gas automata
DESCRIPTION
Lattice Gas Automata; HPP and FHP-I modelTRANSCRIPT
Lattice Gas AutomataIntroduction to Computational Science
University of Amsterdam
Amir Masoud Abdol
Lattice Boltzmann Model
▪ Computational Fluid Dynamics
▪ Simulate the flow of a Newtonian Fluid with collision models.
▪ Instead of solving Navier-Stokes Equations
Lattice Gas Automata
Its a Cellular Automata method to simulate fluid dynamics by considering according to Lattice Boltzmann Model.
▪ Particles can move in only one directions.
▪ There cannot exist more than one particle at each node heading in the same direction.
▪ The magnitude of the particle velocity is fixed.
▪ A particle cannot remain stationary.
▪ Advantages:
▪ Can be implemented in complex boundaries
▪ No numerical error
▪ Easy to parallelize
▪ Less computation
Click icon to add picture
HPP: Model
It introduced in 1973 by Hardy, Pomeau and de Pazzis
It is deterministic
It supports 4 different velocities
Particles cannot move diagonally
vortices produced by the HPP model are square-shaped.
Simple to implement
Click icon to add picture
HPP: Collisions and Propagations
Collisions:
Two possible collisions
Propagation:
Follow their path
Boundaries:
No boundaries
Periodic boundaries
Closed boundaries with reflective behaviors
HPP: Implementation
Velocities Bits Integer
C1 00001 1
C2 00010 2
C3 00100 4
C4 01000 8
Solid 10000 16
Using Square Lattice (2D Array)
Need 5 bits to implement the lattice
Simple Collision Table
Bitwise operations
Presence of particle can be decided by binary operations
preCollision
postCollision
Integer
Binary
C1+C3 C2+C4 5<>10 00101<>01010
C2+C4 C1+C3 10<>5 01010<>00101
int velocityInC2(int totalVelocity){ return (totalVelocity >> 1) & 1;}
Click icon to add picture
FHP: Model
It introduced in 1986 by Uriel Frisch, Brosl Hasslacher and Yves Pomeau
It is not deterministic
It supports 6 different velocities
Particle can move diagonally
More Realistic
Difficult to Implement
Click icon to add picture
FHP: Collisions and Propagations
Collisions
Two way collisions
Three way collisions
Random bit decide about the possible post-collision
Propagations
Just simply moving in their direction
Bounce Back
Reflection
FHP: Implementation
Velocities
Binary Integer
C1 00000001
1
C2 00000010
2
C3 00000100
4
C4 00001000
8
C5 00010000
16
C6 00100000
32
SOLID 01000000
64
RANDOM 10000000
128
Implementing Hexagonal Lattice with 2D array
Using Collisions Table
Contain all possible collisions
Boundaries:
Closed
Bounce Back Rules
No Boundaries
Periodic Boundaries
preCollision
postCollision
Integer
C1+C4 C2+C5C3+C6
9 <> 189 <> 36
C1+C3+C5 C2+C4+C6 21 <> 42
For instance:10010010 C2+C5+RANDOM
Thanks!Any questions?