For questions please use the QMCPACK Google Group.

A list of releases made from GitHub can be browsed at Source code, including for the current development version, is available at

The latest nightly test status can be browsed at

QMCPACK Release v3.15.0 - 2022-09-29

Download QMCPACK v3.15.0


This is a recommended release for all users. There are many quality of life improvements, bugfixes throughout the application, and updates to the associated testing. Thanks to everyone who reported an issue or suggested an improvement.

We are working to make the performance portable "batched drivers" the default in an upcoming version. These support execution on CPUs and multiple GPU architectures with high performance. Most standard QMC calculations and many observables are already supported. Because some changes to the input files will be required, we recommend trying these drivers now and reporting any issues.

  • Important bug fix to excited states in splines when spin-up/down sets are built from the same spin species and occupation is specified on the first sposet #4158
  • The Quantum ESPRESSO converter, pw2qmcpack is now supported via a plugin activated via -DQE_ENABLE_PLUGINS=pw2qmcpack on the QE CMake configure line, see . The latest QE 7.1 and earlier 7.0 are supported, and new versions should be automatically compatible.
  • Substantial improvements to the performance portable / batched implementation. Using LLVM 15.0, high performance production calculations can be performed on NVIDIA GPUs for several wavefunction types, in addition to running on all CPU systems.
  • As introduced in v3.14.0, the optional project data input parameter driver_version specifies whether legacy or batched drivers are used. In future versions of QMCPACK this tag will be required to avoid ambiguity and allow e.g. the batched VMC driver to be obtained via vmc in addition to vmc_batch. See
  • Non-local pseudopotential energy contributions are consistently included in the objective function used for optimization, improving convergence and achievable wavefunction quality e.g. #4177
  • Support for multistep wavefunction optimization, specifying different parameter sets to be frozen at each step. #4169
  • Parameter filtration during optimization based on statistical uncertainties #4126
  • Support for 2D HEG calculations (e.g. #4084 )
  • Pseudopotential non-local channel can be specified in input #4032
  • Use of deprecated CUDA texture API removed for greater compatibility #4022
  • Optimization has been removed from the legacy CUDA code. New calculations needing GPU support should use the batched drivers and their GPU capabilities for optimization. #4138
  • Initial version of determinant update in SYCL for Intel architectures (e.g. #4118 )
  • Updated walker counts in several of the performance tests. Due to the changed but more representative workloads, new performance timings should not be compared with older runs (e.g. #4112 )
  • Maximum system sizes run in the performance tests can be specified in CMake via QMC_PERFORMANCE_NIO_MAX_ATOMS, QMC_PERFORMANCE_C_GRAPHITE_MAX_ATOMS, and QMC_PERFORMANCE_C_MOLECULE_MAX_ATOMS (e.g. #4134 )
  • Readability refinements in the output, e.g. #4149
  • UHF/UKS support in PySCF converter #4089
  • Example installation scripts for more machines placed in config directory, including Archer2, and Polaris.
  • Many improvements in testing including additional tests, better reliability, and bug fixes.
  • Minimum version of CMake is now v3.17.0 for CPU builds. For GPU builds, more recent versions may be required. Use of the latest CMake version is generally recommended.
  • Minimum CUDA version is 11.0 #3957
  • Minimum version of GCC is now v9.


  • Nexus: support to current batched driver style. Example inputs for batched runs using trial wavefunctions from QE are included in examples/qmcpack/rsqmc_quantum_espresso #4246
  • Nexus: add override_vp_parameters element #4245
  • Nexus: fix convert4qmc hdf5 issue #4243
  • Nexus: extend angular channels for pseudopotentials up to l_max=21 #4148
  • Nexus: Pass PYTHONPATH recorded at cmake step to nxs-test to ensure tests run #3935
  • Nexus: Support for VASP keywords to version 6.3 #4056
  • Nexus: Adding docs for limiting the number of simultaneously submitted jobs to a queue #4133

QMCPACK Release v3.14.0 - 2022-04-06

Download QMCPACK v3.14.0


This release focuses on performance improvements to the OpenMP target offload version for GPUs as well as ongoing minor improvements. The new GPU implementation rivals the legacy CUDA version for performance for broad range of problems while offering more functionality, such as three body Jastrow functions. Developers are very interested in feedback from users about the new version and will prioritize developments based on comments received. A new driver_version switch is introduced, currently optional, to disambiguate between the versions and their inputs.

  • New global driver_version switch to select between batched and legacy codes. This will become a required input tag in the next major release series of QMCPACK, but remains optional in 3.x versions #3897
  • Optimization of block sizes in GPU offload kernels #3910
  • GPU Offload of one-body Jastrow ratio calculation in pseudopotential evaluation #3905
  • GPU Offload of some Coulomb potential evaluations #3842
  • Partial GPU offload of multideterminant evaluation e.g. #3892
  • Increased performance via more selective distance table computation #3846
  • Improved performance on AMD GPUs via rocSOLVER integration #3756
  • HIP build options shown in output #3919
  • Documentation improvements, particularly relating to installation.
  • Various bug fixes and ongoing cleanup.


  • Nexus: proper use of max_seconds in legacy drivers #3877

QMCPACK Release v3.13.0 - 2022-02-16

Download QMCPACK v3.13.0


This release incorporates support for trial wavefunctions from Quantum ESPRESSO 7.0 and adds GPAW support for the first time. Non-local pseudopotential derivatives are fully supported in the optimizer and recommended in standard calculations.
Numerous minor bug fixes, test and installation improvements have been made. Behind the scenes updates include maturation of the OpenMP target offload implementation and the batched drivers, a partial implementation of fast force calculations, and ongoing modernization of the code. This is a recommended release for all users.

  • Support for Quantum ESPRESSO (QE) 7.0 #3683
  • Support for GPAW and GPAW to QMCPACK converter #3490
  • use_nonlocalpp_deriv is fully supported and preferred in optimization #3785 and others.
  • Save and restore of variational parameters during optimization #3640
  • Twist attribute takes precedence over twistnum. Twist is preferred specification. #3799
  • Fixed inconsistent twist directions between electron gas and spline wavefunctions #1386
  • Fixed reported Madelung constant in CoulombPBCAA #3806
  • More robust computation of reference ion-ion Coulomb energy #3763
  • Expanded test set, including more coverage of plane-wave basis sets and complex molecules #3105#3822
  • More consistent python invocations #3680
  • Builds with OpenMP disabled (QMC_OMP=0) again supported #3723
  • Modernization of HDF5 usage e.g. #3705
  • Minimum supported Intel classic compiler version is 19.1. #3747
  • Various minor bug fixes and ongoing code cleanup.


  • Nexus: Add --user $USER to squeue command #3796
  • Nexus: Add Example and tests for qdens-radial tool #3676
  • Nexus: Add Lowdin example #3666
  • Nexus: Fixed Nexus 'install' target #3720
  • Nexus: Harden Nexus excitation checks #3729
  • Nexus: Small fix to excitation checks #3701
  • Nexus: Faster configuration time #3706


QMCPACK Release v3.12.0 - 2021-12-08

Download QMCPACK v3.12.0


This release incorporates several hundred changes to QMCPACK and the supporting ecosystem. It is a recommended release for all users. Note that compilers supporting C++17 and CMake version 3.15 or newer are now required. Changes include newly added support for the DIRAC quantum chemistry code, the RMG-DFT code, and updates for the latest version of Quantum ESPRESSO. Through DIRAC it is now possible to perform highly accurate molecular calculations incorporating spin-orbit with multideterminant trial wavefunctions. Behind the scenes updates include increased checking of inputs, fixes to many edge case bugs, and removal of memory leaks in both QMCPACK and the various converters. In readiness for transition to the new batched drivers that support both CPU and GPU execution, more features are supported and performance improved. Test coverage and robustness is improved in all areas. For developers, tests, sanitizers, and code coverage are now run on Pull Requests using GitHub Actions.

  • To aid coexistence of real and complex builds, the qmcpack executable is now named qmcpack_complex for builds with QMC_COMPLEX=1
  • Added DIRAC converter and support for MSD wave functions #3510
  • Spin-Orbit implementation completed #1770
  • Quantum ESPRESSO (QE) v6.8 support #3301
  • Support for RMG DFT code #3351
  • CMake 3.15 minimum required #3492
  • C++17 is required #3348
  • CMake CUDA support uses modern FindCUDAToolkit #3460
  • Support latest Sphinx-contrib BibTeX 2.x #3176
  • One Body Density Matrices supported in batched drivers #3622
  • Batched performant Slater matrix inverses #3470
  • Safeguards for requesting more orbitals than the input h5 provide #2341
  • Implemented One-body spin-dependent Jastrow #3257
  • Fixes for low particle counts, such as using a two body Jastrow with more than 2 particle types but only one particle of each type #3137
  • ppconvert is built by default #3143
  • Documentation on revised input format where SPO sets are created outside the determinant #3456


  • Add Density functionality to qdens tool #3541
  • Add new qdens-radial tool for radial analysis of densities #3587
  • Radial density of requested species only #3099
  • Extend structure plotting capabilities for 2D materials #3220
  • Support grand-canonical twist averaging #3153
  • Extend excitations to allow 'lowest' gap #3628
  • Allow singlet/triplet excitation types #2290
  • Allow bandstructure plotting with custom k-path #3293
  • Generate PySCF inputs without a template #3550
  • Add punch extension for GAMESS analysis #3433
  • Read pseduopotentials in numhf format (Eric Shirley's numerical HF code) #3097
  • Add L2 generation functionality #3079
  • Support QMCPACK batched drivers #2901
  • Make qdens test more informative #3593
  • Resource lock Nexus examples for reliable parallel execution #3585
  • Support running tests without mpirun available #3584
  • Small fix for custom band plotting #3566
  • Improve error handling for bad Jastrow requests #3554
  • Fix sizing problem in some single atom workflows #3553
  • Fix syntax warnings #3497
  • Fix convert4qmc usage #3495
  • Verify cif2cell is available before running ntest_nexus_structure #3511
  • Fix to add_L2 function in #3386
  • Expand eshdf features #3334
  • Add delay_rank input #3218
  • Add max_seconds input #3159
  • Add Tref (initial tilematrix) argument to optimal_tilematrix #3141
  • Use OS environment by default #3108


QMCPACK Release v3.11.0 - 2021-04-09

Download QMCPACK v3.11.0


This release includes a large number of refinements to QMCPACK and the supporting ecosystem. These include support for the latest version of Quantum ESPRESSO, new capabilities in AFQMC, space-warp transformation for forces, numerous bug fixes, user-requested feature improvements, and further upgrades to the test system.

  • Quantum ESPRESSO (QE) v6.7 support. #2927.
  • Detect and automatically use patched version of QE found on the PATH. #2974.
  • Support for global max_seconds and STOP file to cleanly halt QMCPACK during a run. #3028.
  • Freezing of two-body Jastrow parameters in optimization works. #2814.
  • Multideterminant code now works with only alpha determinants (no down electrons). #2698.
  • High l-momentum channels as local channels in ECPs work. #2920.
  • Space Warp Transformation for ZVZB Forces. #2828.
  • Important bug fixes in legacy CUDA implementation causing incorrect energies. #2883.
  • Implemented DLA in legacy CUDA. #2887.
  • Updates to support CUDA 11.2.1 e.g. #2950.
  • AFQMC supports energy estimator with different Hamiltonian (from propagation). #2795.
  • Trial wavefunction optimization with spin-orbit supported. #3034.
  • ppconvert executable automatically built when configured. #2904.
  • Tests added for ppconvert. #2929.
  • Fixed SIMD alignment for AVX512 on some systems. #2981.
  • Improved wavefunction restart logic in AFQMC. #2942.
  • Spin-density supported in batched code. #2840.
  • Reduced I/O operations during cmake. #2808.
  • Improved detection of unsupported-by-Intel combinations of Intel compilers and libstdc++. #2794.
  • Initial support for Andes at OLCF. #3073.
  • Deterministic tests expanded in scope and made reliable for more build types and compilers.
  • Various minor bug fixes and feature improvements based on user requests for both real-space and AFQMC.
  • Improved error handling throughout.
  • 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.


  • Support AMD nodes on Cori. #2809.
  • Interface for RMG code. #2932.
  • Added h-channel to list of possible local channels in pseudopotential. #2915.
  • Allow non spin-specific occupations in case of noncollinear. #2957.
  • More robust handling of QE output when printed eigenvalues touch. #3042.
  • Fixed type check for reblock_factors in qmc-fit. #2830.
  • Fixed a Jastrow read error/warning, add several QE inputs. #2819.
  • Fixed tests on Summit. #2983.
  • Fixed module overwrite bug in qmca. #2802.