Diffusion-Limited Aggregation
Andrew Pinski
Introduction
Diffusion limited aggregation1 is a model for crystal growth or for the coalescing of dust particles. To start I would like to define some basic terms which are used throughout the paper. Diffusion is the movement of particles due to temperature fluctuations and seen in Brownian motion. Diffusion can be simulated by a random walk on a computer. An aggregate is a collection of particles that are connected together. A growth process is called diffusion-limited when the aggregate increases in size by one particle at a time rather than by bunches. This happens since the density of particles is low and thus the particles do not come into contact with each other before reaching the aggregate.
The method
We start with a seed particle at the origin of a lattice. Another particle is allowed to walk randomly from far away until it is adjacent to the occupied site. It stops with a certain probability, called the sticking coefficient. If the particle does not stick, it moves on until it sticks. Then another particle is launched and moves until it is adjacent to the aggregate. Again it will stick only with a certain (same) probability. This process repeats.
Fractals
To define what a fractal is, first consider the coastline of Great Britain3. To measure the length of the coastline we need a ruler; with a meter stick, we measure the coastline and get a total length. Now with a smaller ruler, we measure it again and obtain a longer length. As we use smaller and smaller rulers, we obtain longer and longer lengths. If we use larger and larger rulers we obtain smaller and smaller total lengths. Because the coastline wiggles, the length is different when using different sized rulers. The coastline is considered to be a self-similar fractal if the length, as a function of the size of the ruler, follows a power law.
To determine the fractal dimension of the aggregate, first consider N(R), the number of particles that are closer than some distance R away from the center of mass. For a solid object in one dimension, the number is proportional to R. In two dimensions, this number is proportional to R2. In three dimensions, this number is proportional to R3.
Thus the number N(R) is proportional to R raised to a power which is the dimension. The function N(R) in Swiss cheese or other objects with holes, such as a fractal, obeys a power law relationship with a fractional power. This fractional power is the fractal dimension. To measure the fractal dimension, consider a log-log plot, that is a plot of the logarithm of N(R) versus the logarithm of R. The log-log plot should be linear and the slope of the line is the fractal dimension. For most objects, this relationship holds true over a finite range of R. At small R this relationship is limited by the size of the particles that make up the object. At large R this relationship is limited by the size of the object.
Algorithm
Below is the procedure that I used to create my computer program. Start by placing a seed particle in the middle of an area by taking an element of an initially zeroed array and setting it to one. The following steps are repeated until a big hunk is formed; usually over 30,000 times. Place another particle some reasonable distance away from the aggregate. The particle diffuses (under goes a random walk) until it is next to the aggregate. On a square lattice four adjacent sites are available; on a triangular lattice six sites are adjacent. Then it will stick (the procedure stops) with certain probability; the sticking coefficient. A random number between zero and one is compared to the sticking coefficient. If the random number is larger than the sticking coefficient, the particle does not stick and it will move on until it does. In the program I have to make sure the particles do not pass through one another. If the particle wanders out of a certain area, the particle is discarded.
The fractal dimension is calculated next. First allocate memory for an array having a size equal to the maximum distance that a particle is away from the center of mass. Next fill the array. The index j of the array corresponds to a distance. For each particle, find the distance between it and the center of mass. All elements in the array with the index j greater than (or equal to) that distance are incremented by one. Plot the logarithm of the values of the array versus the logarithm of the index that corresponds to a distance. The resulting curve should be a line. The slope is the fractal dimension. Since the finite size of the particle and finite extent of the aggregate limits the lengths at which the power law applies, the first few points and the last few points on the graph should not be considered when fitting the curve with a straight line.
Results
When I simulated the aggregate on a square lattice (Figure 1), the figure showed that were four branches from the center when the aggregate was produced on a square lattice with a sticking coefficient of 1.0. The fractal dimension for this aggregate is 1.64. This was comparable to the value of 1.66, which I found in a paper1 by Witten and Sander.
The fractal dimension of the aggregate grown with the sticking coefficient of 0.5 was 1.54 even though the aggregate looked denser than the one with sticking coefficient of 1.0. To see how the fractal dimension depends on statistical factors, I ran my program with a sticking coefficient of 0.5 twelve times. I calculated the average and found it to be 1.67, with a standard deviation of 0.08. The features seem to be thicker and coarser compared to the previous simulation even though the fractal dimension is virtually unchanged.
The features become even thicker as the sticking coefficient is decreased to 0.1. The trend continues until the features merge together and the aggregate becomes one big clump. The fractal dimension of the aggregate with a sticking coefficient of 0.1 is 1.38, is 1.92 with a sticking coefficient of 0.01, and is 1.94 with a sticking coefficient of 0.01. As you can see from figure 6, the fractal dimension approaches 2 as the sticking coefficient vanishes. At sticking coefficient 0.1, I calculated a low value for the fractal dimension. I believe that this low value is due to statistical fluctuations and I believe that if I had repeated it twelve times, I would have gotten a different answer. This is something I should check later.
Now consider the aggregates grown on a triangular lattice to see what changes. Again the features on the aggregate become thicker as the sticking coefficient is decreased. The fractal dimension of the aggregate with a sticking coefficient of 1.0 is 1.72, is 1.38 with a sticking coefficient of 0.5, is 1.78 with a sticking coefficient of 0.1, is 1.84 with a sticking coefficient of 0.01, and is 1.98 with a sticking coefficient of 0.001. Again as you can see from figure 12, the fractal dimension approaches 2 as the sticking vanishes. At sticking coefficient 0.5, I calculated a low value for the fractal dimension. Again I believe that this low value is due to statistical fluctuations and if I had repeated it twelve times, I would have gotten a different answer. And this too is something I should check.
Concluding Remarks
Diffusion-limited aggregation is an irreversible process forming an aggregate of small particles. I ran computer simulations for a variety of sticking coefficients in two dimensions on a square lattice and on a triangular lattice. I found that the fractal dimension does not change much until the sticking coefficient becomes less than 0.1. As the sticking coefficient vanishes the fractal dimension becomes close to the spatial dimension, i.e., close to 2. Since the process is statistical, I saw a large variation of fractal dimension when the sticking coefficient was 0.5. With twelve different runs I could only narrow the fractal dimension to be within 0.08 which is not small enough to see differences.
Although diffusion limited aggregation1 is a model for crystal growth, it is not necessarily an accurate one; it only works in certain limits. The first problem is that diffusion limited aggregation does not include the effects of surface tension2; one way to include this feature would be to make a particle stick with a probability (different from one), called the sticking coefficient. I have included this effect in my calculations. Another problem with diffusion-limited aggregation as a model for crystal growth is that particles (or small hunks) cannot detach. Also diffusion-limited aggregation only simulates the zero-density limit2 since the growth happens one particle at a time, rather than with bits containing a few or more particles. A way to fix this problem is to allow multiple aggregates that also diffuse and break up.
Bibliography
1 T. A. Witten, Jr. and L. M. Sander, Phys. Rev. Lett. 47, 1400 (1981).
2 K. Kassner, Pattern Formation in Diffusion-Limited Crystal Growth (World Scientific, Singapore, 1996).
3 B. B. Mandelbrot, The Fractal Geometry of Nature (Freeman, New York, 1983).
4 H. Gould and J. Tobochnik, An Introduction to Computer Simulation Methods (Addison-Wesley, Reading, 1996).
5 R. J. Gaylord and P. R. Wellin, Computer Simulations with Mathematica®: explorations in the physical, biological, and social sciences (Springer-Verlag, New York, 1995).
6 P. Meakin, Phys. Rev. A 27, 1495 (1983).
7 S. R. Forrest and T. A. Witten, Jr., J. Phys. A (1979)

Figure 1. Aggregate on a square lattice with a sticking coefficient of 1.0

Figure 2. Aggregate on a square lattice with a sticking coefficient of 0.5

Figure 3. Aggregate on a square lattice with a sticking coefficient of 0.1

Figure 4. Aggregate on a square lattice with a sticking coefficient of 0.01

Figure 5. Aggregate on a square lattice with a sticking coefficient of 0.001

Figure 6. The graph of the fractal dimension versus the sticking coefficient for the square lattice. The smaller point is the value found previously when the sticking coefficient is 1.0. The error bar is discussed in the text.

Figure 7. Aggregate on a triangular lattice with a sticking coefficient of 1.0

Figure 8. Aggregate on a triangular lattice with a sticking coefficient of 0.5

Figure 9. Aggregate on a triangular lattice with a sticking coefficient of 0.1

Figure 10. Aggregate on a triangular lattice with a sticking coefficient of 0.01

Figure 11. Aggregate on a triangular lattice with a sticking coefficient of 0.001

Figure 12. The graph of the fractal dimension versus the sticking coefficient for the triangular lattice. The smaller point is the value found previously when the sticking coefficient is 1.0.