netket.sampler.MetropolisLocal#
- netket.sampler.MetropolisLocal(hilbert, **kwargs)[source]#
Sampler acting on one local degree of freedom.
This sampler acts locally only on one local degree of freedom \(s_i\), and proposes a new state: \(s_1 \dots s^\prime_i \dots s_N\), where \(s^\prime_i \neq s_i\).
The transition probability associated to this sampler can be decomposed into two steps:
One of the site indices \(i = 1\dots N\) is chosen with uniform probability.
2. Among all the possible (\(m - 1\)) values that \(s^\prime_i\) can take, one of them is chosen with uniform probability.
For example, in the case of spin \(1/2\) particles, \(m=2\) and the possible local values are \(s_i = -1,+1\). In this case then
MetropolisLocal
is equivalent to flipping a random spin.In the case of bosons, with occupation numbers \(s_i = 0, 1, \dots n_{\mathrm{max}}\),
MetropolisLocal
would pick a random local occupation number uniformly between \(0\) and \(n_{\mathrm{max}}\) except the current \(s_i\).- Parameters:
hilbert – The Hilbert space to sample.
n_chains – The total number of independent Markov chains across all MPI ranks. Either specify this or n_chains_per_rank.
n_chains_per_rank – Number of independent chains on every MPI rank (default = 16).
sweep_size – Number of sweeps for each step along the chain. Defaults to the number of sites in the Hilbert space. This is equivalent to subsampling the Markov chain.
reset_chains – If True, resets the chain state when reset is called on every new sampling (default = False).
machine_pow – The power to which the machine should be exponentiated to generate the pdf (default = 2).
dtype – The dtype of the states sampled (default = np.float64).
- Return type: