mirror of https://github.com/QMCPACK/qmcpack.git
204 lines
8.0 KiB
Plaintext
204 lines
8.0 KiB
Plaintext
This test reproduces Li2 STO + Pade Jastrow runs from Umrigar,
|
|
Nightingale, and Runge (UNR)
|
|
|
|
Reference: C. J. Umrigar et al., J. Chem. Phys. 99 2865 (1993)
|
|
DOI: http://dx.doi.org/10.1063/1.465195
|
|
|
|
As part of the test development, the behavior of the QMCPACK Green's
|
|
function has been compared to the UNR results as a function of
|
|
timestep. Here we relate the timestep behavior comparison for
|
|
validation purposes before going into details specific to the tests.
|
|
|
|
|
|
UNR Reference Data
|
|
==================
|
|
Reference total energies from UNR for VMC and DMC are:
|
|
|
|
VMC -14.9472(2) Ha
|
|
DMC -14.9890(2) Ha (extrapolated to zero timestep)
|
|
|
|
Other data from UNR include the DMC variance and autocorrelation time,
|
|
among other quantities (UNR Table III):
|
|
|
|
sigma : sqrt(variance) (Ha)
|
|
tcorr : auto-correlation time (steps)
|
|
teff/t: ratio of effective to inputted timestep
|
|
ar : acceptance ratio
|
|
|
|
tau sigma tcorr teff/t ar
|
|
0.010 0.408 33.4 0.963 0.968
|
|
0.050 0.390 11.5 0.836 0.858
|
|
0.100 0.378 5.1 0.751 0.786
|
|
0.150 0.371 4.5 0.710 0.753
|
|
0.200 0.370 3.6 0.689 0.740
|
|
0.250 0.368 3.3 0.679 0.734
|
|
|
|
UNR also includes plots of the DMC total energy and kinetic energy as
|
|
a function of timestep (Figures 7 and 11, respectively). The data
|
|
from UNR Fig. 7 (including the statistical error bars) have been
|
|
extracted using the "Web Plot Digitizer" tool online at
|
|
http://arohatgi.info/WebPlotDigitizer/app/. Systematic errors
|
|
introduced by the extraction process are estimated to be ~1% of the
|
|
axis scale, which translates into ~0.00002 Ha for the energy values.
|
|
This estimate is quantitative since the x-axis values (timesteps) are
|
|
known. The extracted data are:
|
|
|
|
tau E_DMC errorbar
|
|
0.2500 -14.993939 +/- 0.000077
|
|
0.2250 -14.992622 +/- 0.000122
|
|
0.2000 -14.992026 +/- 0.000122
|
|
0.1750 -14.991245 +/- 0.000122
|
|
0.1500 -14.990342 +/- 0.000122
|
|
0.1250 -14.989867 +/- 0.000138
|
|
0.1000 -14.989378 +/- 0.000138
|
|
0.0750 -14.989224 +/- 0.000138
|
|
0.0500 -14.988888 +/- 0.000199
|
|
0.0250 -14.988781 +/- 0.000184
|
|
0.0100 -14.989469 +/- 0.000352
|
|
|
|
|
|
Comparison of QMCPACK with UNR
|
|
==============================
|
|
Current (v3.2.0) and historical (SVN rev. 6259) QMCPACK total energy
|
|
values agree with the quoted VMC and extracted DMC values from UNR:
|
|
|
|
VMC DMC (tau=0.01/Ha)
|
|
6259 -14.94721(5) -14.98944(6)
|
|
v320 -14.9470(2) -14.98949(8)
|
|
UNR -14.9472(2) -14.9895(4)
|
|
|
|
The timestep study above was recreated with QMCPACK v3.2.0 (see
|
|
UNR_timestep_comparison directory). The resulting QMCPACK data
|
|
are:
|
|
|
|
tau E_DMC errorbar
|
|
0.2500 -15.027879 +/- 0.000462
|
|
0.2250 -15.015879 +/- 0.000119
|
|
0.2000 -15.008000 +/- 0.000077
|
|
0.1750 -15.002293 +/- 0.000069
|
|
0.1500 -14.997681 +/- 0.000069
|
|
0.1250 -14.994168 +/- 0.000069
|
|
0.1000 -14.991667 +/- 0.000068
|
|
0.0750 -14.989910 +/- 0.000070
|
|
0.0500 -14.989020 +/- 0.000084
|
|
0.0250 -14.988972 +/- 0.000080
|
|
0.0100 -14.989505 +/- 0.000078
|
|
0.0050 -14.989772 +/- 0.000067
|
|
|
|
Comparison plots (with corresponding pdf image files) of the QMCPACK
|
|
and UNR results can be generated with the script E_DMC_vs_tau.py.
|
|
The QMCPACK input file used to generate these data is
|
|
Li2.STO.textrap.in.xml and the raw data from the UNR Fig. 7 extraction
|
|
is found in UNR_Fig7_E_DMC_vs_tau.csv.
|
|
|
|
The QMCPACK and UNR data agree closely for timesteps in the range
|
|
0.025/Ha<tau<0.05/Ha with QMCPACK demonstrating a larger timestep
|
|
error than UNR beyond 0.05/Ha. The estimated zero timestep limit
|
|
of UNR and QMCPACK differ slightly by about 1 mHa:
|
|
|
|
E_DMC (t=0 quadratic extrapolation)
|
|
v320 -14.98997(7) Ha
|
|
UNR -14.9890(2) Ha
|
|
|
|
A comparison between QMCPACK and UNR results for the variance
|
|
(sigma^2), autocorrelation time, effective timestep, and acceptance
|
|
ratio are shown below as a function of timestep. In each case, the
|
|
first line corresponds to UNR data (from Table III) and the second
|
|
line is from QMCPACK v3.2.0.
|
|
|
|
tau 0.010 0.050 0.100 0.150 0.200 0.250
|
|
|
|
sigma 0.408 0.390 0.378 0.371 0.370 0.368
|
|
0.389 0.390 0.392 0.396 0.400 0.411
|
|
|
|
tcorr 33.4 11.5 5.1 4.5 3.6 3.3
|
|
40.3 9.0 4.9 6.0 7.2 15.9
|
|
|
|
teff/t 0.963 0.836 0.751 0.710 0.689 0.679
|
|
0.979 0.855 0.738 0.647 0.586 0.539
|
|
|
|
ar 0.968 0.858 0.786 0.753 0.740 0.734
|
|
0.988 0.913 0.827 0.758 0.701 0.654
|
|
|
|
|
|
Test details
|
|
============
|
|
The tests include short and long VMC and DMC (tau=0.01/Ha) runs for a
|
|
Li dimer. The wavefunction is of Slater-Jastrow form with the Slater
|
|
determinant orbitals represented in a Slater-type orbital (STO)
|
|
exponential basis. The Jastrow factor is represented with simple Pade
|
|
functions. All wavefunction parameters were taken from UNR. The
|
|
original QMCPACK input file was recovered from the informally managed
|
|
qmcdb. This test was likely used during early QMCPACK development and
|
|
testing. Reference data for the tests was produced with QMCPACK SVN
|
|
revision 6259.
|
|
|
|
Reference data was generated with runs the same overall length
|
|
(blocks x steps) as those included in ./qmc-ref, but using 10x more
|
|
blocks (8000) and 10x fewer steps. Using more blocks reduced the
|
|
statistical error of the error bars, but resulted in output data files
|
|
that were too large to include in the QMCPACK distribution. The
|
|
reference values and error bars were therefore computed from the 8000
|
|
block runs. The included reference runs were confirmed to be
|
|
consistent with the original higher block count runs.
|
|
|
|
Reference data from the high block count runs is found below:
|
|
|
|
LocalEnergy Variance ratio
|
|
Li2.STO series 0 -14.947214 +/- 0.000050 0.170618 +/- 0.000103 0.0114
|
|
Li2.STO series 1 -14.988797 +/- 0.001006 0.151149 +/- 0.000845 0.0101
|
|
Li2.STO series 2 -14.989438 +/- 0.000064 0.151118 +/- 0.000031 0.0101
|
|
|
|
|
|
For comparison, corresponding data for the lower block count reference
|
|
data found in ./qmc-ref is:
|
|
|
|
>qmca -e 2 -q ev *scalar*
|
|
LocalEnergy Variance ratio
|
|
Li2.STO series 0 -14.947224 +/- 0.000051 0.170596 +/- 0.000109 0.0114
|
|
Li2.STO series 1 -14.986769 +/- 0.001208 0.151474 +/- 0.001493 0.0101
|
|
Li2.STO series 2 -14.989479 +/- 0.000062 0.151159 +/- 0.000035 0.0101
|
|
|
|
Test input files were created by reducing the number of steps from the
|
|
included reference by a factor of 10 for the "long" tests and by a
|
|
further factor of 10 for the "short" tests.
|
|
|
|
Reference values for the mean local energy and variance were taken
|
|
from the high block count reference runs. Expected error bars were
|
|
derived from the high block count data by multiplying the reference
|
|
error bars by a factor of sqrt(10+1) and sqrt(100+1) for the long
|
|
and short tests, respectively. The factor of +1 accounts for the
|
|
error bar intrinsic to the high block count runs.
|
|
|
|
The target means and error bars for long and short tests are:
|
|
|
|
refmean referr longerr shorterr
|
|
VMC energy -14.947214 0.000050 0.000166 0.000502
|
|
variance 0.170618 0.000103 0.000342 0.001035
|
|
DMC energy -14.989438 0.000064 0.000212 0.000643
|
|
variance 0.151118 0.000031 0.000103 0.000312
|
|
|
|
Error bars from typical long and short runs are shown below:
|
|
|
|
Typical long run results:
|
|
>qmca -e 2 -q ev *long*scalar*
|
|
LocalEnergy Variance ratio
|
|
Li2.STO.long series 0 -14.947014 +/- 0.000152 0.170796 +/- 0.000357 0.0114
|
|
Li2.STO.long series 1 -14.988692 +/- 0.001624 0.151845 +/- 0.000494 0.0101
|
|
Li2.STO.long series 2 -14.989612 +/- 0.000216 0.151080 +/- 0.000094 0.0101
|
|
|
|
Typical short run results:
|
|
>qmca -e 2 -q ev *short*scalar*
|
|
LocalEnergy Variance ratio
|
|
Li2.STO.short series 0 -14.946531 +/- 0.000525 0.171710 +/- 0.001163 0.0115
|
|
Li2.STO.short series 1 -14.988802 +/- 0.000887 0.152505 +/- 0.000782 0.0102
|
|
Li2.STO.short series 2 -14.988719 +/- 0.000536 0.150840 +/- 0.000252 0.0101
|
|
|
|
Rough timings for the tests on an old (circa 2013) AMD system are:
|
|
|
|
>grep 'Total Exe' *long*.out
|
|
Total Execution time = 4.2856237206e+02 secs
|
|
|
|
>grep 'Total Exe' *short*.out
|
|
Total Execution time = 4.6398911903e+01 secs
|