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.
Matter Modeling Stack Exchange is a question and answer site for materials modelers and data scientists. It only takes a minute to sign up.
Sign up to join this communityWhat 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.
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.
Advantages:
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.
Advantages:
Disclaimer: I've contributed to the package.