A CA is a spatially and temporally discrete computer algorithm in which one or more discrete variables are associated with each site in a lattice. For our cement models, each site represents a small element (pixel) of a 2D or 3D cement microstructure. Each site in the lattice behaves as a Boolean processor; the values of the variables at each lattice site - its "state" - are updated by a small set of rules which define the new state of each site based on its current state and on the current states of neighbouring sites. The rules are applied to every site in one time step and generate the new state of the system at the next step. The neighbourhood can be arbitrarily large, but it usually comprises no more than the nearest neighbours. The fact that the state variables are discrete means that the quantities they represent and derived quantities
are also discrete (e:g: mass, momentum, velocity, etc.). In modelling systems which include moving pixels, the state identifies the type of pixel (chemical species) present at that lattice site. Only a single species occupies one lattice site at any instant of time. The movement of pixels is modelled by exchanging the state of one lattice site with that of a neighbour. Reactions can be modelled by rules which remove given species when they are adjacent in the lattice and replace them with new species.
A well-known feature of CA computations is their ability to produce surprisingly complex behaviour from very simple rules. A CA can produce a range of periodic, chaotic and generally very complex behaviours with intricate spatial and temporal patterns (Wolfram 1986a). Complex boundary conditions in heterogenous sytems (e.g., porous media) can also be easily handled by CAS. These features have led to active research into the applicability of CA-based algorithms to modelling physical phenomena which exhibit such complex spatial and/or temporal behaviours. Examples of such work include the application of CAS to modelling two-phase flow (Boghosian et al 1988), flow in porous media (Rothman 1988), chemical reactions in porous media (Wells et al 1991), and coupled-reaction-diffusion systems (Dab et al 1991). Further examples can be found in the workshop proceedings edited by Doolen (1989). Many of these examples are "lattice gas" CAS, a class of CA so named because they model fluids as particles which are restricted to moving between discrete positions in the CA lattice.
The approach to modelling a physical system using a CA is different from more conventional approaches. Traditionally, a model is formulated using continuum mathematics, usually in the form of a partial differential equation (PDE). Such equations are usually solved numerically, and the numerical solution involves discretization (finite difference and finite element techniques, real numbers to floating point representations, etc.). For example, in fluid mechanics, one can either work with the Navier-Stokes equations continuum approximation) or molecular dynamics, in which one uses as complete a picture of the microscopic world as possible, usually Newton's equations of motion plus details of intermolecular forces. The CA approach lies between these two extremes. It is discrete in time and space (unlike PDEs before numerical solution) and it ignores the full dynamics and details of the intermolecular forces. For example, the coarse-grained macroscopically averaged behaviour of lattice gas CAS obey the hydrodynamical equations of motion for an incompressible Navier-Stokes fluid (at least for low Reynolds numbers) (Wolfram 1986b). Since the Navier-Stokes equations are used to model flow in a wide range of viscous fluids with very different intermolecular forces, it is evident that much of the detailed nature of these forces is irrelevant in determining fluid flow patterns. Thus one avoids describing in complete detail all the physical and chemical processes that occur when using CA. Instead, one attempts to find the simplest microscopic model which shows, as far as is possible, the complete spectrum of macroscopic behaviours of the real system being modelled.
Though a "pure" CA exclusively uses rules which change the state of a site based on a Boolean function of the states of its local neighbours, it is often useful to use less constrained rules for simulation applications. Sometimes rules are used which update many sites or make use of non-local information, e.g. a global test flag or a globally computed concentration of a given species (i.e. total number of sites in a given state). Rules may include any computable function on the state desired. The advantage of pure CA is that its computational structure is inherently parallel and it can potentially of being run on a parallel computer very efficiently (Boghosian et al 1988, Hillis 1984). The use of rules which access non-local information can be supported by specialized machine hardware or can be replaced with rules which produce similar effects but only require local information, and thus the parallelism of the CA program can be maintained.
CAS are hence attractive in modelling the complex chemistry and microstructure of a hydrating cement slurry. This work on cement hydration extends the CA approach to modelling a system which is inherently complex and difficult to model with traditional approaches.