# HPP model

The Hardy–Pomeau–Pazzis (HPP) model is a fundamental lattice gas automaton for the simulation of gases and liquids. It was a precursor to the lattice Boltzmann methods. From lattice gas automata, it is possible to derive the macroscopic Navier-Stokes equations. Interest in lattice gas automaton methods levelled off in the early 1990s, due to rising interest in the lattice Boltzmann methods.
It was first introduced in papers published in 1973 and 1976 by Jean Hardy, Yves Pomeau and Olivier de Pazzis, whose initials give the model its name. The model can be used as a simple model for both the movement of gases and fluid.

## Model

In this model, the lattice takes the form of a two-dimensional square grid, with particles capable of moving to any of the four adjacent grid points which share a common edge, and particles cannot move diagonally. This means each grid point can only have one of sixteen possible interactions.
* Particles exist only on the grid points, never on the edges or surface of the lattice.
* Each particle has an associated direction (from one grid point to another immediately adjacent grid point).
* Each lattice grid cell can only contain a maximum of one particle for each direction, i.e., contain a total of between zero and four particles.
The following rules also govern the model:
* A single particle moves in a fixed direction until it experiences a collision.
* Two particles experiencing a head-on collision are deflected perpendicularly.
* Two particles experience a collision which isn't head-on simply pass through each other and continue in the same direction.
* Optionally, when a particles collides with the edges of a lattice it can rebound.
The HPP models follows a two-stage update process.

### Collision step

In this step, the above rules 2., 3., and 4. are checked and applied if any collisions have occurred. This results in head-on collision particles changing direction, pass-through collisions continuing unchanged, or non-colliding particles simple remaining the same.

### Transport step

The second step consists of each particle moving one lattice step in the direction they are currently travelling, which could have been changed by the above Collision Step.

## Formal definition

The model operates on an infinite two-dimensional square lattice, where four unit vectors are associated with the following numbers: $1\mapsto \left({\begin{array}{c}1\\0\end{array}}\right),2\mapsto \left({\begin{array}{c}0\\1\end{array}}\right),3\mapsto \left({\begin{array}{c}-1\\0\end{array}}\right),4\mapsto \left({\begin{array}{c}0\\-1\end{array}}\right)$.
Let $X$ be an allowed configuration. The function $\sigma _{X}$ checks for the existence of a particle with a certain velocity, while ${\bar {\sigma }}_{X}$ does the opposite:
$\sigma _{X}(p,q,i)={\begin{cases}1{\text{ if the site }}(p,q){\text{ is occupied by a particle of }}X{\text{ of velocity }}i,\\0{\text{ otherwise.}}\end{cases}}$
${\bar {\sigma }}_{X}(p,q,i)=1-\sigma _{X}(p,q,i)$
The successor $T(X)$ of the configuration $X$ can be calculated using the formulas form the original paper:${\begin{array}{lcl}\sigma _{T(X)}(p,q,1)&=&\sigma _{X}(p-1,q,1)-\Psi _{X}(p,q)\\\sigma _{T(X)}(p,q,2)&=&\sigma _{X}(p,q-1,2)+\Psi _{X}(p,q)\\\sigma _{T(X)}(p,q,3)&=&\sigma _{X}(p+1,q,3)-\Psi _{X}(p,q)\\\sigma _{T(X)}(p,q,4)&=&\sigma _{X}(p,q+1,4)+\Psi _{X}(p,q)\end{array}}$${\begin{array}{lcl}\Psi _{X}(p,q)&=&\psi _{X}^{1}(p,q)-\psi _{X}^{2}(p,q)\\\psi _{X}^{1}(p,q)&=&\sigma _{X}(p-1,q,1)\sigma _{X}(p+1,q,3){\bar {\sigma }}_{X}(p,q-1,2){\bar {\sigma }}_{X}(p,q+1,4)\\\psi _{X}^{2}(p,q)&=&{\bar {\sigma }}_{X}(p-1,q,1){\bar {\sigma }}_{X}(p+1,q,3)\sigma _{X}(p,q-1,2)\sigma _{X}(p,q+1,4)\end{array}}$

## Shortcomings

The model is badly flawed, as momentum is always conserved in both the horizontal and vertical lanes. No energy is ever removed from the model, either by collisions or movement, so it will continue indefinitely.
The HPP model lacked rotational invariance, which made the model highly anisotropic. This means for example, that the vortices produced by the HPP model are square-shaped.