Percolation is a geometrical model for which there is no temperature, but there is a phase transition. Site percolation on a square $L \times L$ lattice is characterized by sites, each of which is randomly occupied with probability $p$. There is a phase transition at $p = p_c$, such that below $p_c$ there are only small clusters of connected sites, but above $p_c$ there is a cluster that spans the entire system. At the phase transition various quantities diverge or vanish as a power law typical of critical phenomena. Percolation models are useful for understanding conductivity in metal-insulator mixtures and flow through porous materials.

Program Percolation calculates mean values of various quantities as a function of $p$ and provides a visualization of the clusters at a user specified value of $p$. Clusters are identified using the Hoshen-Kopelman algorithm.

Problem: Simulation of percolation

Program Percolation generates site percolation configurations on a square lattice and computes $P_\infty(p)$, the fraction of states in the spanning cluster; $S(p)$, the mean number of sites in the finite clusters; $P_{\rm span}(p)$, the probability of a spanning cluster; and $n_s$, the number of clusters with $s$ sites for various values of $p$. The clusters are shown at the default value of $p=p_c \approx 0.5927$.

  1. Run the program and look at the configurations. A spanning cluster is defined in the program as one that connects the top and bottom of the lattice and the left and right boundaries. Describe the structure of the spanning clusters at $p=0.8$. Are the clusters compact with few holes or ramified and stringy?
  2. How would you describe the spanning clusters at $p=p_c$? Increase the size of the lattice. Do the spanning clusters become less dense? Do you see clusters of all sizes at $p= p_c$?
  3. Run the program for at least 100 trials at $p=p_c$ and make a log-log plot of the cluster size distribution $n_s$ versus $s$. Do you see linear behavior for some range of values of $s$? Choose Data Table under the Views menu and fit your data to the form $n_s = A s^{-\tau}$, where $A$ and $\tau$ are fitting parameters. Compare your estimate for $\tau$ to the exact result for $\tau$ in $d=2$ given by $\tau = 187/91$.
  4. Choose $p =0.4$ and 0.8 and look at the log-log plots of the cluster size distribution $n_s$ versus $s$. Is the qualitative behavior of $n_s$ for large $s$ the same as it is at $p=p_c$?
  5. *Choose $L = 128$ and do at least 100 trials (1000 is better) for values of $p$ near $p_c$. Make a log-log plot of $S(p)$ and $P_\infty(p)$ versus $p-p_c$. Is there a region of your plot that is linear, indicating a possible power law?
Problem: Finite-size scaling

A better way to estimate the values of the critical exponents $\beta$ and $\gamma$ than fitting the $p$ dependence of $P_\infty(p)$ and $S(p)$ to their power law forms near $p_c$ is to use finite-size scaling as we did for the Ising model. The assumption of finite-size scaling is that there is only one important length in the system near $p=p_c$, the connectedness length $\xi$. We write $\xi \sim |p-p_c|^{-\nu}$ and $|p - p_c| \sim \xi^{-1/\nu}$. Hence $P_\infty \sim (p - p_c)^\beta \sim \xi^{-\beta/\nu}$. For a finite system we replace $\xi$ by $L$ and write $P_\infty \sim L^{-\beta/\nu}$. Similar reasoning gives $S \sim L^{\gamma/\nu}$. Use Program Percolation to generate configurations at $p=p_c$ for $L = 10$, 20, 40, and 80, and determine the ratios $\beta/\nu$ and $\gamma/\nu$. Use the exact result $\nu = 4/3$, and compare your results with the exact results $\beta = 5/36$ and $\gamma = 43/18$. (Because $\beta$ is small, your results for $\beta/\nu$ are likely to not be very accurate.)


Problems 9.9 and 9.10 in Statistical and Thermal Physics: With Computer Applications, 2nd ed., Harvey Gould and Jan Tobochnik, Princeton University Press (2021).

OSP Projects:
Open Source Physics - EJS Modeling - Tracker - Physlet Physics - Physlet Quantum Physics - STP Book