Cluster algorithms: Difference between revisions

From SklogWiki
Jump to navigation Jump to search
mNo edit summary
Line 1: Line 1:
'''Cluster algorithms''' are mainly used in the simulation of [[Ising Models|Ising-like models]]. The essential feature is the use of collective motions
'''Cluster algorithms''' are mainly used in the simulation of [[Ising Models|Ising-like models]]. The essential feature is the use of collective motions of particles (spins) in a single [[Monte Carlo]] step.
of ''particles (spins)'' in a single [[Monte Carlo]] step.
An interesting property of some of these application is the fact that the [[percolation analysis]] of the clusters can
An interesting property of some of these application is the fact that the [[percolation analysis]] of the clusters can
be used to study [[phase transitions]].
be used to study [[phase transitions]].
Line 10: Line 9:


In the current configuration the [[Intermolecular pair potential |pair interaction]] can be either negative: <math> \Phi_{ij}/k_B T= -K  </math> or positive <math> \Phi_{ij}/k_B T = + K </math>,  
In the current configuration the [[Intermolecular pair potential |pair interaction]] can be either negative: <math> \Phi_{ij}/k_B T= -K  </math> or positive <math> \Phi_{ij}/k_B T = + K </math>,  
depending on the product: <math> S_{i} S_{j} </math> (See [[Ising Models]] for details on the notation)
depending on the product: <math> S_{i} S_{j} </math> (See the [[Ising Models]] entry for notation)


* For pairs of interacting sites (nearest neighbors) with <math> \Phi_{ij}/k_B T < 0 </math> [[random numbers |randomly]] create a bond between the two spins with a given probability <math> p </math>.
* For pairs of interacting sites (nearest neighbors) with <math> \Phi_{ij}/k_B T < 0 </math> [[random numbers |randomly]] create a bond between the two spins with a given probability <math> p </math>.
Line 23: Line 22:


* For each cluster, independently, choose at random with equal probabilities whether to flip (invert the value of <math> S </math>) or not to flip the whole set of spins belonging to the cluster.
* For each cluster, independently, choose at random with equal probabilities whether to flip (invert the value of <math> S </math>) or not to flip the whole set of spins belonging to the cluster.
The bonding probability <math> p </math> is given by:
The bonding probability <math> p </math> is given by:


Line 31: Line 28:
== Wolff algorithm ==
== Wolff algorithm ==
The procedure to create a given bond is the same as in the Swendsen-Wang algorithm. However in Wolff's method
The procedure to create a given bond is the same as in the Swendsen-Wang algorithm. However in Wolff's method
the whole set of interacting pairs is not tested to generate (possible) bonds. In stead, a single cluster
the whole set of interacting pairs is not tested to generate (possible) bonds. Instead, a single cluster
is built. See Ref 2 for details.  
is built. See Ref 2 for details.  


Line 42: Line 39:
* Then recursively, one checks the existence of bonds between the new members of the cluster and sites of the system to add, if bonds are generated,  new sites to the ''growing'' cluster, until no more bonds are generated.
* Then recursively, one checks the existence of bonds between the new members of the cluster and sites of the system to add, if bonds are generated,  new sites to the ''growing'' cluster, until no more bonds are generated.


* At this point, the whole cluster is flipped (see above)
* At this point, the whole cluster is flipped (see above).


== Invaded Cluster Algorithm ==
== Invaded Cluster Algorithm ==
The purpose of this algorithm is to locate [[critical points]] (critical temperature). So, in this case
The purpose of this algorithm is to locate [[critical points]] (critical temperature). So, in this case
the probability of bonding neighboring sites with equal spins is not set ''a priori''. (See Ref 3)
the probability of bonding neighbouring sites with equal spins is not set ''a priori''. (See Ref 3)
The algorithm for an Ising system with [[periodic boundary conditions]] can be implemented as follows:
The algorithm for an Ising system with [[periodic boundary conditions]] can be implemented as follows:


Line 53: Line 50:
* One considers the possible bonds on the system (pairs of nearest neighbours with favourable interaction)
* One considers the possible bonds on the system (pairs of nearest neighbours with favourable interaction)


* Using [[random numbers]] we assign a random  order to these possible bonds
* Using [[random numbers]] one assigns a random  order to these possible bonds


