Releases

For questions please use the QMCPACK Google Group.

A list of releases made from GitHub can be browsed at https://github.com/QMCPACK/qmcpack/releases. Source code, including for the current development version, is available at https://github.com/QMCPACK/qmcpack

The latest nightly test status can be browsed at http://cdash.qmcpack.org

QMCPACK Release v4.2.0 - 2026-02-12

Download QMCPACK v4.2.0

Notes

This release is recommended for all users and includes several new features, improved GPU support, a broad range of other useful improvements, and compatibility and bug fixes. NEXUS also receives significant updates including a packaging update to make it function as a conventional Python package (requiring an update PYTHONPATH).

  • Upcoming breaking change: Classic/non-batched drivers will be removed in a future release. See https://qmcpack.readthedocs.io/en/develop/performance_portable.html for instructions on using the batched/performance portable drivers. New projects should only use the batched drivers.
  • Added new variable period for estimator measurements feature, input parameter estimator_period, and Nexus support #5574, #5577. Substantial speed and efficiency improvements are possible for properties with a long autocorrelation period.
  • GPU offload of SOC calculations completed #5547
  • Batched implementation of G of r ( g(r), PairCorrEstimator ) #5600
  • Batched structure factor estimator #5490, #5540
  • Orbital rotation support for fully complex wavefunctions on GPUs #5549
  • Support for ROCm 7.0+ #5548
  • Container with "complete" QMCPACK development version including Quantum ESPRESSO and PySCF #5681, #5782. This will be expanded and documented in future versions.
  • bandinfo.dat files are now consistently named by their SPOset and not einspline #5785
  • Bug fix to three-body Jastrow GPU implementation (caused rare GPU crash) #5546
  • Docs for QP2 plugin installation requirement #5667
  • Docs for timers #5486
  • Docs for qmc-get-supercell tool. #5611
  • Added 2dxy option to qmc-get-supercell tool #5607
  • Add symmetry support for PySCF multiconfiguration methods to savetoqmcpack #5564
  • Initial python coverage reporting #5751
  • Reduced use of python pandas in tests #5732
  • Alignment fixes for CUDA complex host scalars #5760
  • Improved Aurora/Intel GPU LCAO performance #5533
  • Added benchmark tests for batched BLAS routines #5591
  • Added SYCL benchmark for SolverInverters #5493
  • Expanded LMY engine configuration messages #5488
  • Improvements to build process, testing, and fixing of minor bugs.

Known issues:

  • Multireference/multideterminant wavefunctions from PySCF and GAMESS are reported as not correctly converted #5563, #5789. Due to the widespread use of multideterminants in QMC, where no issues have been reported, we currently believe the problems to be fully related to the export and conversion of multideterminant wavefunctions from these codes.
  • Backflow wavefunctions are not working for ab initio (vs model) Hamiltonians in the batched drivers #5459
  • The energy density estimator is incorrect #5468
  • AFQMC utilities and converters are not compatible with modern PySCF #4653

NEXUS [2.2.0]

  • Refactored so that it can be used as a conventional Python package. PYTHONPATH should now point to the topmost nexus directory, not nexus/lib. #5700
  • New releases will be consistently versioned with the major, minor and patch number updated following semantic versioning.
  • Important fix for XML text parsing for non-uniform lists of numeric types. A list such as [0 0 0.1] could previously be misread #5756
  • New spin resolved lineplot capability in qdens #5662
  • New capability to modify existing QMCPACK input files #5631
  • Support for custom commands/scripts as simulation objects #5613
  • Support opt.vp.h5 files and stochastic reconfiguration input generation #5580
  • Support for override_variational_parameters in QMCPACK dependencies #5713
  • Added Leonardo (CINECA) machine #5759
  • Added Frontier (ORNL) support #5519
  • Added Aurora (ANL) support #5517
  • Updated and revised definitions for existing machines, e.g. #5661
  • Improve Structure.center_molecule() to ensure equal vacuum padding on all sides #5617
  • Docs for controlling bundled twist averaged calculations #5722
  • Docs for Quantum ESPRESSO DFT+U format #5710
  • Docs for code style #5679
  • Docs for job bundling using nexus. #5670
  • Updated GCTA example to QE 7.1 DFT+U format #5691
  • Fixed python syntax format warnings e.g. #5795, #5779
  • Fixed Structure.recenter_k() and Structure.recenter() #5664
  • Matplot compatibility improved #5622
  • Updated Numpy array shaping to comply with deprecation in Numpy 2.5 #5757
  • Removed Structure.magnetize() #5766

