Quantum Monte Carlo

Quantum Monte Carlo is a large class of computer algorithms that simulate quantum systems with the idea of solving the many-body problem. They use, in one way or another, the Monte Carlo method to handle the many dimensional integrals that arise. Quantum Monte Carlo allows a direct representation of many-body effects in the wavefunction, at the cost of statistical uncertainty that can be reduced with more simulation time. For bosons, there exist numerically exact and polynomial-scaling algorithms. For fermions, there exist very good approximations and numerically exact exponentially scaling quantum Monte Carlo algorithms, but none that are both.

Background
In principle, any physical system can be described by the many-body Schrödinger equation, as long as the constituent particles are not moving 'too' fast; that is, they are not moving near the speed of light. This includes the electrons in almost every material in the world, so if we could solve the Schrödinger equation, we could predict the behavior of any electronic system, which has important applications in fields from computers to biology. This also includes the nuclei in Bose-Einstein condensates and superfluids like liquid helium. The difficulty is that the Schrödinger equation involves a function of three times the number of particles (in 3 dimensions), and is difficult (and impossible in the case of fermions) to solve in a reasonable amount of time. Traditionally, theorists have approximated the many-body wave function as an antisymmetric function of one-body orbitals: $$ \Psi(x_1,x_2,\dots,x_n)=f(\Phi_1(x_1),\Phi_2(x_1),\dots, \Phi_n(x_1);\Phi_1(x_2) \Phi_2(x_2),\dots) $$, for an example, see Hartree-Fock theory. This kind of formulation either limits the possible wave functions, as in the case of Hartree-Fock, or converges very slowly, as in configuration interaction. One of the reasons for the difficulty with a Hartree-Fock ansatz is that it is very difficult to model the electronic and nuclear cusps in the wavefunction. As two particles approach each other, the wavefunction has exactly known derivatives.

Quantum Monte Carlo is a way around these problems because it allows us to model a many-body wave function of our choice directly. Specifically, we can use a Hartree-Fock wavefunction as our starting point, but then multiply it by any symmetric function, of which Jastrow functions are typical, designed to enforce the cusp conditions. Most methods aim at computing the ground state wave function of the system, with the exception of Path integral Monte Carlo and finite-temperature auxiliary field Monte Carlo, which calculate the density matrix.

There are several quantum Monte Carlo flavors, each of which uses Monte Carlo in different ways to solve the many-body problem:

Flavors of quantum Monte Carlo

 * Variational Monte Carlo : A good place to start; it is commonly used in many sorts of quantum problems.
 * Diffusion Monte Carlo : The most common high-accuracy method for electrons (that is, chemical problems), since it comes quite close to the exact ground state energy fairly efficiently. Also used for simulating the quantum behavior of atoms, etc.
 * Path integral Monte Carlo : Finite temperature technique mostly applied to bosons where temperature is very important, especially superfluid helium.
 * Auxiliary field Monte Carlo : Usually applied to lattice problems, although there has been recent work on applying it to electrons in chemical systems.
 * Reptation Monte Carlo : Recent zero-temperature method related to Path integral Monte Carlo, with applications similar to Diffusion Monte Carlo, but with some different tradeoffs.
 * Gaussian quantum Monte Carlo

Lecture notes

 * Joint DEMOCRITOS-ICTP School on Continuum Quantum Monte Carlo Methods
 * FreeScience Library -> Quantum Monte Carlo
 * UIUC 2007 Summer School on Computational Materials Science: Quantum Monte Carlo from Minerals and Materials to Molecules

Computer programs

 * CASINO
 * CHAMP
 * QMcBeaver
 * QMCMOL
 * QMC@HOME
 * QWalk
 * ZORI
 * TurboPair

Quantistica Monte Carlo