Local Moves

Local samplers propose to modify only a limited set of quantum numbers at the time. The samplers describe below can be used for any quantum system with a local (and finite) discrete Hilbert space.

MetropolisLocal

This sampler acts locally only on one local degree of freedom , and proposes a new state: , where .

The transition probability associated to this sampler can be decomposed into two steps:

  1. One of the site indices is chosen with uniform probability.
  2. Among all the possible () values that can take, one of them is chosen with uniform probability.

For example, in the case of spin particles, and the possible local values are . In this case then MetropolisLocal is equivalent to flipping a random spin.

In the case of bosons, with occupation numbers , MetropolisLocal would pick a random local occupation number uniformly between and .

Parameter Possible values Description Default value
None None None None

Example

pars['Sampler']={
    'Name'           : 'MetropolisLocal',
}

MetropolisLocalPt

This sampler performs parallel-tempering moves in addition to the local moves implemented in MetropolisLocal. The number of replicas can be chosen by the user.

Parameter Possible values Description Default value
Nreplicas Integer The number of effective temperatures for parallel tempering, None

Example

pars['Sampler']={
    'Name'           : 'MetropolisLocalPt',
    'Nreplicas'           : 64,
}

MetropolisExchange

This sampler acts locally only on two local degree of freedom and , and proposes a new state: , where in general and . The sites and are also chosen to be within a maximum graph distance of .

The transition probability associated to this sampler can be decomposed into two steps:

  1. A pair of indices , and such that , is chosen with uniform probability.
  2. The sites are exchanged, i.e. and .

Notice that this sampling method generates random permutations of the quantum numbers, thus global quantities such as the sum of the local quantum numbers are conserved during the sampling. This scheme should be used then only when sampling in a region where is needed, otherwise the sampling would be strongly not ergodic.

Parameter Possible values Description Default value
Dmax Integer The maximum graph distance allowed for exchanges 1

Example

pars['Sampler']={
    'Name'           : 'MetropolisExchange',
}

MetropolisExchangePt

This sampler performs parallel-tempering moves in addition to the local exchange moves implemented in MetropolisExchange. The number of replicas can be chosen by the user.

Parameter Possible values Description Default value
Dmax Integer The maximum graph distance allowed for exchanges 1
Nreplicas Integer The number of effective temperatures for parallel tempering, None

Example

pars['Sampler']={
    'Name'           : 'MetropolisExchangePt',
}