Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

MAT331 Project 3 – Diffusion limited aggregation

November 22, 2022

In class we have recently looked at the geometry of random objects such as a random walk or Brownian motion. As of 2022, we have a very good theoretical understanding of random walk/ Brownian motion. For example, we know that if a random walker takes 士1 steps with equal probability starting at the origin, we know that the distance from the origin after n steps grows approximately like n1/2 .

1    Diusion Limited Aggregation

In this project we will investigate a different process, Diffusion Limited Aggregation.  Even though it has a very simple definition, very little is known about this process.

We will use consider the following version of the process.

First, an informal description:  Consider the half infinite strip [0 , 1] × [0, ~), extending infinitely to the right. Suppose a stream of particles starts far to the right, and each particle walks until it hits the bottom of the strip. One a particle has landed at the bottom, the next particle starts its walk. It stops when it either hits the left side, or if it hits another particle that has already landed.

Next, a more formal description.

1.  Choose a large integer W ≥ 1 and another large integer a. Instead of walking on the strip [0, 1] × [0, ~), we will walk on the rectangular lattice {0, 1, . . . , W  1} × {0, 1, 2, 3, . . . , AW  1}.

2.  Choose an integer t, the total number of particles.

3.  For each particle, choose a starting location at the top edge of the rectangular lattice uniformly at random. There are W possible places to start.

●  Suppose the particle is not adjacent to a landed particle and not at the bottom edge, say at (x, y). The particle takes a step in one of the four directions {(x  1, y), (x + 1, y), (x, y  1)} with equal probability, 1/3, 1/3, 1/3.  (If the particle is on the left or right edge, e.g. x = 0, you should assume that any step off the edge wraps’ around to the other side.

4.  Once the particle reaches the bottom (y = 0), or is adjacent to another landed particle, stop the particle. Create a new particle and go to step 3. Keep doing this until you have landed t particles.

2    Programming Tasks

For bigger simulations, you may want to install jupyter notebook on your personal computer rather than running it in colab. There are instructions on the course website.

1.  Write a function dla(W,  A,  t) which generates the result of the DLA process described above.  It should return a W × AW matrix.

2.  Draw an image of the result of dla(W,A,  t) (using imshow), for W = {100, 200, 300} and t = 10000 and A = 2. In the image, the particles should be colored according to their ordering. You may need to implement the improvement below, first. Note: it may be desire-able to rotate the images in your written writeup. This is ne, just label accordingly.

3.  Performance can be greatly improved with the following observation: instead of starting the particles at the top, we can start the particles at height h + 1 where h is the height of the highest landed particle. Implement this change.

4.  Investigate the growth rate’ of the process. That is, fix H = 100 and let T be the rst time that a particle reaches height H . Can you come with a simple formula that describes the approximate relationship between T and W? You should be able to justify your answer using experimental data, and plots.

5.  Another related phenomenon is that the image is very porous’ . If we define the density ρ = t/HW , we see that it is unlikely to be very close to 1 Can you give a heuristic reason for why this is the case? Can you give an approximate value of the density? How does this estimated density depend on W and t?

6.  Now we will see what happens when we vary the model slightly. Do one of the following.

●  Instead of discretizing the rectangle with a square lattice, discretize it with another lattice such as the triangular lattice or the hexagonal lattice. Repeat the analysis in Q1-Q5 and compare your results.

●  We can also tune the probabilities that the random walker uses to take its next step. Fix α > 0, and have the walker take a step down with probability α, and a horizontal step with probability 1 α . Taking

α = 1/3 recovers the model that we already analysed above. Repeat the analysis in Q1-Q5 and compare your results for α = 1/6 and α = 5/6.

3    Written Report

The report should include

●  Your analysis for Q4, Q5 and Q6.

●  A detailed written description and explanation of the modification/generalization you made in Q6.

●  Any unexpected programming or math challenges you encountered in this assignment. You will submit the following on blackboard. Include the following:

●  A .ipynb notebook le named code firstname lastname .ipynb with all your code from the Programming tasks section. Make sure to clearly separate the various parts. Also, test this notebook by restarting it and running from the beginning; this should produce no errors.

●  A pdf le named report firstname lastname .pdf with your work for the written part. The exact format of this report is up to you. It can be hand-written (legibly) and then scanned (legibly) into a pdf document. Or it can be be made on a computer. It must be in pdf form (it is generally easy to convert other forms such as .doc to pdf).