QMCPACK Release v4.1.0 - 2025-04-30

Download QMCPACK v4.1.0

Notes

This release is recommended for all users and includes improved support for calculating forces, better GPU support, updated build recipes and documentation for many machines, and a broad range of other useful improvements.

  • Fast forces with multideterminant wavefunctions #5398
  • Significant improvement in AMD GPU performance with better memory handling #5339. Note also updated Frontier instructions #5399. Use of LIBOMPTARGET_AMDGPU_MAX_ASYNC_COPY_BYTES is currently recommended.
  • Ongoing performance optimization of LCAO / Gaussian basis set GPU evaluation e.g. #5357, #5342
  • Updated build recipes for numerous machines, including NERSC Perlmutter #5464 , ALCF Aurora #5465, and OLCF Frontier #5456.
  • HPCToolkit start/stop API support. #5361
  • VMC runs advise how to achieve load balance if the run is unbalanced #5412
  • History method removed from RotatedSPOs for simplicity and fewer code paths #5414
  • 3-body Jastrow ionic derivatives are now analytic, not based on finite differences #5380
  • PySCF LCAO to spline converter now compatible with NumPy v2 #5364
  • Updated PR and contributor guidance e.g. #5432. Please read https://qmcpack.readthedocs.io/en/develop/developing.html#github-pull-request-guidance
  • The wiki and other external documentation is being coallesced in the manual. e.g. Our release process is now in the manual #5443.
  • Ongoing refactoring to eventually enable unified real/complex builds and to reduce code duplication.
  • Significantly improved reliability of statistical tests. Please report test failures.
  • Numerous minor bug fixes.

Known issues:

  • Backflow wavefunctions are not working for ab initio (vs model) Hamiltonians in the batched drivers #5459
  • The energy density estimator is incorrect #5468
  • AFQMC utilities and converters are not compatible with modern PySCF #4653

NEXUS

  • Nexus: Documentation for command line options such as --status_only and --progress_tty #5393, see https://nexus-workflows.readthedocs.io/en/latest/user-scripts.html#nexus-command-line-options
  • Nexus: Support for stochastic reconfiguration and orbital rotation / orbital optimization #5386
  • Nexus: Grand-canonical twist averaging (GCTA) documentation and examples #5316
  • Nexus: Support for magnetization density estimator #5346
  • Nexus: Support for several new CPU clusters, e.g. BES-MS machine #5416, ORNL Baseline #5371
  • Nexus: Support orbital images for plotting/debugging of orbitals #5448
  • Nexus: Support QE HDF5 charge density results #5427
  • Nexus: Job options are now supported, e.g. to set custom mpirun options for thread binding #5255, #5413
  • Nexus: Update force keyword handling #5405
  • Nexus: Compatibility with spglib >=v2.5.0 #5429

QMCPACK Release v4.0.0 - 2025-02-05

Notes

