quantax.sampler.SiteExchange#
- class quantax.sampler.SiteExchange(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)#
Generate Monte Carlo samples by exchanging the spinful fermions on neighbor sites.
Warning
This sampler conserves the number of doublons and holons.
- __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.ParticleConserve
symmetry 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 exchanges, default to nearest neighbors.
Methods
__init__
(state, nsamples[, reweight, ...])reset
()Reset all Markov chains to
initial_spins
and thermalize themsweep
([nsweeps])Generate new samples
Attributes
N
is_balanced
Whether the sampler has balanced proposal rate \(P(s'|s) = P(s|s')\), default to True
nflips
The number of flips in new proposal.
nsamples
Number of samples generated per iteration
nstates
reweight
The reweight factor n defining the sample probability \(|\psi|^n\)
state
The state used for computing the wave function and probability