* The possible bonds are being ''activated''  in the order fixed in the previous step (the cluster structure is watched during this process)
* The possible bonds are being ''activated''  in the order fixed in the previous step (the cluster structure is watched during this process)
Line 74: Line 71:


== Probability-Changing Cluster Algorithm ==
== Probability-Changing Cluster Algorithm ==
 
This method was proposed by Tomita and Okabe (See Ref 4). This procedure is orientated towards computing [[critical points]].  
This method was proposed by Tomita and Okabe (See Ref 4). The procedure is intented to compute
It applies when the symmetry of the interactions imply that the critical
the critical points. It applies when the simmetry of the interactions implies that the critical
temperature is that in which the clusters, built using a Swendsen-Wang type algorithm, reach
temperature is that in which the clusters built using a Swendsen-Wang type algorithm reach
the percolation threshold.  
the percolation threshold.  
The simulation proceeds by a fine tuning of the temperature (or the coupling constant)
The simulation proceeds by a fine tuning of the temperature (or the coupling constant)
Given a configuration of the system and a current coupling constant <math> K_0 </math>:
Given a configuration of the system and a current coupling constant <math> K_0 </math>:


* We built up a bond realisation following the Swendsen-Wang strategy
* One builds  a bond realisation following the Swendsen-Wang strategy


* We establish whether, at least, one of the cluster percolates through the whole system
* One establishes whether at least one of the cluster percolates through the whole system


* If percolation occurs we decrease the coupling constat (increase the temperature) by a small amount:
* If percolation occurs one decreases the coupling constant (increase the temperature) by a small amount:


: <math> K^{new} = K_0 - \delta K </math>
: <math> K^{new} = K_0 - \delta K </math>


* If no percolation appears the new value of the coupling constant is taken to be:
* If no percolation appears, the new value of the coupling constant is taken to be:


:  <math> K^{new} = K_0 + \delta K </math>,
:  <math> K^{new} = K_0 + \delta K </math>,


with <math>\delta K > 0 </math>. For small values of <math> \delta K </math> the value of <math> K </math>
with <math>\delta K > 0 </math>. For small values of <math> \delta K </math> the value of <math> K </math>
(after reaching the vicinity of the critical conditions) will show minor oscillations and the
(after reaching the vicinity of the critical point) will show minor oscillations and the
results can be trusted as those of an equilibrium simulation run. (Detailed balance is not
results can be trusted as those of an equilibrium simulation run. ([[Detailed balance]] is not
strictly fulfilled in this algorithm)
strictly fulfilled in this algorithm).


== Beyond the Ising and Potts models ==
== Beyond the Ising and Potts models ==


The methods described so far, can be used with minor changes in the simulation of [[Potts model|Potts models]].
The methods described so far can be used, with minor changes, in the simulation of [[Potts model|Potts models]].
In addition, extensions have been proposed in the literature (References will be added one of these days)
In addition, extensions have been proposed in the literature  
to build up very efficient cluster algorithm to simulate more complex lattice systems ([[XY model]],  
to build up very efficient cluster algorithms to simulate more complex lattice systems (for example the [[XY model]],  
[[Heisenberg model]], etc).
[[Heisenberg model]], etc).



Revision as of 11:34, 6 September 2007

Cluster algorithms are mainly used in the simulation of Ising-like models. The essential feature is the use of collective motions of particles (spins) in a single Monte Carlo step. An interesting property of some of these application is the fact that the percolation analysis of the clusters can be used to study phase transitions.

Swendsen-Wang algorithm

As an introductory example we shall discuss the Swendsen-Wang technique (Ref 1) in the simulation of Ising Models. In one Monte Carlo step of the algorithm the following recipe is used:

  • Consider every pair of interacting sites (spins).

In the current configuration the pair interaction can be either negative: or positive , depending on the product: (See the Ising Models entry for notation)

  • For pairs of interacting sites (nearest neighbors) with randomly create a bond between the two spins with a given probability .
will be chosen to be a function of .
  • The bonds generated in the previous step are used to build up clusters of sites (spins).
  • Build up the partition of the system in the corresponding clusters of spins.

In each cluster all the spins will have the same state (either or ).

  • For each cluster, independently, choose at random with equal probabilities whether to flip (invert the value of ) or not to flip the whole set of spins belonging to the cluster.