This major release includes an important change in the default driver behavior, significantly expanded GPU support including fully GPU accelerated LCAO/Gaussian-basis set wavefunction support for both molecular and solid-state systems, improved GPU configuration options, a new fast spin-orbit implementation based on exact spin integration, a stochastic reconfiguration-based wavefunction optimizer for large parameter sets, self-healing wavefunction optimization, expanded implementation of the determinant localization (DLA) approach, and a new walker logging capability among many others. High-performance CPU execution is fully supported on laptops through to the largest CPU clusters. High-performance GPU execution on NVIDIA, Intel, and AMD GPUs is also fully supported on single GPUs up to the largest supercomputers. All users and developers are encouraged to check the extensive list of updates. In most cases small updates to old input files will be required to run with v4.0.0, which now also checks inputs more strictly for validity. NEXUS workflow scripts will need the least amount of changes. See the sections "QMCPACK's Performance Portable Implementation" and "Updating input files for batched drivers" in the manual, e.g., https://qmcpack.readthedocs.io/en/develop/performance_portable.html

  • IMPORTANT: the default drivers are now the batched versions in both QMCPACK and NEXUS. As detailed in the user guide, small updates may be needed to inputs for the new batched versions. In addition to performance portable CPU and GPU support, the new drivers check for unknown or inconsistent input settings. The batched implementation is sufficient to cover at least 95% of prior QMCPACK publications. Less utilized features may not have been ported. Additional porting and optimizations will be guided by user feedback. If you run into difficulties, please request support so that documentation can be updated to provide more guidance. To recover legacy v3 behavior in QMCPACK, set the driver_version parameter to legacy https://qmcpack.readthedocs.io/en/develop/input_overview.html#driver-version-parameter . For NEXUS put driver = 'legacy' within generate_qmcpack sections.
  • A single QMC_GPU option replaces the CMake options ENABLE_CUDA, ENABLE_ROCM, QMC_CUDA2HIP, ENABLE_SYCL and ENABLE_OFFLOAD. See details of this option explained in the user guide. e.g. Set QMC_GPU to "openmp;cuda" for NVIDIA, "openmp;hip" for AMD, and "openmp;sycl" for Intel GPUs. When not building from scratch, their cached entries in CMakeCache.txt needs to be removed. #5267
  • Adopted Code of Conduct #4922
  • GPU accelerated LCAO calculations with Gaussian basis sets for isolated molecules through periodic solids. E.g. via #5021, #4808
  • GPU acceleration of real-to-real spline wavefunctions (SplineR2R) #5198
  • Updated build recipes for ALCF Aurora and Polaris #5279, OLCF Frontier #5284, NERSC Perlmutter #5281.
  • Fast implementation of spin orbit by exact spin integration #5119
  • Simple implementation of Stochastic Reconfiguration optimization scheme #5017
  • Improved regularization in Stochastic Reconfiguration optimization and added documentation #5157
  • Implement determinant locality approximation (DLA) with T-move (TM) #5103
  • Converter for determinants coming from a PySCF CAS-CI or CAS-SCF calculations #5005
  • Fast, efficient implementation of SOC #4933
  • New Self-Healing Overlap Estimator #4991
  • New walker logging capability - write per walker data during QMC #5019
  • Walkers have unique walker_ids to enable complete walker history analysis #5089, #5063
  • 1-body reduced density matrix spinor support #4807
  • Support for backflow optimization has been removed as part of refactoring and cleaning the codebase. QMC runs using backflow wavefunctions are still supported. This feature is expected to eventually be reimplemented. Users needing backflow optimization can use previously released versions of QMCPACK or help work towards its reimplementation in the modern code. #4688
  • Samples input tag supported in batched drivers #4224
  • Update Eref during warm up in the batched driver #4906
  • Expanded SYCL implementation, e.g. batched determinant support #5043
  • All examples updated to specify driver_version where needed #5271
  • Specify recompute period in performance tests so mixed and full precision runs are directly comparable #5248
  • Added AMD rocTX support #5199
  • Allow exact spin integration for SOECP alongside wave function optimization #5173
  • Print block and warmup timings #5058
  • Print more timing information during optimization #4960
  • Allow setting the number of grid points in the short range Ewald summation of Coulomb interaction #4928
  • For hybrid representation spinor wavefunctions, skip incorrect norm check #5287
  • Increased input consistency checking #5209
  • Checks for NaNs during trial wavefunction ratio and gradient handling #4804
  • Additional zero protection in multideterminant runs. #4775
  • Prevent SOECP exact spin evaluation with multideterminant wave functions due to incomplete code paths #5111
  • Improved optimizer robustness - accept more eigenvalues to fix occasional optimizer failures #4917
  • Documentation on OneShiftOnly updated #5155
  • Documentation and test for eigensolver option (used in wavefunction optimization). #5006
  • Documentation explaining how to choose MPI ranks #4931
  • Documentation on composing orbital rotations #4755
  • Documentation on orbital rotation #4729
  • Documentation for source code/developers via new doxygen cmake target (use 'make doxygen') #4700
  • Build script for ORNL Baseline #5004
  • Build script for NREL Kestrel #5095
  • Build script for Improv at ANL LCRC #4994
  • convert4qmc compatible with DIRAC versions > 22 #5196
  • convertpw4qmcpack prints a completion message #5246
  • qdens: Increased precision in XSF format output #5233
  • qmc-fit: help keys are auto-populated correctly #5124
  • Fixed AFQMC compilation with CUDA 12.x #4776
  • Bug fix: Full precision batched drivers recompute Slater matrices every 10 blocks vs never #5249
  • Bug fix: Proper workspace array determination for LAPACK::geev() #5194
  • Bug fix: Fix TMDLA in batched DMC driver runs #5208
  • Bug fix: Fix DLA+TMv1 #5113
  • Bug fix: spinors with orbital optimization #4923
  • Bug fix: complex hybrid representation #4939
  • Bug fix: In TrialWaveFunction mw_evalGrad for spinor wave functions #4911
  • Bug fix: T-move in batched DMC driver #4902
  • Bug fix: Fix indexing inside SplineX2X when outputting few orbitals than it holds #4871
  • Bug fix: Backend Changes to correct PBC ACForces #4855
  • Bug fix: Fix rare bounds error in spline Jastrow #4828
  • Bug fix: Fix incorrect Expressions for Hamiltonian and Overlap Matrices with Complex Wavefunctions #4821
  • Bug fix: Fix wrong PhaseDiff and protect NaN for DMCBatched #4763
  • Many smaller fixes including AFQMC maintenance, added checks, tests and cleanup.

