Diffusion Monte Carlo (DMC) or diffusion quantum Monte Carlo is a quantum Monte Carlo method that uses a Green's function to calculate low-lying energies of a quantum many-body Hamiltonian.
Introduction and motivation of the algorithm
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.
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 is the Hamiltonian operator. So then we have
where we have to keep in mind that is an operator, not a simple number or function. There are special functions, called eigenfunctions, for which , where is a number. These functions are special because no matter where we evaluate the action of the operator on the wave function, we always get the same number . These functions are called stationary states, because the time derivative at any point is always the same, so the amplitude of the wave function never changes in time. 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 , which is the ground state energy. 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. Our modified equation (some people call it the imaginary-time Schrödinger equation) has some nice properties. The first thing to notice is that if we happen to guess the ground state wave function, then and the time derivative is zero. Now suppose that we start with another wave function(), which is not the ground state but is not orthogonal to it. Then we can write it as a linear sum of eigenfunctions:
Since this is a linear differential equation, we can look at the action of each part separately. We already determined that is stationary. Suppose we take . Since is the lowest-energy eigenfunction, the associate eigenvalue of satisfies the property . Thus the time derivative of is negative, and will eventually go to zero, leaving us with only the ground state. This observation also gives us a way to determine . 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.
Stochastic implementation and the Green's function
Now we have an equation that, as we propagate it forward in time and adjust appropriately, we find the ground state of any given Hamiltonian. This is still a harder problem than classical mechanics, though, because instead of propagating single positions of particles, we must propagate entire functions. 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. So we get . Similarly to classical mechanics, we can only propagate for small slices of time; otherwise the Green's function is inaccurate. As the number of particles increases, the dimensionality of the integral increases as well, since we have to integrate over all coordinates of all particles. We can do these integrals by Monte Carlo integration.
References
- Reynolds, Peter J.; Tobochnik, Jan; Gould, Harvey (1990). "Diffusion Quantum Monte Carlo". Computers in Physics. 4 (6): 662–668. Bibcode:1990ComPh...4..662R. doi:10.1063/1.4822960.
- Anderson, James B. (1976). "Quantum chemistry by random walk. H 2P, H+3 D3h 1Aʹ1, H2 3Σ+u, H4 1Σ+g, Be 1S". The Journal of Chemical Physics. 65 (10): 4121. Bibcode:1976JChPh..65.4121A. doi:10.1063/1.432868.
- Grimm, R.C; Storer, R.G (1971). "Monte-Carlo solution of Schrödinger's equation". Journal of Computational Physics. 7 (1): 134–156. Bibcode:1971JCoPh...7..134G. doi:10.1016/0021-9991(71)90054-4.
- Anderson, James B. (1975). "A random-walk simulation of the Schrödinger equation: H+3". The Journal of Chemical Physics. 63 (4): 1499. Bibcode:1975JChPh..63.1499A. doi:10.1063/1.431514.
- B.L. Hammond; W.A Lester, Jr; P.J. Reynolds (1994). Monte Carlo Methods in Ab Initio Quantum Chemistry. World Scientific Lecture and Course Notes in Chemistry. Vol. 1. World Scientific. doi:10.1142/1170. ISBN 978-981-4317-24-5.