The bonding probability is given by:

Wolff algorithm

The procedure to create a given bond is the same as in the Swendsen-Wang algorithm. However in Wolff's method the whole set of interacting pairs is not tested to generate (possible) bonds. Instead, a single cluster is built. See Ref 2 for details.

  • The initial cluster contains one site (selected at random)
  • Possible bonds between the initial site and other sites of the system are tested:

The bonded sites are included in the cluster

  • Then recursively, one checks the existence of bonds between the new members of the cluster and sites of the system to add, if bonds are generated, new sites to the growing cluster, until no more bonds are generated.
  • At this point, the whole cluster is flipped (see above).

Invaded Cluster Algorithm

The purpose of this algorithm is to locate critical points (critical temperature). So, in this case the probability of bonding neighbouring sites with equal spins is not set a priori. (See Ref 3) The algorithm for an Ising system with periodic boundary conditions can be implemented as follows:

Given a certain configuration of the system:

  • One considers the possible bonds on the system (pairs of nearest neighbours with favourable interaction)
  • Using random numbers one assigns a random order to these possible bonds
  • The possible bonds are being activated in the order fixed in the previous step (the cluster structure is watched during this process)
  • The bond activation stops when one cluster percolates through the entire system (i.e. considering the periodic boundary conditions

the cluster becomes of infinite size)

  • Then, every cluster (as in the Swendsen-Wang algorithm) is flipped with proability 1/2.
  • An effective bond probability for the percolation threshold, can be computed as:

with being the number of activated bonds when the first cluster percolates, and is the number of possible bonds.

The value of (in one realisation, or the averaged value over the simulation, See the references for the practical application) can be related with the critical coupling constant, as:

Probability-Changing Cluster Algorithm

This method was proposed by Tomita and Okabe (See Ref 4). This procedure is orientated towards computing critical points. It applies when the symmetry of the interactions imply that the critical temperature is that in which the clusters, built using a Swendsen-Wang type algorithm, reach the percolation threshold. The simulation proceeds by a fine tuning of the temperature (or the coupling constant) Given a configuration of the system and a current coupling constant :

  • One builds a bond realisation following the Swendsen-Wang strategy
  • One establishes whether at least one of the cluster percolates through the whole system
  • If percolation occurs one decreases the coupling constant (increase the temperature) by a small amount:
  • If no percolation appears, the new value of the coupling constant is taken to be:
,

with . For small values of the value of (after reaching the vicinity of the critical point) will show minor oscillations and the results can be trusted as those of an equilibrium simulation run. (Detailed balance is not strictly fulfilled in this algorithm).

Beyond the Ising and Potts models

The methods described so far can be used, with minor changes, in the simulation of Potts models. In addition, extensions have been proposed in the literature to build up very efficient cluster algorithms to simulate more complex lattice systems (for example the XY model, Heisenberg model, etc).

Application to continuous (atomistic) models

It is sometimes possible (and very convenient) to include cluster algorithms in the simulation of models with continuous translational degrees of freedom. In most cases the cluster algorithm has to be complemented with other sampling moves to ensure ergodicity. Examples:


In these cases, the usual approach is to combine one-particle moves (e.g. particle translations), with cluster procedures. In the cluster steps, multiparticle modification of -composition, orientations, etc.- is carried out.

Other (not so smart) applications of cluster algorithms

Monte Carlo simulation of atomistic systems with multiparticle moves, for example see:

References

  1. Robert H. Swendsen and Jian-Sheng Wang, "Nonuniversal critical dynamics in Monte Carlo simulations", Physical Review Letters 58 pp. 86 - 88 (1987)
  2. Ulli Wolff, "Collective Monte Carlo Updating for Spin Systems" , Physical Review Letters 62 pp. 361 - 364 (1989)
  3. J. Machta, Y. S. Choi, A. Lucke, T. Schweizer, and L. V. Chayes, "Invaded Cluster Algorithm for Equilibrium Critical Points" , Physical Review Letters 75 pp. 2792 - 2795 (1995)
  4. Yusuke Tomita and Yutaka Okabe, "Probability-Changing Cluster Algorithm for Potts Models", Physical Review Letters 86 pp. 572 - 575 (2001)