NEXUS

  • Nexus: NumPy 2 support #5215
  • Nexus: Extensive examples for specifying estimators #5214
  • Nexus: Implementation of Grand Canonical Twist Averaging (GCTA) with (spin)-adapted Fermi levels #5029
  • Nexus: Support for GCTA with SOC calculations #5098
  • Nexus: Support QE 7.2 DFT+U+V Hubbard format with nearest neighbors #5230
  • Nexus: Capability to run self-consistent DFT+U+V in QE > 7.1 #4528
  • Nexus: Support for supercell twists in PySCF workflows #5073
  • Nexus: Spinor workflows capability #4787
  • Nexus: Handle J3 terms in spin-orbit calculations #5184
  • Nexus: Added dependency versions requirements files #5256
  • Nexus: Support samples tag with batched drivers #5134
  • Nexus: Print warning for the Nexus user before Quantum ESPRESSO wavefunction rsync (can be slow) #4984
  • Nexus: Implement alternative to deprecated load_source #4964
  • Nexus: Updates for QMCPACK batched input generation #4867
  • Nexus: All inputs specify drivers where needed #5278
  • Nexus: Set correct cusp in SOC Jastrow #4868
  • Nexus: Support for Inti at ORNL #5102
  • Nexus: Support LLNL machines Lassen and Ruby #5097
  • Nexus: Support for NREL Kestrel #5096
  • Nexus: Support for ANL LCRC machine Improv #4983
  • Nexus: Support for SNL machines update #4916
  • Nexus: Updated PBS job states for ALCF Polaris #4987
  • Nexus: Bug fix for SOC J3 terms #5200
  • Nexus: Bug fix for 1RDM input generation #5067

