Home Download Help Resources Extensions FAQ References Contact Us Donate Models: Library Community Modeling Commons User Manuals: Web Printable Chinese Czech Japanese Spanish

NetLogo Models Library: 
If you download the NetLogo application, this model is included. (You can also run this model in your browser, but we don't recommend it; details here.) 
This model demonstrates circular wave propagation using a cellular automaton on a square grid. The behavior of the waves approximates the NavierStokes equation, a well established fluid dynamics equation discovered in 1823.
In the model, space is divided into cells which are occupied by the gas particles. Each particle has the same mass and absolute velocity (each particle will move only a single cell at each time step). Space is broken up into neighborhoods of 2x2 cell squares. Collisions occur when multiple particles are in the same square and occur instantaneously, conserving both mass and momentum.
The model is implemented using a Margolus neighborhood of 2x2 cell squares in which the particles belong to two separate spacetime sublattices, propagation and collision, (sometimes referred to as "even" and "odd" lattices), which evolve independently of each other.
The CA can be summarized with the following core rules:
```text W W > W W B W > W W B W > W B W W W W W W W B W B B W
B W > W B W B > B B B B > B B B W W B B B B W B B B B ```
It applies these rules to the even lattice of 2x2 squares followed by the odd lattice of 2x2 squares. Specifically, this means that the top left patch of four applies one of the above rules, then the bottom right patch of four does the same. To run the model in reverse, we simply switch the order of those two operations. No patch gets changed more then twice per tick. That means that each patch sees only one possible even rule and one possible odd rule each iteration.
The basic controls for the model are: SETUP  Sets up patches with a given percentage of particles DENSITY  Percentage of particles in gas GO  Run the model REVERSE  Run the model in reverse
These controls let you "paint" an initial setup in the view using the mouse: DRAWCIRCLE  Clicking any location in the view creates a solid circle of particles RADIUS  Controls the radius of the circles
Drawing a circle in the center of the world and clicking GO creates a circular wave that travels through the lattice. Once the wave reaches the edges of the world, it wraps around the sides and causes the wave to collide with itself. You may stop the model by clicking GO again, and reverse the system by clicking REVERSE. The wave will now implode and eventually return to its original starting state.
How does the density of the center of the wave vary over time? Why?
Why does the model appear to act the same when run forwards and backwards?
How does the density of the gas effect the propagation of the wave? Try running the model with various DENSITY settings. Why do certain densities impede the propagation of waves?
What happens when you create multiple compressions in the gas and run the model?
Can you create obstacles that deflect the movement of particles?
This particular model is known as the HPP model. The HPP model is very limited. The FHP (Frisch, Hasslacher and Pomeau) model was invented in the mideighties in order to improve the accuracy of the HPP model. The underlying rules of the FHP model are similar to that of the HPP model except that the FHP model has a symmetrygroup order of six. The hexagonal lattice allows for more advanced modeling, such as hydrodynamical simulations. Can you write a model that emulates a hexagonal lattice in NetLogo?
In order for the algorithm to operate correctly, the size of the lattice must be even in both dimensions. That means there is no unique center patch. Since there is no center patch, we chose to place the origin (0, 0) patch in the lower left corner. (The model rules are not coordinatebased, though, so it doesn't really matter where the origin is.)
Thanks to Ethan Bakshy for his work on this model.
For more information about lattice gas automata, see:
J. Hardy, Y. Pomeau & O. de Pazzis, Time evolution of twodimensional model system. I. Invariant states and time correlation functions, J. Math. Phys. 14 (1973), pp. 17461759.
U. Frisch, B. Hasslacher & Y. Pomeau, Latticegas automata for the NavierStokes equation, Phys. Rev. Lett. 56 (1986), pp. 15051508.
T. Toffoli and N. Margolus. 1987. "Cellular Automata Machines: A New Environment for Modeling".
Wolfram, S. 2002. A New Kind of Science. Wolfram Media Inc. Champaign, IL.
If you mention this model or the NetLogo software in a publication, we ask that you include the citations below.
For the model itself:
Please cite the NetLogo software as:
Copyright 2002 Uri Wilensky.
This work is licensed under the Creative Commons AttributionNonCommercialShareAlike 3.0 License. To view a copy of this license, visit https://creativecommons.org/licenses/byncsa/3.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
Commercial licenses are also available. To inquire about commercial licenses, please contact Uri Wilensky at uri@northwestern.edu.
This model was created as part of the projects: PARTICIPATORY SIMULATIONS: NETWORKBASED DESIGN FOR SYSTEMS LEARNING IN CLASSROOMS and/or INTEGRATED SIMULATION AND MODELING ENVIRONMENT. The project gratefully acknowledges the support of the National Science Foundation (REPP & ROLE programs)  grant numbers REC #9814682 and REC0126227.
(back to the NetLogo Models Library)