What packages exist that can help someone, especially a new masters/PhD student get started with QMC on spin or Hubbard systems?

As an example, for writing a stochastic series expansion QMC program for the 2D Heisenberg antiferromagnet.

  • 1
    $\begingroup$ I guess HANDE, NECI, and SQMC were all written for electronic structure and Hubbard-type model Hamiltonians but could easily be modified to work on spin systems too. $\endgroup$ – Nike Dattani Jul 27 '20 at 4:44
  • $\begingroup$ That counts! Anything that works on a hubbard model should work on a Heisenberg model. $\endgroup$ – taciteloquence Jul 27 '20 at 8:41
  • $\begingroup$ Okay, all three of the ones I mentioned work for the Hubbard model, so I'll write an answer when I can. $\endgroup$ – Nike Dattani Jul 28 '20 at 21:11
  • 1
    $\begingroup$ I'm open to either (1) a "full-service" package that allows you to input a Hamiltonian, choose a method and get results out or (2) a more DIY library that provides methods and classes you can call to simplify writing your QMC code, like e.g. including a class for operator string, a method for diagonal updates, etc. $\endgroup$ – taciteloquence Jul 30 '20 at 3:14
  • 1
    $\begingroup$ @stafusa After finally reading all the above comments (sorry I was on smartphone this morning, not desktop), I noticed that I'd actually said I could answer this question earlier, especially after confirmation from the OP. I can't remember why it was closed, but "needs details for clarity" didn't seem to make sense, especially after the 3rd comment above indicates that the question was very answerable as is. I've flagged for it to get re-opened. If you want to add ALF as an answer (just like I added NECI below), then that would be excellent! $\endgroup$ – Nike Dattani Jun 18 at 18:11

NECI (N-electron configuration interaction solver)

This is a free and open-source software written mainly in FORTRAN but with components in C/C++ and Python. It has been shown on a FeMoco calculation to have a parallelization efficiency of 99.7% up to at least 24800 cores. It does FCIQMC and has been used on Hubbard models in several papers, perhaps the most recent being this 2019 paper where they treated a Hubbard model with up to 50 sites, and compared the FCIQMC result with AF-QMC. This PDF presentation also indicates that calculations have been done on the 3-band Hubbard model.


  • Free, open-source, available on GitHub.
  • Very well tested on 24000+ cores (high parallel efficiency)
  • Fairly big list of very active developers
  • Relatively easy to contribute/add your own features or make tweaks (I speak from experience)
  • Has a lot of state-of-the-art FCIQMC methods incorporated
  • Works on a rather large range of problems, not just Hubbard Hamiltonians but also molecular Hamiltonians and can easily be adapted to work on other Hamiltonians
  • There's a NECI interface with OpenMOLCAS and a NECI interface with MOLPRO

ALF (Algorithms for Lattice Fermions)

This is an auxiliary-field quantum Monte Carlo package. It's free, open-source, actively maintained (current version: 2.0, with 2.1 on the works — news are posted on its website) and has been cited in dozens of publications since its release in 2017.

The package is very flexible, as it can simulate any Hamiltonian that can be written in terms of sums of i) single-body operators, ii) squares of single-body operators, and iii) single-body operators coupled to an Ising field with given dynamics. Besides, you can also specify a Bravais lattice and observables, in addition to the package's predefined ones.

For newcomers, the extensive documentation should be of help, as well as its tutorial, which aims to bring the absolute beginner to the point of coding their own models and observables — of course a steep learning curve, but the collaboration is glad to help. The introductory part of the tutorial is based on a collection of Jupyter notebooks in Python, which relies on pyALF, a Python interface to the Fortran core of ALF. Also available are the slides and recorded talks from the ALF 2020 User Workshop.

The code is also very efficient: offering parallelization via MPI and OpenMP, its single-core performance is near-optimal, and its restart facilities can be very useful in supercomputer facilities.


  • Free and open-source code (GitLab)
  • High performance (MPI & OpenMP implementation, with near-optimal scaling)
  • General Hamiltonian, lattice and observables
  • Ease of use (docs, tutorial and pyALF)
  • Advanced features, including:
    parallel tempering, ground state projective QMC, global Monte Carlo updates, continuous fields, Langevin dynamics updates, stochastic Maximum Entropy method, symmetric Trotter decomposition, Dimer-Dimer correlations, Cotunneling for Kondo models, and Rényi Entropy.
  • Support (contact via email, chat or call)

Disclaimer: I've contributed to the package.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.