COMPUTING II: PROJECT H (00/01)

Simulating cluster growth using the Monte Carlo method

As was discussed in Lecture 8, the diffusion of molecules through the air, neutrons through a solid and atoms on surfaces may all be modelled using Monte Carlo methods. Monte Carlo methods may be applied to model systems whose state and evolution are determined by random processes. You have seen how the concept of a random walk is at the heart of the Monte Carlo method. In this project you will write a program that simulates the growth of clusters of atoms using the Monte Carlo method. Some hints and guidelines on developing the algorithms and code are as follows:

  1. The code at the heart of your program will be a 2D random walk routine. To write this code, you will need to use both the random number generation functions described in Lab. Session 8 and the graphics routines described in Lab. Session 3.
  2. Set up a (square) lattice to hold the clusters. At the start of the simulation randomly select a number of sites in the lattice and fill each with an atom - these will be nucleation sites i.e. sites where an atom is "pinned" to the lattice and doesn't move. Growth of clusters will start at these sites.
  3. Drop a molecule at random on the lattice. Let it perform a random walk. After each step check if any of the neighbouring sites are occupied by an atom. If a site is occupied then the atom undergoing the random walk sticks to the neighbouring atom. Go the beginning of step 3.
  4. Repeat step 3 until sufficiently large clusters have formed. Discuss the structure of the clusters you've grown ("Computational Physics", Giordano, may prove useful).