1
0
mirror of https://github.com/TREX-CoE/qmc-lttc.git synced 2024-08-15 17:58:42 +02:00

Rewrite DMC

This commit is contained in:
Anthony Scemama 2021-02-02 22:47:44 +01:00
parent d3d1e84680
commit f40a737b96

66
QMC.org
View File

@ -2153,6 +2153,15 @@ gfortran hydrogen.f90 qmc_stats.f90 vmc_metropolis.f90 -o vmc_metropolis
* Diffusion Monte Carlo :solution: * Diffusion Monte Carlo :solution:
As we have seen, Variational Monte Carlo is a powerful method to
compute integrals in large dimensions. It is often used in cases
where the expression of the wave function is such that the integrals
can't be evaluated (multi-centered Slater-type orbitals, correlation
factors, etc).
Diffusion Monte Carlo is different. It goes beyond the computation
of the integrals associated with an input wave function, and aims at
finding a near-exact numerical solution to the Schrödinger equation.
** Schrödinger equation in imaginary time ** Schrödinger equation in imaginary time
@ -2198,51 +2207,36 @@ gfortran hydrogen.f90 qmc_stats.f90 vmc_metropolis.f90 -o vmc_metropolis
imaginary time will converge to the exact ground state of the imaginary time will converge to the exact ground state of the
system. system.
** Diffusion and branching ** Relation to diffusion
The imaginary-time Schrödinger equation can be explicitly written in terms of the kinetic and The [[https://en.wikipedia.org/wiki/Diffusion_equation][diffusion equation]] of particles is given by
potential energies as
\[ \[
\frac{\partial \psi(\mathbf{r}, \tau)}{\partial \tau} = \left(\frac{1}{2}\Delta - [V(\mathbf{r}) -E_{\rm ref}]\right) \psi(\mathbf{r}, \tau)\,. \frac{\partial \psi(\mathbf{r},t)}{\partial t} = D\, \Delta \psi(\mathbf{r},t)
\] \]
We can simulate this differential equation as a diffusion-branching process. where $D$ is the diffusion coefficient. When the imaginary-time
Schrödinger equation is written in terms of the kinetic energy and
potential,
To see this, recall that the [[https://en.wikipedia.org/wiki/Diffusion_equation][diffusion equation]] of particles is given by
\[ \[
\frac{\partial \psi(\mathbf{r},t)}{\partial t} = D\, \Delta \psi(\mathbf{r},t). \frac{\partial \psi(\mathbf{r}, \tau)}{\partial \tau} =
\left(\frac{1}{2}\Delta - [V(\mathbf{r}) -E_{\rm ref}]\right) \psi(\mathbf{r}, \tau)\,,
\] \]
Furthermore, the [[https://en.wikipedia.org/wiki/Reaction_rate][rate of reaction]] $v$ is the speed at which a chemical reaction it can be identified as the combination of:
takes place. In a solution, the rate is given as a function of the - a diffusion equation (Laplacian)
concentration $[A]$ by - an equation whose solution is an exponential (potential)
\[
v = \frac{d[A]}{dt},
\]
where the concentration $[A]$ is proportional to the number of particles.
These two equations allow us to interpret the Schrödinger equation
in imaginary time as the combination of:
- a diffusion equation with a diffusion coefficient $D=1/2$ for the
kinetic energy, and
- a rate equation for the potential.
The diffusion equation can be simulated by a Brownian motion: The diffusion equation can be simulated by a Brownian motion:
\[ \mathbf{r}_{n+1} = \mathbf{r}_{n} + \sqrt{\delta t}\, \chi \] \[ \mathbf{r}_{n+1} = \mathbf{r}_{n} + \sqrt{\delta t}\, \chi \]
where $\chi$ is a Gaussian random variable, and the rate equation where $\chi$ is a Gaussian random variable, and the potential term
can be simulated by creating or destroying particles over time (a can be simulated by creating or destroying particles over time (a
so-called branching process). so-called branching process) or by simply considering it as a
cumulative multiplicative weight along the diffusion trajectory.
In /Diffusion Monte Carlo/ (DMC), one onbtains the ground state of a
system by simulating the Schrödinger equation in imaginary time via
the combination of a diffusion process and a branching process.
We note that the ground-state wave function of a Fermionic system is We note that the ground-state wave function of a Fermionic system is
antisymmetric and changes sign. Therefore, its interpretation as a probability antisymmetric and changes sign. Therefore, its interpretation as a probability
@ -2253,17 +2247,17 @@ gfortran hydrogen.f90 qmc_stats.f90 vmc_metropolis.f90 -o vmc_metropolis
For the systems you will study, this is not an issue: For the systems you will study, this is not an issue:
- Hydrogen atom: You only have one electron! - Hydrogen atom: You only have one electron!
- Two-electron system ($H_2$ or He): The ground-wave function is antisymmetric in the spin variables but symmetric in the space ones. - Two-electron system ($H_2$ or He): The ground-wave function is
antisymmetric in the spin variables but symmetric in the space ones.
Therefore, in both cases, you are dealing with a "Bosonic" ground state. Therefore, in both cases, you are dealing with a "Bosonic" ground state.
** Importance sampling ** Importance sampling
In a molecular system, the potential is far from being constant In a molecular system, the potential is far from being constant
and, in fact, diverges at the inter-particle coalescence points. Hence, when the and, in fact, diverges at the inter-particle coalescence points. Hence,
rate equation is simulated, it results in very large fluctuations it results in very large fluctuations of the term associated with
in the numbers of particles, making the calculations impossible in the potental, making the calculations impossible in practice.
practice.
Fortunately, if we multiply the Schrödinger equation by a chosen Fortunately, if we multiply the Schrödinger equation by a chosen
/trial wave function/ $\Psi_T(\mathbf{r})$ (Hartree-Fock, Kohn-Sham /trial wave function/ $\Psi_T(\mathbf{r})$ (Hartree-Fock, Kohn-Sham
determinant, CI wave function, /etc/), one obtains determinant, CI wave function, /etc/), one obtains
@ -2285,8 +2279,8 @@ gfortran hydrogen.f90 qmc_stats.f90 vmc_metropolis.f90 -o vmc_metropolis
The new "kinetic energy" can be simulated by the drift-diffusion The new "kinetic energy" can be simulated by the drift-diffusion
scheme presented in the previous section (VMC). scheme presented in the previous section (VMC).
The new "potential" is the local energy, which has smaller fluctuations The new "potential" is the local energy, which has smaller fluctuations
when $\Psi_T$ gets closer to the exact wave function. This term can be simulated by when $\Psi_T$ gets closer to the exact wave function.
changing the number of particles according to $\exp\left[ -\delta t\, This term can be simulated by t particles according to $\exp\left[ -\delta t\,
\left(E_L(\mathbf{r}) - E_{\rm ref}\right)\right]$ \left(E_L(\mathbf{r}) - E_{\rm ref}\right)\right]$
where $E_{\rm ref}$ is the constant we had introduced above, which is adjusted to where $E_{\rm ref}$ is the constant we had introduced above, which is adjusted to
the running average energy to keep the number of particles the running average energy to keep the number of particles