Science and Computers -- PHY307/607

Lab 11. - Diffusion Limited Aggregation and Fractals

In this lab you will use a Java applet which simulates the process of diffusion limited aggregation. This is a mode of crystal growth in which particles diffuse randomly in the vicinity of the growing crystal until they get close enough to adhere to the cluster. This process typically produces extended, filamentary structures which will turn out to be fractal - their mass will scale not as the square of their linear size (such as you would expect for regular 2D objects) but as a fractional power. We will try to estimate this fractal dimension from the results of the simulations.

READ THIS SECTION FIRST !

In the simulation the particles move only on a grid of a certain size. Initially, the seed crystal is placed at the center of this grid. Particles are then released from a random site on the boundary of the grid and undergo a random walk towards the center. At each stage of this walk a particle merely hops from its current site to a neighboring one on the grid selected at random. This dynamics simulates Brownian or diffusive motion and is a realistic picture of the motion of small particles in a low density vapour. If the particle gets within one grid spacing of a site on the growing cluster it sticks and becomes part of the cluster. A new particle is then released from the boundary. The cluster particles are colored as blue circles and the red tracks show the random paths followed by each diffusing particle. The simulation is stopped when any part of the cluster reaches the boundary. The number of cluster sites can be read off from the text box.
  1. Go the Labs section of the PHY307 page and download the Java sources codes DLA.java, Plot.java, Controls.java, Simulation.java and Cluster.java to your SUnix account. Place them in a new subdirectory of PHY307 called DLA. Also, create a file DLA.html in this new directory. Inside this file place the line
    
    < applet code=DLA.class width=300 height=300 > < /applet >
    
  2. Use pico to set the variable LATTICE in the file DLA.java to 7.
  3. Compile the codes with javac *.java and set the correct file permissions of the resulting .class files and the .html file so they can be loaded by Netscape.
  4. Link to your new applet using Netscape. Hit the button Start Growing. Notice that the cluster grows slowly at first as the diffusing particles take a long time to reach the center. Note the number of particles in the final cluster.
  5. Repeat the above simulation 5 times recording the size of the final cluster each time.
  6. Calculate the average cluster size for this value of the LATTICE variable - call it C(7).
  7. Now edit the code DLA.java and set the variable LATTICE to 11. Recompile the codes and (shift) reload the applet. Again do 5 separate runs of the simulation noting down the number of sites in the final cluster. Let C(11) be the average cluster size for LATTICE=11
  8. Repeat all of these steps for LATTICE=15 and LATTICE=19.
  9. Take the log of these average cluster sizes log(C(i)) for each of the 4 lattice sizes i=7,11,15,19. Also compute log(i).
  10. Fire up Excel and enter the values of log(i) as column A and the corresponding values of log(C(i)) in column B.
  11. Next, find the chart wizard on the top menu bar and select scatter XY plot. You should see a plot of log(C(i)) vs log(i) appear within Excel.
  12. Under the chart menu that appears click on the `Add Trendline' option. Under the trendline options select the `display equation' box. You should now see a linear fit to your points together with the equation of the fit. This gives you the gradient of the line.
  13. The mean cluster size is proportional to the mass of the crystal. Thus we are plotting the log(mass) against log(size). The gradient of the resulting (hopefully roughly straight!) line is the (correlation) fractal dimension. From your data estimate the correlation fractal dimension for 2d DLA.

Optional

You should see that the data is pretty rough. To improve it you need to do more runs at a fixed lattice size - this improves the averages which suffer from large statistical errors (because of the random nature of the process). Try 10 simulations at each lattice size. Also, try bigger lattices ...
To get credit for this lab you need to
  1. Hand in written answers to the questions posed in the lab.
The deadline to get these things to me is next Thursday.

Back to the PHY307 Homepage

This page maintained by Simon Catterall, last updated 8 November, 2000.