DOING PHYSICS WITH MATLAB

 

 

AN INTRODUCTION TO PERCOLATION THEORY

A MATLAB SIMULATION

 

 

 

GOTO MATLAB DOWNLOAD WEBSITE

 

 

Matlab mscript     percolation.m

 

This paper describes a simple Matlab simulation on site percolation in which you can generate and visualize percolation clusters using the mscript percoloation.m.

 

We will consider a square lattice of linear dimension L. The number of lattice sites is L x L. Each lattice site maybe occupied (1) or unoccupied or empty (0). Each site is occupied independently of its neighbors with probability p. The occupied sites form clusters in which sites maybe or may not connected to their nearest neighbors. Each occupied state belongs to a unique cluster.

 

To investigate percolation theory, we generate a L × L matrix of random numbers and then a lattice site is occupied if the random number is less than the assigned probability p.

 

If the probability p is small then only small clusters are likely to be formed and if p is large, then most of the lattice sites will be occupied. When p ~ 1 you would expect the formation of a large cluster that extends from one edge of the lattice to the other. Such a cluster is called a spanning cluster. There exists a threshold probability pc such that

 

     

 

 

An important characteristic of percolation is connectedness and we can relate this concept to phase transitions.  We see that a well-defied value of the parameter pc determines whether a spanning cluster exists or does not exist: as pc is increased there will be a transition from zero spanning clusters to a spanning cluster and this represents a type of phase transition. For example, consider the electrical conductivity of a material made from a composite material of metallic and insulating materials. The sample is non-conducting when the percentage of the metallic material is small, however, in increasing the percentage of the metallic material, a sharp transition occurs from the non-conducting state to the conducting state when there is a connected pathway of metallic material (a spanning cluster). There are many applications of percolation theory in modelling physical systems such as magnetic materials, behavior of gels and spread of disease in a population.

 

It is necessary to label each cluster so that we can investigate the percolation. The [2D] matrix u of dimensions L x L is the percolation matrix and each element of the matrix is either 1 (occupied site) or 0 (empty site). The Matlab function bwlabel can be used to assigned the labels to each cluster

 

     [cls,numC] = bwlabel(u,4);

 

Where cls are the labels attached to each element of u and numC is the number of clusters.

 

 

You can familiarize yourself with the labeling by viewing the Matlab help system on bwlabel in the image analysis toolbox.

We also can examine the percolation matrix and clusters directly by mapping the labels onto a color-map using the function label2rgb.

 

clsT = zeros(L,L);

   for c = 1 : L

      clsT(c,:) = cls(L+1-c,:);

   end

 

figure(2)

   set(gcf,'units','normalized','position',[0.35 0.52 0.23 0.32]);

   img = label2rgb(clsT);

   image(img);

   axis off

 

The mscript percolation.m can be used to calculate the following quantities

·        Number of occupied sites:   nOSites

·        Simulation probability of a site being occupied: pOSites (can compare with probability p)

·        Cluster labels: cls  and  number of clusters: numC

·        Cluster size - number of occupied sites in each cluster: nC

·        Counter – 1 to maximum number of occupied sites in clusters: s

·        Number of clusters with s occupied sites: nS

·        Probability that an occupied site chosen at random is part of an s-site cluster: probROS

·        Mean cluster size (average number of occupied sites for the clusters): S or meanclustersize

·        Spanning clusters: isSpanX and isSpanY  (in finding spanning clusters you only need to check the cluster numbers at the edges of the lattice.

 

You should run the mscript many times to calculate the average values of many of the above quantities and by carefully incrementing the value of the probability p you can find the threshold probability pc.

 

Figures 1 and 2 show the results of two simulations extracted from the Matlab Figure Windows and the Command Window for L = 8 and different p values: p = 0.30 and p = 0.60.  Figure 3 shows the plots for L = 32  and p = 0.50.

Fig. 1.   Zero spanning clusters. 

Linear dimension  L =  8

Total number of sites  nSties = 64

Probability of a site being occupied   p = 0.30

Number of occupied sites nOSites = 25

Simulation: probability of a site being occupied pOSites = 0.39

Number of clusters  numC = 10

Cluster Size: number of occupied sites in each cluster  nC

    4     1     1     2     1     1     1     1     7     6  

Cluster Size Distribution 

    s      nS    probROS

    1      6     0.600  

    2      1     0.100  

    3      0     0.000  

    4      1     0.100  

    5      0     0.000  

    6      1     0.100  

    7      1     0.100  

 

Mean Cluster Size  S:  sites / clusters / prob   

S = mean(nC) = 2.500

S = SUM(s .* probROS) = 2.500

 

Spanning clusters = 1

cluster #   rows   cols

      1       0        0    

      2       0        0    

      3       0        0    

      4       0        0    

      5       0        0    

      6       0        0    

      7       0        0    

      8       0        0    

      9       0        0    

    10       0        0    

 

 

 

Fig. 2.   One spanning cluster.

 

Linear dimension  L =  8

Total number of sites  nSties = 64

Probability of a site being occupied   p = 0.60

 

Number of occupied sites nOSites = 40

Simulation: probability of a site being occupied pOSites = 0.63

Number of clusters  numC =  5

Cluster Size: number of occupied sites in each cluster  nC

   36     1     1     1     1  

Cluster Size Distribution 

    s      nS    probROS

    1      4     0.800  

    2      0     0.000  

    3      0     0.000  

    4      0     0.000  

    5      0     0.000  

    6      0     0.000  

    7      0     0.000   

    8      0     0.000  

    9      0     0.000  

   10      0     0.000  

   11      0     0.000  

   12      0     0.000  

   13      0     0.000  

   14      0     0.000  

   15      0     0.000  

   16      0     0.000  

   17      0     0.000  

   18      0     0.000  

   19      0     0.000  

   20      0     0.000  

   21      0     0.000  

   22      0     0.000  

   23      0     0.000  

   24      0     0.000  

   25      0     0.000  

   26      0     0.000  

   27      0     0.000  

   28      0     0.000  

   29      0     0.000  

   30      0     0.000  

   31      0     0.000  

   32      0     0.000  

   33      0     0.000  

   34      0     0.000  

   35      0     0.000  

   36      1     0.200  

 

Mean Cluster Size  S:  sites / clusters / prob  

S = mean(nC) = 8.000

S = SUM(s .* probROS) = 8.000

 

Spanning clusters = 1

cluster #   rows   cols

      1       1        1    

      2       0        0    

      3       0        0    

      4       0        0    

      5       0        0    

 

 

 

 Fig. 3.   L = 32 and p = 0.50.

 

REFERENCES

Harvey Gould and Jan Tobochnik, An Introduction to Computer Simulation Methods: Applications to Physical Systems Part2, Addison-Wesley 1988.

 

There are many excellent resources on the web for Percolation Theory, simply search percolation theory

 

 

 

 

 

Description: www.reliablecounter.com
music production mixing