Diffusion Monte Carlo (DMC) or diffusion quantum Monte Carlo[1] is a quantum Monte Carlo method that uses a Green's function to calculate low-lying energies of a quantum many-body Hamiltonian.
Diffusion Monte Carlo has the potential to be numerically exact, meaning that it can find the exact ground state energy for any quantum system within a given error, but approximations must often be made and their impact must be assessed in particular cases.
When actually attempting the calculation, one finds that for bosons, the algorithm scales as a polynomial with the system size, but for fermions, DMC scales exponentially with the system size.
This makes exact large-scale DMC simulations for fermions impossible; however, DMC employing a clever approximation known as the fixed-node approximation can still yield very accurate results.
[2] To motivate the algorithm, let's look at the Schrödinger equation for a particle in some potential in one dimension: We can condense the notation a bit by writing it in terms of an operator equation, with where
These functions are called stationary states, because the time derivative at any point
Since the overall phase of a wave function is not measurable, the system does not change in time.
We are usually interested in the wave function with the lowest energy eigenvalue, the ground state.
We're going to write a slightly different version of the Schrödinger equation that will have the same energy eigenvalue, but, instead of being oscillatory, it will be convergent.
Here it is: We've removed the imaginary number from the time derivative and added in a constant offset of
We don't actually know the ground state energy, but there will be a way to determine it self-consistently which we'll introduce later.
The first thing to notice is that if we happen to guess the ground state wave function, then
is negative, and will eventually go to zero, leaving us with only the ground state.
We watch the amplitude of the wave function as we propagate through time.
If it increases, then decrease the estimation of the offset energy.
If the amplitude decreases, then increase the estimate of the offset energy.
appropriately, we find the ground state of any given Hamiltonian.
In classical mechanics, we could simulate the motion of the particles by setting
, if we assume that the force is constant over the time span of
For the imaginary time Schrödinger equation, instead, we propagate forward in time using a convolution integral with a special function called a Green's function.
Similarly to classical mechanics, we can only propagate for small slices of time; otherwise the Green's function is inaccurate.