A Cellular Automata Model for Crystallization
Matthew Meyer
Department of Chemical and Biochemical Engineering, University of California, Irvine
mcmeyer@uci.edu
Abstract
Cellular automata shall be used to simulate some different crystallization models on a two-dimensional lattice. The output shall be plotted on a two-dimensional axis.
Cellular Automata
Cellular automata is a dynamic method for modeling the behavior of a complex system. The model is composed of a one-, two-, or three-dimensional "lattice" of sites, called "cells," each described by a particular "state." The state of a given cell, i, is determined by the state of the "neighborhood" of cells surrounding cell i. The changes to cell i are determined by a set of "rules" which uniquely define the cellular automata model. By simultaneously applying these rules uniformly and iteratively to each cell in the lattice, the simulation is performed.
A wealth of cellular automata information exists on the Internet. Below are a few such sources:
http://www.yahoo.com/Science/Artificial_Life/Cellular_Automata/
http://www.wolfram.com/s.wolfram/articles/indices/ca.html
news:comp.theory.cell-automata
Input Specifications
This simulation executable shall be called crystallize and will take the following command-line arguments/options (square brackets indicate optional arguments):
crystallize <args>
<args>:==
[-h] Displays usage and command-line argument help.
[-i<iterations>] Number of iterations to perform for the simulation.
[-c<columns>] Number of columns in the 2D lattice.
[-r<rows>] Number of rows in the 2D lattice.
-m<model> Which model to use.
[-I] Interactively prompt the user for input.
Output Specifications
The output of crystallize shall be a two-dimensional plot of the cellular automata crystallization simulation resulting from the given parameters. This plot shall either be created iteratively (updated after each iteration), in order to show the progression of the simulation, or just once, after the simulation has run to completion.
C++ Classes for the Simulation
Although this simulation shall focus on a two-dimensional cellular automata model for crystallization, the classes used for this simulation should be flexible enough to allow for easy extension to one-, three-, or n-dimensional lattice cellular automata models for different systems (i.e., not just crystallization).
The classes used to create crystallize shall include (but may not be limited to):
CellularAutomata
Description/Features:
2D_CellularAutomata
Description/Features:
CrystallizationModel_1
Description/Features:
CrystallizationModel_2
Description/Features:
Cell
Description/Features: