1# Change Log
2
3Notable changes to QMCPACK are documented in this file.
4
5## [3.11.0] - 2021-04-09
6
7### Notes
8
9This release includes a large number of refinements to QMCPACK and the supporting ecosystem. These include support for the latest version of
10Quantum ESPRESSO, new capabilities in AFQMC, space-warp transformation for forces, numerous bug fixes, user-requested feature improvements,
11and further upgrades to the test system.
12
13* Quantum ESPRESSO (QE) v6.7 support. [\#2927](https://github.com/QMCPACK/qmcpack/pull/2927).
14* Detect and automatically use patched version of QE found on the PATH. [\#2974](https://github.com/QMCPACK/qmcpack/pull/2974).
15* Support for global max\_seconds and STOP file to cleanly halt QMCPACK during a run. [\#3028](https://github.com/QMCPACK/qmcpack/pull/3028).
16* Freezing of two-body Jastrow parameters in optimization works. [\#2814](https://github.com/QMCPACK/qmcpack/issues/2814).
17* Multideterminant code now works with only alpha determinants \(no down electrons\). [\#2698](https://github.com/QMCPACK/qmcpack/issues/2698).
18* High l-momentum channels as local channels in ECPs work. [\#2920](https://github.com/QMCPACK/qmcpack/pull/2920).
19* Space Warp Transformation for ZVZB Forces. [\#2828](https://github.com/QMCPACK/qmcpack/pull/2828).
20* Important bug fixes in legacy CUDA implementation causing incorrect energies. [\#2883](https://github.com/QMCPACK/qmcpack/pull/2883).
21* Implemented DLA in legacy CUDA. [\#2887](https://github.com/QMCPACK/qmcpack/pull/2887).
22* Updates to support CUDA 11.2.1 e.g. [\#2950](https://github.com/QMCPACK/qmcpack/pull/2950).
23* AFQMC supports energy estimator with different Hamiltonian \(from propagation\). [\#2795](https://github.com/QMCPACK/qmcpack/pull/2795).
24* Trial wavefunction optimization with spin-orbit supported. [\#3034](https://github.com/QMCPACK/qmcpack/pull/3034).
25* ppconvert executable automatically built when configured. [\#2904](https://github.com/QMCPACK/qmcpack/pull/2904).
26* Tests added for ppconvert. [\#2929](https://github.com/QMCPACK/qmcpack/issues/2929).
27* Fixed SIMD alignment for AVX512 on some systems. [\#2981](https://github.com/QMCPACK/qmcpack/pull/2981).
28* Improved wavefunction restart logic in AFQMC. [\#2942](https://github.com/QMCPACK/qmcpack/pull/2942).
29* Spin-density supported in batched code. [\#2840](https://github.com/QMCPACK/qmcpack/pull/2840).
30* Reduced I/O operations during cmake. [\#2808](https://github.com/QMCPACK/qmcpack/pull/2808).
31* Improved detection of unsupported-by-Intel combinations of Intel compilers and libstdc++. [\#2794](https://github.com/QMCPACK/qmcpack/pull/2794).
32* Initial support for Andes at OLCF. [\#3073](https://github.com/QMCPACK/qmcpack/pull/3073).
33* Deterministic tests expanded in scope and made reliable for more build types and compilers.
34* Various minor bug fixes and feature improvements based on user requests for both real-space and AFQMC.
35* Improved error handling throughout.
36* Numerous performance improvements, expansion of tests, and bug fixes to the batched VMC and DMC codes. Reasonable but not optimal GPU acceleration can now be achieved for spline-based wavefunctions.
37
38### NEXUS
39
40* Support AMD nodes on Cori. [\#2809](https://github.com/QMCPACK/qmcpack/pull/2809).
41* Interface for RMG code. [\#2932](https://github.com/QMCPACK/qmcpack/pull/2932).
42* Added h-channel to list of possible local channels in pseudopotential. [\#2915](https://github.com/QMCPACK/qmcpack/pull/2915).
43* Allow non spin-specific occupations in case of noncollinear. [\#2957](https://github.com/QMCPACK/qmcpack/pull/2957).
44* More robust handling of QE output when printed eigenvalues touch. [\#3042](https://github.com/QMCPACK/qmcpack/pull/3042).
45* Fixed type check for reblock\_factors in qmc-fit. [\#2830](https://github.com/QMCPACK/qmcpack/pull/2830).
46* Fixed a Jastrow read error/warning, add several QE inputs. [\#2819](https://github.com/QMCPACK/qmcpack/pull/2819).
47* Fixed tests on Summit. [\#2983](https://github.com/QMCPACK/qmcpack/pull/2983).
48* Fixed module overwrite bug in qmca. [\#2802](https://github.com/QMCPACK/qmcpack/pull/2802).
49
50## [3.10.0] - 2020-11-10
51
52### Notes
53
54This release contains multiple feature improvements and bug fixes. The AFQMC implementation has been significantly enhanced, and
55an important wavefunction optimization bug fixed in real space QMC.
56
57* The QMCPACK manual is now available at https://qmcpack.readthedocs.io, having been converted to use reStructuredText and the sphinx
58  documentation system.
59* Significant improvements to the AFQMC code including HIP support for AMD GPUs, updated documentation, and support for non-collinear calculations and spin-orbit k-point Hamiltonians
60  [\#2734](https://github.com/QMCPACK/qmcpack/pull/2734).
61* Improved support for spin-orbit in real-space QMC including documentation [\#2733](https://github.com/QMCPACK/qmcpack/pull/2733).
62* Important bug fix for wavefunction optimization in few electron systems such as isolated atoms. The bug would result in slow or no
63  convergence. Thanks to Jaron Krogel and Matus Dubecky for reports and reproducers.
64  [\#2496](https://github.com/QMCPACK/qmcpack/issues/2496).
65* Implementation of L2 potentials and evaluation in DMC [\#1948](https://github.com/QMCPACK/qmcpack/pull/1948).
66* Consistent with our two year support policy for open source compilers, libraries, and tooling, several version minimums have
67  been increased to either avoid bugs or to utilize new features.
68* Clang 7 is the earliest supported Clang compiler. The latest release is recommended.
69* Intel 2019 is the earliest supported Intel compiler. The latest release is recommended.
70* Future releases of QMCPACK will require C++17. The current minimum is C++14.
71* AoS builds are no longer supported. The code has been removed now that the default structures-of-arrays (SoA) build has
72  sufficiently broad capability.
73* The default CUDA architecture is set to sm_70 (Volta).
74* QMCPACK is built with ENABLE_TIMERS=ON by default [\#2663](https://github.com/QMCPACK/qmcpack/issues/2663)
75* Various bug fixes to complete the transition to Python 3.
76* Ongoing improvements to the OpenMP offload implementation.
77
78### NEXUS
79
80* NEXUS manual is now available at https://nexus-workflows.readthedocs.io, having been converted to use the reStructuredText and sphinx
81  documentation system.
82* Various small fixes and improvements.
83
84## [3.9.2] - 2020-04-29
85
86### Notes
87
88This is an important bug fix release. As described in [\#2330](https://github.com/QMCPACK/qmcpack/issues/2330), since v3.8.0 the
89timestep was not correctly changed between different DMC blocks if the time step was changed in the input, biasing the results.
90Runs using a single time step were not affected. Thanks to Chandler Bennett for identifying the problem.
91
92* Bug fix: timestep was not correctly changed between DMC blocks if it was changed in the input [\#2330](https://github.com/QMCPACK/qmcpack/issues/2330).
93* qmcfinitesize tool added [\#2329](https://github.com/QMCPACK/qmcpack/pull/2329).
94* QMCPACK spack package now supports AFQMC [\#2237](https://github.com/QMCPACK/qmcpack/issues/2237).
95* Improvements to deterministic tests: these are now fully reliable other than for some CUDA builds and some mixed precision CPU configurations.
96* Many improvements to cmake configuration for faster builds, e.g. [\#2389](https://github.com/QMCPACK/qmcpack/pull/2389).
97* Ongoing source cleanup and fewer compile-time warnings, e.g. [\#2375](https://github.com/QMCPACK/qmcpack/pull/2375).
98
99## [3.9.1] - 2020-02-11
100
101### Notes
102
103This release is the same as v3.9.0 except that the version number of QMCPACK is reported correctly. See the v3.9.0 part of the CHANGELOG for important changes compared to v3.8.0.
104
105## [3.9.0] - 2020-02-11
106
107### Notes
108
109This release includes a large number of refinements to improve or extend the functionality of QMCPACK and NEXUS. Importantly, this
110release supports and requires Python 3. After this release we plan to remove the array-of-structures build configuration and also
111the legacy CUDA implementation for GPUs. If any needed functionality is not supported by the now-default structures-of-arrays
112configuration, users should contact the developers via the QMCPACK Google Groups or via an issue on the QMCPACK GitHub repository.
113Work is ongoing to support dynamical spin variables, implement spin-orbit, and to develop new support for accelerators via a new
114framework that will consistently support CPUs and GPUs from the same codebase.
115
116* All uses of Python updated to Python 3, which is now required. Python 2 was retired at the end of 2019, and many packages
117  already only support Python 3.
118* A greatly expanded selection of effective core potentials is available at
119  [https://pseudopotentiallibrary.org/](https://pseudopotentiallibrary.org/) in formats suitable for QMCPACK and common DFT and
120  quantum chemistry codes.
121* All major functionality is now supported by the default structures-of-arrays (SoA) build. This release is the last to support the legacy array-of-structures (AoS)
122  build. See [\#861](https://github.com/QMCPACK/qmcpack/issues/861).
123* Major bug identified and fixed in the periodic Coulomb evaluation (Optimized breakup method of Natoli-Ceperley). Many thanks to Jan Brndiar
124  and coworkers for reporting this. For large anisotropic supercells such as a graphene layer with substantial vacuum, the ion-ion potential was
125  incorrectly computed. Results in all bulk-like supercells tested so far have been accurate. An independent Ewald check of the ion-ion potential evaluation has been added. See
126  [\#2137](https://github.com/QMCPACK/qmcpack/pull/2137). The Coulomb potential evaluation has also been found to converge very slowly for certain
127  anisotropic supercells, particularly for quasi-2D cells where huge errors can result. The new independent Coulomb check will
128  abort if a tolerance is not reached and provide guidance. Research is ongoing to develop an improved methodology
129  [\#2185](https://github.com/QMCPACK/qmcpack/issues/2185).
130* Support for periodic gaussian-based trial wavefunctions at complex k-points
131  [\#1988](https://github.com/QMCPACK/qmcpack/issues/1988).
132* Determinant-localization approximation (DLA) of Zen et al. [J. Chem. Phys. 151, 134105
133  (2019)](https://doi.org/10.1063/1.5119729) for DMC non-local pseudopotential evaluation implemented.
134* Improved force implementation [\#1769](https://github.com/QMCPACK/qmcpack/issues/1769), [\#1768](https://github.com/QMCPACK/qmcpack/issues/1768).
135* Non-local pseudopotential derivatives are supported in the SoA build and recommended for all optimizations
136  [\#2083](https://github.com/QMCPACK/qmcpack/issues/2083).
137* Above 192 electrons in a spin determinant, delayed updating with delay 32 is enabled by default for higher performance,
138  [\#2027](https://github.com/QMCPACK/qmcpack/pull/2027). Rank-1 updating is used by default for smaller determinants.
139* Improved configuration and detection of Intel MKL and vector MKL when used with non-Intel compilers.
140* QMCPACK will now run with wavefunctions where only electrons of a single spin are specified.
141  [\#2148](https://github.com/QMCPACK/qmcpack/pull/2148).
142* AFQMC estimators now include 1 and 2 body reduced density matrices (1RRM, 2RDM) and on-top pair density.
143  [\#2097](https://github.com/QMCPACK/qmcpack/pull/2097).
144* Dense real hamiltonian added for AFQMC allowing for GPU acceleration for chemistry applications. [\#2131](https://github.com/QMCPACK/qmcpack/pull/2131).
145* [QMCPACK spack package](https://spack.readthedocs.io/en/latest/package_list.html#qmcpack)  supports the latest release as well
146  as the development version. This package can also install and patch
147  Quantum Espresso.
148* Support for Blue Gene removed due to retirement of this architecture.
149* Many minor bug fixes, expanded testing, and small feature improvements.
150
151### Known bugs
152
153See [list of open bugs](https://github.com/QMCPACK/qmcpack/issues?q=is%3Aissue+is%3Aopen+label%3Abug).
154
155* Use of reconfiguration in DMC is disabled since it is incorrect. [\#2254](https://github.com/QMCPACK/qmcpack/pull/2254)
156
157### NEXUS
158
159* NEXUS version is increased to 2.0.0 due to major updates in this release.
160* NEXUS has been transitioned to Python 3 and now requires it.
161* Significantly expanded test system to cover all major functionality.
162* Full support for PySCF to QMCPACK and AFQMC workflows [\#1970](https://github.com/QMCPACK/qmcpack/pull/1970).
163* Support for DLA [\#2061](https://github.com/QMCPACK/qmcpack/pull/2061).
164* VMC optimization performed with NLPP derivatives by default [\#2128](https://github.com/QMCPACK/qmcpack/pull/2128).
165* Many minor bugfixes and feature improvements.
166
167## [3.8.0] - 2019-07-23
168
169### Notes
170
171This release includes Quantum Espresso v6.4.1 support, new examples
172for adding wavefunctions and Jastrow functions, and many updates to the
173AFQMC code functionality. Additionally, all the updated scripts and
174functionality utilized during the [2019 QMCPACK
175workshop](https://github.com/QMCPACK/qmcpack_workshop_2019) are
176provided; this link also includes several new tutorials. A large
177number of feature refinements, bugfixes, testing improvements and
178source code cleanup have also been performed.
179
180* Quantum Espresso v6.4.1 support [\#1732](https://github.com/QMCPACK/qmcpack/pull/1732).
181* New tutorial for adding a simple wavefunction (He) [\#1621](https://github.com/QMCPACK/qmcpack/pull/1621).
182* New tutorial and capability for adding Jastrow functors from symbolic expressions written in Python [\#1557](https://github.com/QMCPACK/qmcpack/pull/1557).
183* [Updated compiler and library support policy](https://github.com/QMCPACK/qmcpack#prerequisites), and matching testing. We aim to support open source compilers and
184  libraries within two years of release. Use of older software is discouraged and untested. Support for closed source compilers over the same period may require use of an exact version.
185* Many updates to AFQMC code to support more compilers and libraries.
186* Newly expanded deterministic test set should now pass on all platforms and be usable as an.
187  installation check. Recommend to run "ctest -L deterministic" after building QMCPACK.
188* AFQMC code now only reads HDF5 format data to improve I/O performance and storage utilization.
189* K-point AFQMC code usable in production (e.g. bug fix [\#1524](https://github.com/QMCPACK/qmcpack/pull/1524)).
190* Updated AFQMC workflow scripts for interfacing with PySCF.
191* Faster initial cusp correction calculation for all-electron calculations, e.g. [\#1643](https://github.com/QMCPACK/qmcpack/pull/1643).
192* Improved stability of cusp correction calculation [\#1594](https://github.com/QMCPACK/qmcpack/pull/1594).
193* New short-ranged e-n Jastrow [\#1680](https://github.com/QMCPACK/qmcpack/pull/1680).
194* Substantially faster 1-body reduced density matrix (1DRDM) estimator [\#1672](https://github.com/QMCPACK/qmcpack/pull/1672).
195* Performance tests added for LCAO code and Gaussian basis sets [\#1639](https://github.com/QMCPACK/qmcpack/pull/1639).
196* Reduced configuration output by default. Use -DQMC_VERBOSE_CONFIGURATION=1 on CMake line for greater detail.
197* Partial support for forces in LCAO basis e.g. [\#1559](https://github.com/QMCPACK/qmcpack/pull/1559). See details given at
198  2019 QMCPACK Workshop and in manual.
199* Improved human-readable Jastrow output [\#1525](https://github.com/QMCPACK/qmcpack/pull/1525).
200* Improved MPI implementation. QMCPACK is now compatible with OpenMPI v4.
201* Majority of the manual has been professionally edited.
202
203### Known bugs
204
205See [list of open bugs](https://github.com/QMCPACK/qmcpack/issues?q=is%3Aissue+is%3Aopen+label%3Abug).
206
207* There is a general problem with MVAPICH2 involving aligned memory allocations that will cause
208  QMCPACK to crash if MVAPICH is compiled using defaults. See  [\#1703](https://github.com/QMCPACK/qmcpack/issues/1703) for details and workaround.
209
210### NEXUS
211
212* Examples added of PySCF molecular and solid-state workflows [\#1552](https://github.com/QMCPACK/qmcpack/pull/1552).
213* Update support for Quantum Package 2.0 [\#1538](https://github.com/QMCPACK/qmcpack/pull/1538).
214* Support for additional machines including SuperMUC-NG [\#1665](https://github.com/QMCPACK/qmcpack/pull/1665).
215* Support for ghost atoms [\#1653](https://github.com/QMCPACK/qmcpack/pull/1653).
216* Update outdated cubic specifier to alat for QE [\#1642](https://github.com/QMCPACK/qmcpack/pull/1642).
217* K-point grids are symmetrized with spglib [\#1544](https://github.com/QMCPACK/qmcpack/pull/1544).
218* Bundling of jobs at NERSC [\#1748](https://github.com/QMCPACK/qmcpack/pull/1748).
219
220## [3.7.0] - 2019-03-29
221
222### Notes
223
224This release includes GPU support for the AFQMC implementation,
225Quantum Espresso v6.4 support, and in the real-space code makes the
226structure-of-arrays (SoA) code path the default. A large number of
227feature refinements, bugfixes, testing improvements and source code
228cleanup have been performed.
229
230* The improved structures of arrays (SoA) build is now the
231  default. This is generally significantly faster and uses less memory
232  than the AoS build due to better algorithms, but does not yet have
233  the full range of functionality. The older AoS build can be selected
234  with -DENABLE_SOA=0.
235* AFQMC code fully supports GPU acceleration via NVIDIA CUDA. Use -DENABLE_CUDA=1.
236* Quantum Espresso v6.4 is supported.  [\#1457](https://github.com/QMCPACK/qmcpack/pull/1457)
237* Better error handling e.g.  [\#1423](https://github.com/QMCPACK/qmcpack/issues/1423)
238* Workarounds for MPI support on Summit.  [\#1479](https://github.com/QMCPACK/qmcpack/pull/1479)
239* ppconvert should be more reliable.  [\#891](https://github.com/QMCPACK/qmcpack/issues/891)
240* Delayed update implementation on GPUs.  [\#1279](https://github.com/QMCPACK/qmcpack/pull/1279)
241* Continued improvements to the testing system and test coverage. While still under
242  development, a new set of deterministic tests is intended to rapidly
243  and reliably test the code, with good coverage. Tests pass for real
244  and complex, but not yet mixed-precision or GPU builds.
245* Source code has been formatted with clang-format for consistency throughout.
246
247### Known Bugs
248
249See [list of open bugs](https://github.com/QMCPACK/qmcpack/issues?q=is%3Aissue+is%3Aopen+label%3Abug).
250
251* Theres is a bug that could result in an incorrect local
252  electron-ion pseudopotential energy with CUDA v9.1 and Kepler GPUs. This is still being
253  investigated. [\#1440](https://github.com/QMCPACK/qmcpack/issues/1440)
254
255* QMCPACK will not build with OpenMPI v4 due to use of deprecated
256  functions. This will be addressed when the new MPI wrappers are
257  fully adopted. Older OpenMPI libraries are fully capable.
258
259### NEXUS
260
261* A collection of training material is at https://github.com/QMCPACK/nexus_training
262* Improved generation of QMCPACK inputs. [\#1471](https://github.com/QMCPACK/qmcpack/pull/1471)
263* Improved Gaussian Process optimization. [\#1498](https://github.com/QMCPACK/qmcpack/pull/1498)
264* Updated Cori support. [\#1463](https://github.com/QMCPACK/qmcpack/pull/1463)
265* Supercell tiling is more robust. [\#1432](https://github.com/QMCPACK/qmcpack/pull/1432)
266* Summit support. [\#1394](https://github.com/QMCPACK/qmcpack/pull/1394)
267* Improved handling of excited state calculations. [\#1365](https://github.com/QMCPACK/qmcpack/pull/1365)
268* Fixed CHGCAR conversion. [\#1351](https://github.com/QMCPACK/qmcpack/pull/1351)
269
270## [3.6.0] - 2018-12-19
271
272### Notes
273
274This release includes a completely new AFQMC implementation,
275significant performance improvements for large runs, greater
276functionality in the structure-of-arrays (SoA) code path, support for
277larger spline data on multiple GPUs, and support for new machines and
278compilers. The manual has been improved, bugs have been fixed, and
279source code cleanup continued.
280
281A C++14 and C99 capable compiler, Boost 1.61.0, and CMake 3.6 or
282greater are now required.
283
284* Completely updated AFQMC implementation including reduced scaling separable density
285  fitting https://arxiv.org/abs/1810.00284 Documentation and examples
286  will be added in v3.7.0. Contact the developers for use instructions
287  in the interim. [\#1245](https://github.com/QMCPACK/qmcpack/pull/1245)
288
289* Implementation of delayed updates for CPU. Substantial speedups for
290  runs with 100s of electrons, with increasing gains at larger
291  electron counts. See manual for details.  [\#1170](https://github.com/QMCPACK/qmcpack/pull/1170)
292
293* Initial support for nested OpenMP to further reduce time-to-solution for large problems. [\#1082](https://github.com/QMCPACK/qmcpack/pull/1082)
294
295* Support for splitting/distributing spline orbital data across multiple GPUs on a
296  single node. [\#1101](https://github.com/QMCPACK/qmcpack/pull/1101)
297
298* Cusp correction for all electron calculations is implemented in the
299  SoA version. [\#1172](https://github.com/QMCPACK/qmcpack/pull/1172)
300
301* Backflow is implemented in the SoA version. [\#1225](https://github.com/QMCPACK/qmcpack/pull/1225)
302
303* K-points with real coefficients are supported in periodic LCAO. [\#1006](https://github.com/QMCPACK/qmcpack/pull/1006)
304
305* Initial support for Summit at OLCF. Revisions may be needed in
306  January 2019 as the software stack is updated. This will be
307  addressed in a new version as required.
308
309* Initial support for PGI compiler.
310
311* Build instructions for ARM-based systems.  [\#1148](https://github.com/QMCPACK/qmcpack/pull/1148)
312
313* Setup scripts are python 2 and 3 compatible. [\#1261](https://github.com/QMCPACK/qmcpack/pull/1261)
314
315* QMCPACK and NEXUS can now be installed by "make install" after
316  configuring CMake with CMAKE_PREFIX_PATH. [\#1020](https://github.com/QMCPACK/qmcpack/issues/1020)
317
318* Significantly reworked test labeling and categorization system. [\#1155](https://github.com/QMCPACK/qmcpack/pull/1155)
319
320* Partial transition to a new MPI wrapper implementation for greater compatibility.
321
322* Utilities have been renamed for clarity and to avoid name collisions
323  with other applications. getSupercell is renamed
324  qmc-get-supercell. extract-eshdf-kvectors is renamed
325  qmc-extract-eshdf-kvectors.
326
327### Known bugs
328
329Several potentially significant bugs are outstanding and will be addressed in the
330next release. See [list of open bugs](https://github.com/QMCPACK/qmcpack/issues?q=is%3Aissue+is%3Aopen+label%3Abug).
331
332* LCAO (Gaussian basis) molecular calculations are incorrect with
333  certain diffusion functions. The reason for this bug is currently
334  unclear. [\#1145](https://github.com/QMCPACK/qmcpack/issues/1145)
335
336* On NVIDIA Volta GPUs some runs show inconsistencies with the CPU
337  version. Standard carbon diamond and LiH tests pass with good agreement
338  with the CPU implementation. [\#1054](https://github.com/QMCPACK/qmcpack/issues/1054)
339
340* QMCPACK will not build with OpenMPI v4.0.0 due to use of deprecated
341  functions. This will be addressed in the next version as the new MPI
342  wrappers are fully adopted. Older OpenMPI libraries are fully capable.
343
344
345### NEXUS
346
347* Interface to and support for PySCF. [\#1220](https://github.com/QMCPACK/qmcpack/pull/1220)
348* Interface to and support for Quantum Package (QP). [\#1093](https://github.com/QMCPACK/qmcpack/pull/1093)
349* Support for excited state calculations. [\#1200](https://github.com/QMCPACK/qmcpack/pull/1200)
350* qfit is renamed qmc-fit.
351* ntest, sim, redo are renamed nxs-test, nxs-sim, nxs-redo.
352* Many smaller improvements.
353
354## [3.5.0] - 2018-08-02
355
356### Notes
357
358This release includes support for the latest Quantum Espresso version 6.3,
359an initial implementation of periodic Gaussian support via PySCF, and a new
360version of the hybrid or "APW" representation of orbitals. Many minor
361bugs have been fixed, configuration and documentation improved.
362
363Note that the PDF manuals are no longer included with the source. Versions
364are available online via https://qmcpack.org . The PDFs can be built
365using manual/build_manual.sh and
366nexus/documentation/user_guide_source/build_nexus_user_guide.sh
367
368Attention developers: This version contains substantially fewer source
369lines than previous versions due to clean out of old code and unused
370execution paths. Refactoring to improve the internal structure of
371QMCPACK is ongoing. Track the develop branch and follow discussion on
372GitHub closely to avoid difficult merges.
373
374* Support for Quantum Espresso 6.3 and 6.2.1. Check documentation to
375  ensure compiled with required HDF5 support.
376* Support for periodic gaussians and PySCF generated
377  wavefunctions. Initial version is limited to Gamma-point.
378* Improved hybrid representation of single particle orbitals
379  (APW-like) for significantly reduced memory usage and possible
380  accuracy increase compared to conventional spline representation. https://arxiv.org/abs/1805.07406
381* Norms of orbitals are checked inside QMCPACK to catch conversion errors.
382* Added verbosity setting to QMCPACK output.
383* CUDA can now be enabled with SoA builds.
384* Many improvements to QMCPACK manual, including all new features, CIPSI, 3-body
385  jastrow factor description, spack package, and enabling HTML generation.
386* CMake configuration improvements, particularly around MKL handling.
387* Extensive cleanup of unused source files and unused code paths
388  removed, reducing the number of source lines by over 30 percent.
389
390### Known bugs
391
392* Weight of first block of DMC density is incorrect in CPU
393  code. DMC densities in CUDA GPU code are incorrect for all
394  blocks. [\#934](https://github.com/QMCPACK/qmcpack/issues/934) and [\#925](https://github.com/QMCPACK/qmcpack/issues/925)
395* Runs with only a single electron may crash. [\#945](https://github.com/QMCPACK/qmcpack/issues/945)
396
397### NEXUS
398
399* Support for GAMESS HDF5 workflows.
400* Nexus accepts command line inputs.
401* Nexus testing via ntest executable.
402* Added GAMESS-NEXUS examples for RHF, CISD, and CASSCF wavefunction.
403* Added support for -nojastrow workflows.
404* Added support for Stampede supercomputer.
405* Added script to build NEXUS user guide.
406* Various bugfixes including to GAMESS input parsing.
407
408## [3.4.0] - 2018-01-29
409
410### Notes
411
412This release includes size-consistent t-moves, and improvements to
413load balancing and memory usage that will be visible in large
414runs. Significant revisions have been made to the gaussian
415wavefunction reader and a PySCF interface is in progress.  A bug
416affecting non-git installs (from release tarballs) is fixed. Feedback
417is particularly welcome on the new features.
418
419* Size consistent t-moves implemented (Casula 2010 algorithm).
420  Enabled via nonlocalmoves parameter, see manual.
421* Bugfix: For non-git builds, build process failed on some systems
422  due to git-rev.h handling.
423* Optimized load balancing in DMC. Command line option async_swap
424  removed. Parameter use_nonblocking now disables non-blocking MPI
425  load balancing. Non-blocking MPI is now enabled by default.
426* Improved memory handling and usage in SoA code, increases
427  performance.
428* Improved stability of GPU matrix inversion for large runs.
429* Ongoing improvements to output to improve readability.
430* Initial interface to PySCF for real space QMC trial wavefunctions.
431* Enabled use of HDF5 files for Gaussian based wavefunctions
432  with SoA implementation.
433* Added Appendix to manual listing all known QMCPACK publications.
434  This will be updated on an ongoing basis. Please advise of any
435  missing publications.
436* Optimized momentum distribution estimator. Supported by SoA and
437  1,2,3-body Jastrow functions.
438* Support for labeled timers in Intel VTune based profiling.
439
440### NEXUS
441
442* Minor bugfixes and improvements.
443
444### Known limitations
445
446* PySCF interface is preliminary. convert4qmc is updated, but manual
447  entries are not yet provided. This will be improved in later
448  versions. The interface is currently only for isolated molecular
449  systems. A full periodic implementation is in progress.
450
451* Documentation, examples and tutorials are not yet consistent with
452  the updated converter convert4qmc.
453
454## [3.3.0] - 2017-12-18
455
456### Notes
457
458This release includes new methods, converter updates, and many
459optimizations, feature improvements, and bug fixes. It is a
460recommended update for all users.
461
462### QMCPACK updates
463
464* Support for finite difference linear response (FDLR) method and
465  wavefunctions, developed and contributed by Nick Blunt and Eric
466  Neuscamman, see Journal of Chemical Physics 147, 194101 (2017),
467  https://doi.org/10.1063/1.4998197 and
468  https://arxiv.org/abs/1707.09439 .
469* Major update to convert4qmc, conversion from GAMESS and other
470  gaussian basis set codes. HDF5 output is now supported for large
471  wavefunctions with -hdf5 option. Significantly improved example
472  inputs \*.qmc.in.xml.
473* Gaussian based trial wavefunctions now supported by structure of
474  arrays implementation (ENABLE_SOA=1). A full reimplementation that
475  will also support gaussians in periodic boundary conditions, e.g.
476  from pyscf, is in progress.
477* Initialization of multideterminant wavefunctions improved for faster
478  startup and lower memory usage. In practice this significantly
479  raises the usable maximum number of determinants.
480* Maximum CPU time setting (maxcpusecs): QMC drivers will not
481  start a new block if there is not enough estimated time remaining to
482  complete the next block and gracefully shut down.
483* Homogeneous electron gas wavefunction support and tests.
484* New command line verbosity command line flag -verbosity. Output of
485  QMCPACK will be overhauled over the next few releases to
486  support low, high, and debug options, and also to significantly improve
487  readability and utility.
488* Bugfix: Umrigar drift diffusion term is now consistent with the
489  Umrigar small time step error algorithm with complex wavefunctions.
490* Bugfix: Momentum distribution is now correctly weighted and also
491  correctly signed for twist averaging.
492* Renamed performance tests with atom and electron count.
493* Removed support for "buffering" of non-local pseudopotential
494  wavefunction components during optimization (useBuffer setting) to
495  reduce memory usage and for simplicity.
496* doxygen documentation for developer-level documentation of the code
497  and file structure. Produced via make in qmcpack/doxygen. HTML
498  currently published at http://docs.qmcpack.org/doxygen/doxy/
499* Many minor bug fixes and improved tests.
500
501### NEXUS
502
503* Improved postprocessing support for Quantum Espresso.
504* Various minor bug fixes.
505
506### Known issues and limitations
507
508* Documentation, examples and tutorials are not yet consistent with
509 the updated converter convert4qmc.
510* Core functionality is largely compatible with ENABLE_SOA but
511  some specialized wavefunctions and observables are not.
512* Use of GNU compilers with glibc 2.23 builds will crash due to a bug
513  in libmvec of glibc. The glibc version can be verified by
514  "ldd --version".
515
516## [3.2.0] - 2017-09-21
517
518### Notes
519
520This release provides a significant speed increase for
521many calculations. A C++11 compiler is now required. It is a
522recommended update.
523
524### QMCPACK updates
525
526* Major speedup for calculations using spline wavefunctions via
527  initial implementation of "Structure of Arrays" data layout and
528  improved algorithms. Enabled via -DENABLE_SOA=1. Benefits all CPU
529  architectures. Many runs are doubled in speed. Not yet available for
530  Gaussian-basis sets or for all observables and QMC methods. See
531  writeup in manual for guidance.
532* A compiler supporting C++11 is now required.
533* DMC respects MaxCPUSecs parameter and will gracefully shut down and
534  not start a new block if there is not sufficient estimated time to
535  complete it.
536* Checkpointing code rewritten for robustness and performance at scale.
537  Parallel as well as serial HDF5 supported and autodetected.
538* Improved beta-release of AFQMC code and documentation.
539* Backflow documentation and optimization tips added.
540* Correlated sampling VMC drivers reactivated.
541* Added carbon graphite performance test similar to CORAL benchmark.
542* Improvements to CMake and CTest usage.
543* Build instructions for NERSC, ALCF, and OLCF machines updated.
544* Latest manual PDF now available at http://docs.qmcpack.org
545
546### NEXUS
547
548* Significantly improved manual entry for "qmca" analysis tool, the
549  main recommended tool for statistical analysis of QMCPACK data.
550* Added time step fitting tool "qfit" for timestep extrapolation. Uses
551  jack-knife statistical technique.
552* Improved density file postprocessing.
553* Support for Makov-Payne corrections.
554
555## [3.1.1] - 2017-08-01
556
557### Notes
558
559This is a bugfix release and recommended update.
560
561### QMCPACK updates
562
563* Added numerical tolerance to check of jastrow cutoff and Wigner Seitz
564  radius.
565* CMake correctly configures when MPI is not present.
566* Improved support for test coverage measurements.
567* Added unit tests for some estimators.
568
569### NEXUS
570
571* IPython compatible exit handling (from Duy Le)
572
573
574## [3.1.0] - 2017-06-21
575
576### Notes
577
578This release incorporates an improved DMC equilibration scheme,
579numerous bugfixes, small improvements, and significantly improved
580testing. It is a recommended update.
581
582### QMCPACK updates
583
584* Improved population control during DMC equilibration. Reduces variance on larger runs.
585* Bugfix: Real valued wavefunction GPU code gave incorrect result for some non-gamma twists that could be made real, e.g. X point. Complex code (QMC_COMPLEX=1) was always correct.
586* All particle move VMC and DMC algorithms enabled, tests added.
587* Reptation Monte Carlo (RMC) enabled, tests added.
588* Significantly improved AFQMC implementation.
589* Added NiO based VMC and DMC performance tests and description in manual. Wavefunction files accessed via QMC_DATA.
590* Added DMC tests with locality and t-moves approximations.
591* Added AFQMC tests.
592* Added test of real space QMC restart capabilities.
593* Added tests for several estimators.
594* Added unit test for DMC walker propagation, effective core potentials, and OhmmsPETE.
595* To avoid filesystem limitations, QMC_SYMLINK_TEST_FILES can be set to symlink (1) or copy test files (0).
596* Fixed mixed precision Ceperley force evaluation.
597* Many updated tests to improve statistical reliability. Removed flux estimator from short tests because they were not reliable enough.
598* Tests that rely on non-standard python modules that are not available are skipped.
599* Error trap jastrow factors with cutoff radii larger than Wigner Seitz radius.
600* Bugfix: Prevent users from adding correlation terms on non-existing electron pairs, e.g. up-down correlation terms when only up-spin particles are present.
601* Support for measuring test coverage and performing coverage runs with cmake and ctest.
602* Support for GCC7 and IBM XL (non Blue Gene) compiler.
603* Support selecting GPU microarchitecture via -DCUDA_ARCH=sm_35(default).
604* SummitDev IBM Minsky build recipe (Power8 + NVIDIA Pascal P100 GPUs).
605* Significantly updated optimizer description in manual, including excited state optimization.
606* Added description of using Intel MKL with non-Intel compilers in manual.
607* Added description of MPIEXEC and MPIEXEC_NUMPROCS_FLAG to manual for systems where MPI runner is non-standard.
608* Updated labs with correct pseudopotentials, basis set files.
609* Many updated error messages and warnings.
610
611### Known problems
612
613* AFQMC without MKL will fail, e.g. short-afqmc-N2_vdz-4-1 test fails.
614
615### NEXUS updates
616
617* Improved selection algorithm to obtain optimally tiled supercells.
618* Support for parallel pw2qmcpack workflows.
619* Support for HPC resources at the Leibniz Supercomputing Center.
620* Better consistency checks for the Structure class.
621* Bugfix: forbid job bundling for simulations that depend on each other.
622* Bugfix: correctly select low spin polarization in primitive and tiled (net_spin="low" option).
623
624
625## [3.0.0] - 2017-01-30
626
627### Notes
628
629We are adopting [Semantic Versioning](http://semver.org) with this
630release. It is the first to be made from the git repository on GitHub,
631and the first named release since 2016-06-02 and subversion
632revision 6964.
633
634A potentially severe bug is fixed for periodic wavefunctions in this version,
635in addition to many usability improvements and bugfixes. All users are
636strongly recommended to upgrade.
637
638NEXUS updates are listed after QMCPACK updates.
639
640### QMCPACK updates
641
642* IMPORTANT BUGFIX: Real-valued wavefunction code would occasionally make a numerically
643  unstable choice for constructing real-valued periodic wavefunctions, leading to
644  large variances and poor energies. Algorithm for constructing
645  wavefunctions improved.
646* Fully parallel pw2qmcpack.x for QE 5.3, enables conversion of large
647  wavefunctions and use of same parallel setup as pw.x runs.
648* Full testing of Quantum Espresso workflows (pw.x -> pw2qmcpack.x ->
649  qmcpack). Specify directory containing QE binaries via QE_BIN during configuration.
650* Added open boundary conditions tests using QE wavefunctions,
651  as might be used for molecular work. Requires QE_BIN and computes
652  trial wavefunction on the fly.
653* Added DMC, optimizer and additional system tests.
654* Added unit tests using the Catch framework.
655* Plane wave wavefunctions can be evaluated in plane waves, use "pw"
656  as determinantset type. Slow, but useful for checking spline accuracy. Tests added.
657* Complex implementation on GPUs, supports arbitrary twists and
658  complex phase wavefunctions as per CPU code.
659* Flux estimator correct for complex wavefunctions.
660* Mixed precision CPU implementation, activated via -DQMC_MIXED_PRECISION=1.
661* Double precision GPU implementation, complementing existing
662  mixed precision implementation, activated via -DQMC_MIXED_PRECISION=0.
663* GAMESS CI converter improved.
664* C++11 detection and support.
665* Initial release of new optimizer, requires C++11 (contact Eric Neuscamman).
666* Initial release of orbital-based AFQMC code, requires C+11 and MKL (contact Miguel Morales).
667* Fine grained timers implemented, activated via -DENABLE_TIMERS=1.
668* Improved Intel math and vector math library support. MKL and MKL VML more easily
669  supported with GCC as well as Intel compilers.
670* Many code updates to eliminate CLANG warnings.
671* Configure scripts, printed headers, manual updated for git. Git
672  version printed during configure and on standard output.
673* Source files headers updated to consistently show UIUC/NCSA open source
674  license and list development history.
675* Numerous manual updates.
676* Updated QMCPACK tutorial laboratories.
677* Many small bug fixes, improvements and optimizations.
678
679### NEXUS updates
680
681* General
682  *  Nexus output now tracks time instead of poll number.
683  *  Reported memory use now includes child processes.
684* Workflow generator
685  *  Major new capability to generate simple to complex workflows involving QE, VASP, and QMCPACK.
686  *  Aim is to allow single notebook/worksheet describing all simulation workflows needed in a project.
687  *  Users can succinctly create any subchain of the workflow: relax->scf->nscf->orbital_conv->qmc.
688  *  Additional elements can be added to workflow chains over time as needed.
689  *  Scans of structural parameters and input parameters at any level of the chain are possible.
690  *  No programming constructs are required (for/if, etc).
691  *  Directory substructure is automatically generated in the case of scans.
692  *  Native support for visualizing workflows via pydot is provided.
693  *  Documentation for this feature is pending.
694* Quantum Espresso workflows
695  *  Support for vdW functional input.
696  *  Fixes to SCF->NSCF workflows for QE 5.3.0+.
697  *  Support for automatic restarts of SCF runs.
698  *  Native support for workflows involving post-processing tools
699    * pp.x, dos.x, bands.x, projwfc.x, cppp.x, pw_export.x supported.
700    * Postprocessing and summary of Lowdin charge data from projwfc.x.
701* QMCPACK workflows
702  *  Fixes for QE/VASP structural relaxation -> QMCPACK workflows.
703  *  Fixed job bundling of twist averaged runs.
704  *  Support for partitioned sposet input.
705* Supercomputing environments
706  *  Native support for several supercomputing environments located at Sandia Nat. Labs.
707* Atomic structure manipulation
708  *  Ability to find optimal supercells, similar to getSupercell tool.
709  *  Robustness fixes to tiling operations.
710*  Tools
711  *  qmca
712    *  Fix for twist averaging with user-provided weights.
713  *  qmcfit
714    * New command line tool for jack-knife fitting of QMCPACK data.
715    * Timestep extrapolation currently supported.
716    * General binding/equation of state fitting pending.
717