QMCPACK Release v3.17.1 - 2023-08-25

Notes

This minor release is recommended for all users and includes a couple of build fixes and a NEXUS improvement.

  • Improved HDF5 detection. Fixes cases where HDF5 was not identified by CMake, including on FreeBSD (thanks @yurivict for the report). #4708
  • Fix for building with BUILD_UNIT_TESTS=OFF. #4709
  • Add timer for orbital rotations. #4706

NEXUS

  • NEXUS: Support for spinor inputs. #4707

QMCPACK Release v3.17.0 - 2023-08-18

Notes

This is a recommended release for all users. Thanks to everyone who contributed directly, reported an issue, or suggested an improvement. There are many quality of life improvements, bug fixes throughout the application, and updates to the associated testing. As previously announced, the legacy CUDA support (QMC_CUDA=1) is removed in this version. For GPU support, users should transition to the offload code which is more capable and fully usable in production on NVIDIA GPUs.

This version is intended for long-term support of v3 of QMCPACK. Development effort is now focused towards v4. Contributions of tests, fixes, and features from users and developers are still welcome to v3 for a potential future release. However, these will not be ported towards v4 by the core QMCPACK developers without prior arrangement. Please discuss options with QMCPACK developers.

  • Simplified checkpointing and enabled it in the batched drivers. Users now only need specify checkpoint={-1,0,N} to checkpoint between blocks. #4646
  • NERSC Perlmutter build recipe. #4698
  • qmc-fit: Now supports parameter fitting with jackknife for e.g. DFT+U, EXX scans #4475 and for equation of states and morse fits #4518
  • Improved error checking including NaN checks to protect against potentially unreliable compilers and libraries, #4697, and checks on GPU matrix inversion #4693
  • Significant advances in orbital optimization capability, focusing on LCAO wavefunctions. Development is ongoing for multideterminant support and for spline wavefunctions. See e.g. the Be atom orbital optimization test #4626#4619, reading and writing of orbital rotation parameters #4580, support for disabled/frozen parameters #4581.
  • Magnetization Density Estimator for non-collinear wavefunctions #4531
  • Pathak-Wagner regularizer for forces #4477
  • The legacy CUDA implementation, the version built with QMC_CUDA=1, has been removed from the codebase, #4431#4632,#4499#4442.
  • For increased performance with current AMD GPU support, new QMC_DISABLE_HIP_HOST_REGISTER option is enabled by default for ROCm/HIP builds. #4674
  • Bugfix: J1Spin indexing was wrong #4612
  • Bugfix: 1RDM estimator data written to stat.h5 was incorrect #4568
  • Introduced ENABLE_PPCONVERT option and skip ppconvert compilation when cross compiling. #4601
  • Faster builds compared to v3.16.0 due to code refactoring #4682
  • Many refinements throughout the codebase, cleanup, improved testing.

NEXUS

  • Nexus: Equilibration detection algorithm is now deterministic #4557
  • Nexus: Support for Kagayaki cluster at JAIST #4598
  • Nexus: GPU support fix for NERSC/Perlmutter #4699
  • Nexus: Use simplices in convex_hull to support newer scipy versions #4671
  • Nexus: Add pdos flag for Projwfc #4655
  • Nexus: Adding crowds_serialize_walkers tag to dmc input list #4651
  • Nexus: Qdens handles batched driver input/output #4645
  • Nexus: Fix namelist read for Projwfc input #4644

Known problems

  • When offload builds are compiled with CUDA toolkit versions above 11.2 using LLVM, multideterminant tests and functionality will fail, seemingly due to an issue with the toolkit. This is discussed in llvm/llvm-project#54633 . All other functionality appears to work as expected. As a workaround, the CUDA toolkit 11.2 can be used. The actual NVIDIA drivers can be more recent.