Chapter 13 - Davidson Physics
Chapter 13 - Davidson Physics Chapter 13 - Davidson Physics
CHAPTER 14. FRACTALS AND KINETIC GROWTH MODELS 522c. If you have not already done Problem 13.8a, compute D by determining the mean size (mass)M of the spanning cluster at p = p c as a function of the linear dimension L of the lattice.Consider L = 11, 21, 41, and 61 and estimate D from a log-log plot of M versus L.∗ Problem 14.2. Renormalization group calculation of the fractal dimensionCompute ⟨M 2 ⟩, the average of the square of the number of occupied sites in the spanning clusterat p = p c , and the quantity ⟨M ′2 ⟩, the average of the square of the number of occupied sites in thespanning cluster on the renormalized lattice of linear dimension L ′ = L/b. Because ⟨M 2 ⟩ ∼ L 2Dand ⟨M ′2 ⟩ ∼ (L/b) 2D , we can obtain D from the relation b 2D = ⟨M 2 ⟩/⟨M ′2 ⟩. Choose the lengthrescaling factor to be b = 2 and adopt the same blocking procedure as was used in Section 13.5. Anaverage over ten spanning clusters for L = 16 and p = 0.5927 is sufficient for qualitative results.In Problems 14.1 and 14.2 we were interested only in the properties of the spanning clusters.For this reason, our algorithm for generating percolation configurations by randomly occupyingeach site is inefficient because it generates many clusters. A more efficient way of generatingsingle percolation clusters is due independently to Hammersley, Leath, and Alexandrowicz. Thisalgorithm, commonly known as the Leath or the single cluster growth algorithm, is equivalent tothe following steps (see Figure 14.3):1. Occupy a single seed site on the lattice. The nearest neighbors (four on the square lattice)of the seed represent the perimeter sites.2. For each perimeter site, generate a uniform random number r in the unit interval. If r ≤ p,the site is occupied and added to the cluster; otherwise the site is not occupied. In orderthat sites be unoccupied with probability 1 − p, these sites are not tested again.3. For each site that is occupied, determine if there are any new perimeter sites, that is, untestedneighbors. Add the new perimeter sites to the perimeter list.4. Continue steps 2 and 3 until there are no untested perimeter sites to test for occupancy.Class SingleCluster implements this algorithm and computes the number of occupied siteswithin a radius r of the seed particle. The seed site is placed at the center of a square lattice.Two one-dimensional arrays, pxs and pys, store the x and y positions of the perimeter sites.The status of a site is stored in the byte array s with s(x,y) = (byte) 1 for an occupied site,s(x,y) = (byte) 2 for a perimeter site, and s(x,y) = (byte)-1 for a site that has already beentested and not occupied, and s(x,y) = (byte) 0 for an untested and unvisited site. To avoidchecking for the boundaries of the lattice, we add extra rows and columns at the boundaries andset these sites equal to (byte)-1. We use a byte array because the array s will be sent to theLatticeFrame class which uses byte arrays.Listing 14.1: Class SingleCluster generates and analyzes a single percolation cluster.package org . o p e n s o u r c e p h y s i c s . s i p . ch13 . c l u s t e r ;public class S i n g l e C l u s t e r {public byte s i t e [ ] [ ] ;public int [ ] xs , ys , pxs , pys ;
CHAPTER 14. FRACTALS AND KINETIC GROWTH MODELS 523ggggxggggxggggggxggggggggggggggggggggxgxxggxgxggxgxggxggFigure 14.3: An example of the growth of a percolation cluster. Sites are occupied with probabilityp. Occupied sites are represented by a shaded square, growth or perimeter sites are labeled by g,and tested unoccupied sites are labeled by x. Because the seed site is occupied but not tested,we have represented it differently than the other occupied sites. The growth sites are chosen atrandom.public int L ;public double p ; // s i t e occupation p r o b a b i l i t yint occupiedNumber ;int perimeterNumber ;int nx [ ] = {1 , −1, 0 , 0 } ; // r e l a t i v e change in x to n e a r e s t n e i g h b o r sint ny [ ] = {0 , 0 , 1 , −1}; // r e l a t i v e change in y to n e a r e s t n e i g h b o r sdouble mass [ ] ; // mass o f ring , index i s d i s t a n c e from c e n t e r o f masspublic void i n i t i a l i z e ( ) {s i t e = new byte [ L+2][L+2]; // g i v e s s t a t u s o f each s i t exs = new int [ L*L ] ; // l o c a t i o n o f occupied s i t e sys = new int [ L*L ] ;pxs = new int [ L*L ] ; // l o c a t i o n o f perimeter s i t e spys = new int [ L*L ] ;for ( int i = 0 ; i
- Page 1 and 2: Chapter 14Fractals and Kinetic Grow
- Page 6: CHAPTER 14. FRACTALS AND KINETIC GR
- Page 9 and 10: CHAPTER 14. FRACTALS AND KINETIC GR
- Page 12 and 13: CHAPTER 14. FRACTALS AND KINETIC GR
- Page 14 and 15: CHAPTER 14. FRACTALS AND KINETIC GR
- Page 16 and 17: CHAPTER 14. FRACTALS AND KINETIC GR
- Page 21 and 22: CHAPTER 14. FRACTALS AND KINETIC GR
- Page 23 and 24: CHAPTER 14. FRACTALS AND KINETIC GR
- Page 25 and 26: CHAPTER 14. FRACTALS AND KINETIC GR
- Page 27 and 28: CHAPTER 14. FRACTALS AND KINETIC GR
- Page 29 and 30: CHAPTER 14. FRACTALS AND KINETIC GR
- Page 31 and 32: CHAPTER 14. FRACTALS AND KINETIC GR
- Page 33 and 34: CHAPTER 14. FRACTALS AND KINETIC GR
- Page 35 and 36: CHAPTER 14. FRACTALS AND KINETIC GR
- Page 37 and 38: CHAPTER 14. FRACTALS AND KINETIC GR
- Page 39 and 40: CHAPTER 14. FRACTALS AND KINETIC GR
CHAPTER 14. FRACTALS AND KINETIC GROWTH MODELS 522c. If you have not already done Problem <strong>13</strong>.8a, compute D by determining the mean size (mass)M of the spanning cluster at p = p c as a function of the linear dimension L of the lattice.Consider L = 11, 21, 41, and 61 and estimate D from a log-log plot of M versus L.∗ Problem 14.2. Renormalization group calculation of the fractal dimensionCompute ⟨M 2 ⟩, the average of the square of the number of occupied sites in the spanning clusterat p = p c , and the quantity ⟨M ′2 ⟩, the average of the square of the number of occupied sites in thespanning cluster on the renormalized lattice of linear dimension L ′ = L/b. Because ⟨M 2 ⟩ ∼ L 2Dand ⟨M ′2 ⟩ ∼ (L/b) 2D , we can obtain D from the relation b 2D = ⟨M 2 ⟩/⟨M ′2 ⟩. Choose the lengthrescaling factor to be b = 2 and adopt the same blocking procedure as was used in Section <strong>13</strong>.5. Anaverage over ten spanning clusters for L = 16 and p = 0.5927 is sufficient for qualitative results.In Problems 14.1 and 14.2 we were interested only in the properties of the spanning clusters.For this reason, our algorithm for generating percolation configurations by randomly occupyingeach site is inefficient because it generates many clusters. A more efficient way of generatingsingle percolation clusters is due independently to Hammersley, Leath, and Alexandrowicz. Thisalgorithm, commonly known as the Leath or the single cluster growth algorithm, is equivalent tothe following steps (see Figure 14.3):1. Occupy a single seed site on the lattice. The nearest neighbors (four on the square lattice)of the seed represent the perimeter sites.2. For each perimeter site, generate a uniform random number r in the unit interval. If r ≤ p,the site is occupied and added to the cluster; otherwise the site is not occupied. In orderthat sites be unoccupied with probability 1 − p, these sites are not tested again.3. For each site that is occupied, determine if there are any new perimeter sites, that is, untestedneighbors. Add the new perimeter sites to the perimeter list.4. Continue steps 2 and 3 until there are no untested perimeter sites to test for occupancy.Class SingleCluster implements this algorithm and computes the number of occupied siteswithin a radius r of the seed particle. The seed site is placed at the center of a square lattice.Two one-dimensional arrays, pxs and pys, store the x and y positions of the perimeter sites.The status of a site is stored in the byte array s with s(x,y) = (byte) 1 for an occupied site,s(x,y) = (byte) 2 for a perimeter site, and s(x,y) = (byte)-1 for a site that has already beentested and not occupied, and s(x,y) = (byte) 0 for an untested and unvisited site. To avoidchecking for the boundaries of the lattice, we add extra rows and columns at the boundaries andset these sites equal to (byte)-1. We use a byte array because the array s will be sent to theLatticeFrame class which uses byte arrays.Listing 14.1: Class SingleCluster generates and analyzes a single percolation cluster.package org . o p e n s o u r c e p h y s i c s . s i p . ch<strong>13</strong> . c l u s t e r ;public class S i n g l e C l u s t e r {public byte s i t e [ ] [ ] ;public int [ ] xs , ys , pxs , pys ;