lattice gas automata

10
Lattice Gas Automata Introduction to Computational Science University of Amsterdam Amir Masoud Abdol

Upload: amir-masoud-abdol

Post on 25-Jan-2015

565 views

Category:

Education


1 download

DESCRIPTION

Lattice Gas Automata; HPP and FHP-I model

TRANSCRIPT

Page 1: Lattice Gas Automata

Lattice Gas AutomataIntroduction to Computational Science

University of Amsterdam

Amir Masoud Abdol

Page 2: Lattice Gas Automata

Lattice Boltzmann Model

▪ Computational Fluid Dynamics

▪ Simulate the flow of a Newtonian Fluid with collision models.

▪ Instead of solving Navier-Stokes Equations

Page 3: Lattice Gas Automata

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

Page 4: Lattice Gas Automata

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

Page 5: Lattice Gas Automata

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

Page 6: Lattice Gas Automata

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;}

Page 7: Lattice Gas Automata

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

Page 8: Lattice Gas Automata

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

Page 9: Lattice Gas Automata

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

Page 10: Lattice Gas Automata

Thanks!Any questions?