quantax.sampler.ParticleHop#
- class quantax.sampler.ParticleHop#
Bases:
MetropolisGenerate Monte Carlo samples by hopping random particles to neighbor sites. The sampler will automatically choose to hop particles or holes, in the spin case spin up or down.
Warning
This sampler only works if all sites have the same amount of neighbors.
- __init__(state: State, nsamples: int, reweight: float = 2.0, thermal_steps: int | None = None, sweep_steps: int | None = None, initial_spins: Array | None = None, n_neighbor: int | Sequence[int] = 1)#
- Parameters:
state – The state used for computing the wave function and probability. Since exchanging neighbor spins doesn’t change the total Sz, the state must have
quantax.symmetry.ParticleConservesymmetry to specify the symmetry sector.nsamples – Number of samples generated per iteration. It should be a multiple of the total number of machines to allow samples to be equally distributed on different machines.
reweight – The reweight factor n defining the sample probability \(|\psi|^n\), default to 2.0.
thermal_steps – The number of thermalization steps in the beginning of each Markov chain, default to be 20 * fock state length.
sweep_steps – The number of steps for generating new samples, default to be 2 * fock state length.
initial_spins – The initial spins for every Markov chain before the thermalization steps, default to be random spins.
n_neighbor – The neighbors to be considered by particle hoppings, default to nearest neighbors.
- property current_prob: Array | None#
The probability of the current spin configurations
- property current_spins: Array | None#
The current spin configurations stored in the sampler
- property current_wf: Array | None#
The wave function of the current spin configurations
- property nsamples: int#
Number of samples generated per iteration
- reset() None#
Reset all Markov chains to
initial_spinsand thermalize them
- property reweight: float#
The reweight factor n defining the sample probability \(|\psi|^n\)