Correlated percolation simulator

Here are some sample pictures of correlated percolation. Click on any picture for a larger picture and a brief description of the rules that generated the picture.

The applet

This is an applet that simulates correlated percolation. For a quick start, just click the "New sites" button to generate different pretty pictures. Descriptions of what correlated percolation is, and what the different settings in the applet mean, appear below the applet. You need Java enabled to run this.

Normal Percolation

To explain what correlated percolation is, we need to first start with normal percolation. In mathematics, percolation theory is a very simple geometric model. Begin with a square lattice, and occupy each site with an independent occupation probabilty p. Thinking of the occupied sites as "land," and the unoccupied sites as "ocean" look at the configuration of the land masses. For small p, the land will most likely just consist of a few isolated islands, and there will be no way to walk from one side to the other without getting your feet wet. For large p, the picture will be mostly land, with just a few puddles, and it will be easy to walk from one side to the other. What about for intermediate values of p?

It turns out that for very large systems, there is a critical value of the occupation density, pc. For p<pc, a large system will almost certainly have no connected land cluster that spans from one side of the system to the other. But for p>pc, there will almost certainly be a connected land cluster. The system undergoes second-order phase transition at pc, which means that the fraction of sites in the spanning cluster rises continuously from zero at pc.

While the simple mathematical elegance of this model makes it attractive to mathematicians, it is also of great interest to physicists. It presents a very simple geometric model that is of interest for studying, for example, percolation of water through porous materials (because water can only flow from one side of the material to the other if the holes in the material form a connected cluster). The model is of particular interest because it is one of the simplest possible models with quenched disorder that undergoes a phase transition. And it has been shown to be equivalent to a conformal field theory.

The applet above can be used to simulate normal percolation. If you set "z(type)" to "z=4(iso)", "min k" to 0, "max k" to 24, and "Site prob." to whatever you want the occupation density p to be, then upon hitting "New sites" you will see the occupied sites in black (and the unoccupied sites in white). If there are any occupied clusters that reach from the right side to the left side, they will be colored green.

Correlated Percolation

So what is correlated percolation? With correlated percolation, the occupations are correlated. The simplest way to do this is k-core percolation (also known as bootstrap percolation). With this, we initially occupy each site with independent probability p, but then require that all sites have at least k occupied neighbors. (The value of k and the choice of which sites will be considered neighbors defines the model). We do this by culling (making unoccupied) any occupied site that has less than k neighbors. Doing this may make sites that were previously stable unstable, so we have to keep repeating this culling process until all remaining occupied sites have less than k neighbors.

k-core percolation was initially invented to study certain magnetic materials, in which sites can only have magnetic moments if enough neighboring sites also have magnetic moments, to help stabilize them. Originally, simulations indicated that some of these models had first-order transitions, or second-order transition in different universality classes than normal percolation. However, this turns out not to be the case; mathematicians later showed that the models that had initially excited interest actually had pc=1, but that this would only become apparent for system sizes too large to simulate (in some cases on the order of L=10103!) Correlated percolation has become interesting in recent years because it has been shown that modified rules for which sites can be occupied (more complicated than the k-core rules above) can result in models that have features similar to those in jamming and glassy transitions. But I won't describe those models here.

The Java applet

Size and occupation probability

The first three parameters in the model change the dimensions of the system, and the occupation probability. "Site prob." is the occupation density p described above. Clicking on "new sites" gives a new independent occupation with the stated occupation density.

k-core rules

The next three options let you change the occupation rules. All the options in the drop-down menu for "z(type)" except for the last six (which I won't describe here) simulate k-core percolation. Choosing the "z(type)" changes what sites are considered to be neighbors. The relevant neighbors are shown in the graphic at the bottom right of the applet. For example, for "z=4 (iso)", the neighbors are the 4 nearest neighbors on the square lattice. For "z=8 (iso)", the neigbors are the 8 nearest and next nearest neighbors. And so on. Note that some of the rules pick non-isotropic sets of sites as neighbors (giving rules similar to those of directed percolation).

If you want neighboring sites to be defined in a way not already made in the drop-down list, you can define your own definition of neighbors by directly clicking in the five by five grid in the lower right side of the applet (black squares being neighbors and white squares not being neighbors).

The culling rules require that occupied sites have at least kmin neighbors, and at most kmax. kmin is the k discussed above, of normal k-core percolation, while kmax is this weird little extra thing I threw into the applet, and should probably just be left at 24.

The boundary conditions can either be chosen as "fixed," in which case the two rows/columns of sites at the border of the box are never culled, or "periodic," in which case periodic boundary conditions are used.

If you change the culling rules, they will not immediately affect the picture. You need to click on the "New rules" button, which will then update the culling rules (while using the same initial occupation).

Display options

The applet gives a number of display options. With the default choice of "All," the sites are displayed the following colors.

• Green : Sites that are in clusters that span from the left to right sides are colored green. If there is more than one spanning cluster, they are different shades of green.
• Black : Sites that are occupied after applying the culling rules, but are not in spanning clusters, are colored black.
• Red to Blue : Sites that were initially occupied, but emptied after the culling rules were applied, are colored various mixtures of red and blue. Sites that were removed in the first cull are colored pure red, while those not removed until the final cull are colored pure blue. Other culled sites are colored mixtures of red and blue, with sites culled earlier having larger amounts of red.
• White : Sites that were not initially occupied are "colored" white (i.e. left blank).

If the dizzying array of colors is too much for you, you can turn some of them off by choosing a different option in the drop-down menu next to "Display:"

Output files

The "total time" field tells how many culling operations had to be carried out before all sites left were stable. The "spanning" field tells how many spanning cluster there are.