mirror of https://github.com/QMCPACK/qmcpack.git
143 lines
7.8 KiB
Plaintext
143 lines
7.8 KiB
Plaintext
|
|
These tests are for a 14 electron homogeneous electron gas at the gamma point.
|
|
|
|
The tests include:
|
|
non-interacting VMC (zero variance)
|
|
non-interacting DMC (zero variance)
|
|
Slater-only VMC ("Hartree-Fock")
|
|
Slater-Jastrow VMC (using older and recent input styles)
|
|
Slater-Jastrow-Backflow VMC
|
|
Slater-Jastrow DMC
|
|
|
|
The original files come from the 2012 QMCPACK school. These were
|
|
recovered from the old Google Code website as a tar file
|
|
(qmcpack_tutorial.tar). The original output data (not included) was
|
|
generated with QMCPACK SVN revision 5548 on 11 July 2012 by Jeremy
|
|
McMinis. The original runs include the calculation of the homogeneous
|
|
pair correlation function, g(r). The calculation of g(r) is retained
|
|
in the current tests, but only the energy and its variance are checked
|
|
at this time. The original files were rerun using a recent build of
|
|
SVN revision 6259 and were found to agree. Subsequent runs of QMCPACK
|
|
release versions 3.0.0 and 3.1.1 were also found to agree across
|
|
multiple machines at ORNL.
|
|
|
|
The backflow wavefunction in the original files had to be reoptimized
|
|
because a cutoff larger than the Wigner-Seitz radius had been used
|
|
originally (this was caught automatically by version 3.1.1). Both
|
|
SVN revision 6259 and the 3.1.1 release were capable of reoptimizing
|
|
the backflow function (quartic optimizer, energy minization) to a
|
|
similar degree of quality as the original in terms of energy and
|
|
variance. A more recent way of specifying HEG wavefunction input was
|
|
added as a test as were Slater-only runs without an interaction as
|
|
this provides an exact reference.
|
|
|
|
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 are 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 (25 blocks
|
|
excluded as equilibration from heg_SJ_dmc, 10 from all others):
|
|
|
|
LocalEnergy Variance ratio
|
|
heg_NI series 0 0.627711 +/- 0.000000 0.000000 +/- 0.000000 0.0000
|
|
heg_NI_dmc series 1 0.627711 +/- 0.000000 0.000000 +/- 0.000000 0.0000
|
|
heg_HF series 0 -0.812484 +/- 0.000027 0.193169 +/- 0.001852 0.2378
|
|
heg_SJ series 0 -1.073323 +/- 0.000027 0.024574 +/- 0.000018 0.0229
|
|
heg_SJ_new series 0 -1.073286 +/- 0.000027 0.024564 +/- 0.000034 0.0229
|
|
heg_SJB series 0 -1.084963 +/- 0.000025 0.022667 +/- 0.000076 0.0209
|
|
heg_SJ_dmc series 2 -1.110199 +/- 0.000032 0.022894 +/- 0.000006 0.0206
|
|
|
|
|
|
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
|
|
heg_NI series 0 0.627711 +/- 0.000000 0.000000 +/- 0.000000 0.0000
|
|
heg_NI_dmc series 1 0.627711 +/- 0.000000 0.000000 +/- 0.000000 0.0000
|
|
heg_HF series 0 -0.812480 +/- 0.000027 0.191245 +/- 0.000342 0.2354
|
|
heg_SJ series 0 -1.073379 +/- 0.000026 0.024530 +/- 0.000009 0.0229
|
|
heg_SJ_new series 0 -1.073333 +/- 0.000027 0.024553 +/- 0.000019 0.0229
|
|
heg_SJB series 0 -1.084968 +/- 0.000025 0.022614 +/- 0.000026 0.0208
|
|
heg_SJ_dmc series 2 -1.110158 +/- 0.000032 0.022906 +/- 0.000006 0.0206
|
|
|
|
Tests 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. A number of warmup steps
|
|
was added to match the practice of excluding only the first two blocks
|
|
within the ctest system (check_scalars.py -e 2 ...).
|
|
|
|
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
|
|
heg_NI energy 0.627711 0.000000 0.000001 0.000001
|
|
variance 0.000000 0.000000 0.000001 0.000001
|
|
heg_NI_dmc energy 0.627711 0.000000 0.000001 0.000001
|
|
variance 0.000000 0.000000 0.000001 0.000001
|
|
heg_HF energy -0.812484 0.000027 0.000090 0.000271
|
|
variance 0.193169 0.001852 0.006142 0.018612
|
|
heg_SJ energy -1.073323 0.000027 0.000090 0.000271
|
|
variance 0.024574 0.000018 0.000060 0.000181
|
|
heg_SJ_new energy -1.073286 0.000027 0.000090 0.000271
|
|
variance 0.024564 0.000034 0.000113 0.000342
|
|
heg_SJB energy -1.084963 0.000025 0.000083 0.000251
|
|
variance 0.022667 0.000076 0.000252 0.000764
|
|
heg_SJ_dmc energy -1.110199 0.000032 0.000106 0.000322
|
|
variance 0.022894 0.000006 0.000020 0.000060
|
|
|
|
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
|
|
heg_long_NI series 0 0.627711 +/- 0.000000 0.000000 +/- 0.000000 0.0000
|
|
heg_long_NI_dmc series 1 0.627711 +/- 0.000000 0.000000 +/- 0.000000 0.0000
|
|
heg_long_HF series 0 -0.812621 +/- 0.000081 0.189785 +/- 0.000361 0.2335
|
|
heg_long_SJ series 0 -1.073216 +/- 0.000085 0.024582 +/- 0.000052 0.0229
|
|
heg_long_SJ_new series 0 -1.073202 +/- 0.000085 0.024605 +/- 0.000057 0.0229
|
|
heg_long_SJB series 0 -1.084962 +/- 0.000078 0.022531 +/- 0.000029 0.0208
|
|
heg_long_SJ_dmc series 2 -1.110036 +/- 0.000103 0.022899 +/- 0.000027 0.0206
|
|
|
|
Typical short run results:
|
|
>qmca -e 2 -q ev *short*scalar*
|
|
LocalEnergy Variance ratio
|
|
heg_short_NI series 0 0.627711 +/- 0.000000 0.000000 +/- 0.000000 0.0000
|
|
heg_short_NI_dmc series 1 0.627711 +/- 0.000000 0.000000 +/- 0.000000 0.0000
|
|
heg_short_HF series 0 -0.812474 +/- 0.000310 0.189679 +/- 0.000867 0.2335
|
|
heg_short_SJ series 0 -1.073104 +/- 0.000273 0.024401 +/- 0.000075 0.0227
|
|
heg_short_SJ_new series 0 -1.073145 +/- 0.000277 0.024518 +/- 0.000086 0.0228
|
|
heg_short_SJB series 0 -1.085005 +/- 0.000256 0.022623 +/- 0.000234 0.0209
|
|
heg_short_SJ_dmc series 2 -1.110288 +/- 0.000459 0.022872 +/- 0.000066 0.0206
|
|
|
|
Rough timings for the tests on an old (circa 2013) AMD system are:
|
|
|
|
>grep 'Total Exe' *long*.out
|
|
heg-long-NI.out: Total Execution time = 9.4717e-01 secs
|
|
heg-long-NI-dmc.out: Total Execution time = 2.2727e+00 secs
|
|
heg-long-HF.out: Total Execution time = 2.0527e+02 secs
|
|
heg-long-SJ.out: Total Execution time = 3.0473e+01 secs
|
|
heg-long-SJ-new.out: Total Execution time = 2.8511e+01 secs
|
|
heg-long-SJB.out: Total Execution time = 3.1974e+02 secs
|
|
heg-long-SJ-dmc.out: Total Execution time = 3.8034e+02 secs
|
|
|
|
>grep 'Total Exe' *short*.out
|
|
heg-short-NI.out: Total Execution time = 1.3245e-01 secs
|
|
heg-short-NI-dmc.out: Total Execution time = 2.9920e-01 secs
|
|
heg-short-HF.out: Total Execution time = 2.2165e+01 secs
|
|
heg-short-SJ.out: Total Execution time = 4.4773e+00 secs
|
|
heg-short-SJ-new.out: Total Execution time = 3.4323e+00 secs
|
|
heg-short-SJB.out: Total Execution time = 3.3870e+01 secs
|
|
heg-short-SJ-dmc.out: Total Execution time = 4.2180e+01 secs
|