It is evident, that if pseudo-random numbers are good enough all conducting
cells are independent and boundaries of a lattice do not influence on its
distribution. But the boundaries play important role when we are labeling
clusters, as border can cut them. It is particularly important when length
of a cluster becomes comparable with the size of the lattice L. To
decrease this effect we can use periodic boundary conditions, i.e. we can
examine percolation on a cylinder (the left and right borders of the square
are connected) or torus (the top and bottom borders are connected too).
Clusters on torus are more "homogeneous", but all the same we cannot see
infinite spanning cluster on a finite surface :)
Controls Click mouse to get a new iteration. Press "Enter" to set a new p value. See also 640x640 lattice. |
![]() |
To the left you see that percolation probability W and
spanning claster density P have peculiarity at p = pc
(the curves are ploted for L = 640 lattice).
On an infinite lattice there is a type of phase transition from a state with finite isolated clusters to a state with one infinite spanning cluster. The critical point pc marks a singularity, i.e. smooth functions behave singularly at this point (as the size of the lattice tends to infinity). The P(p) behaviour near the critical point is similar to the dependance of order parameter of thermodinamic phase transition (e.g. spontaneous magnetization in ferromagnetic materials). |
Single 2D clusterSingle 2D cluster is made by random seeding of its neighborhood (click the applet to get new realization). |
Single 3D clusterFor 3D site percolation on a simple cubic lattice percolation threshold is p = 3.12 . I.e. you will get big percolating claster in 50% of trials. 30x30x30 lattice is used to the left. (See Hidden Surface Removal Algorithms for a couple of 3D hints).Controls:
|
We assign cluster labels to occupied sites beginning at the lower left corner and continue (by lines) from left to right (and from bottom to up). A label is inherited from the left or bottom neighbour. If these sites are empty, then a new cluster label is generated. When we come to an occupied site at which two different clusters coalesce, we assign to it a "proper" cluster label. The "proper" labels are determined by the label tree np(i) array. At first all elements np(i) = 0. If at any occupied site two labels e.g. 3 and 4 are linked, we set np(4) = 3. This nonzero value shows us, that the label 4 is linked to the 3 one. It is "improper" and we shall use the "proper" label 3. In general case, "proper" labels are culculated by recursion (see detailed explanations in [Gould]).