pyhande.weight

Attempt to remove the population control bias by reweighting estimates.

pyhande.weight.reweight(data, mc_cycles, tstep, weight_history, mean_shift, weight_key='Shift')

Reweight using population control to reduce population control bias.

Reweight estimators linear in the number of psips by the factor:

\[W(\tau, N) = \Pi^{N-1}_{m=0} e^{-A \delta \tau S(\tau - m\delta\tau)}\]

where \(A\) is the number of steps per shift update cycle, \(\delta\tau\) is the time step and \(S(\tau - m\delta\tau)\) is the shift at time \(\tau - m\delta\tau\), and \(m\) is the number of iterations to reweight over.

See [Umrigar93] Eqs. 14-20 for details and [Vigor15] for use in FCIQMC.

Parameters:
  • data (pandas.DataFrame) – HANDE QMC data.
  • tstep (float) – The time step used in the weight factor.
  • mc_cycles (int) – The number of monte carlo cycles per update step.
  • weight_history (integer) – The number of iterations to reweight over.
  • mean_shift (float) – The mean shift. Used to prevent weights becoming too big.
  • weight_key (string) – Column to generate the reweighting data.
Returns:

weight – List of weights.

Return type:

List[float]

References

Umrigar93
C.J. Umirigar et al., J. Chem. Phys. 99, 2865 (1993)
Vigor15
W.A. Vigor, et al., J. Chem. Phys. 142, 104101 (2015).