diff --git a/index.html b/index.html index 3ae2a1c..72db806 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Quantum Monte Carlo @@ -329,152 +329,151 @@ for the JavaScript code in this tag.

Table of Contents

-
-

1 Introduction

+
+

1 Introduction

This website contains the QMC tutorial of the 2021 LTTC winter school @@ -514,8 +513,8 @@ coordinates, etc).

-
-

1.1 Energy and local energy

+
+

1.1 Energy and local energy

For a given system with Hamiltonian \(\hat{H}\) and wave function \(\Psi\), we define the local energy as @@ -593,8 +592,8 @@ $$ E ≈ \frac{1}{N\rm MC} ∑i=1N\rm MC

-
-

2 Numerical evaluation of the energy of the hydrogen atom

+
+

2 Numerical evaluation of the energy of the hydrogen atom

In this section, we consider the hydrogen atom with the following @@ -623,8 +622,8 @@ To do that, we will compute the local energy and check whether it is constant.

-
-

2.1 Local energy

+
+

2.1 Local energy

You will now program all quantities needed to compute the local energy of the H atom for the given wave function. @@ -651,8 +650,8 @@ to catch the error.

-
-

2.1.1 Exercise 1

+
+

2.1.1 Exercise 1

@@ -696,8 +695,8 @@ and returns the potential.

-
-
2.1.1.1 Solution   solution
+
+
2.1.1.1 Solution   solution

Python @@ -737,8 +736,8 @@ and returns the potential.

-
-

2.1.2 Exercise 2

+
+

2.1.2 Exercise 2

@@ -773,8 +772,8 @@ input arguments, and returns a scalar.

-
-
2.1.2.1 Solution   solution
+
+
2.1.2.1 Solution   solution

Python @@ -801,8 +800,8 @@ input arguments, and returns a scalar.

-
-

2.1.3 Exercise 3

+
+

2.1.3 Exercise 3

@@ -883,8 +882,8 @@ Therefore, the local kinetic energy is

-
-
2.1.3.1 Solution   solution
+
+
2.1.3.1 Solution   solution

Python @@ -925,8 +924,8 @@ Therefore, the local kinetic energy is

-
-

2.1.4 Exercise 4

+
+

2.1.4 Exercise 4

@@ -969,8 +968,8 @@ local kinetic energy.

-
-
2.1.4.1 Solution   solution
+
+
2.1.4.1 Solution   solution

Python @@ -1000,8 +999,8 @@ local kinetic energy.

-
-

2.1.5 Exercise 5

+
+

2.1.5 Exercise 5

@@ -1011,8 +1010,8 @@ Find the theoretical value of \(a\) for which \(\Psi\) is an eigenfunction of \(

-
-
2.1.5.1 Solution   solution
+
+
2.1.5.1 Solution   solution
\begin{eqnarray*} E &=& \frac{\hat{H} \Psi}{\Psi} = - \frac{1}{2} \frac{\Delta \Psi}{\Psi} - @@ -1032,8 +1031,8 @@ equal to -0.5 atomic units.
-
-

2.2 Plot of the local energy along the \(x\) axis

+
+

2.2 Plot of the local energy along the \(x\) axis

@@ -1044,8 +1043,8 @@ choose a grid which does not contain the origin.

-
-

2.2.1 Exercise

+
+

2.2.1 Exercise

@@ -1128,8 +1127,8 @@ plot './data' index 0 using 1:2 with lines title 'a=0.1', \

-
-
2.2.1.1 Solution   solution
+
+
2.2.1.1 Solution   solution

Python @@ -1204,8 +1203,8 @@ plt.savefig("plot_py.png")

-
-

2.3 Numerical estimation of the energy

+
+

2.3 Numerical estimation of the energy

If the space is discretized in small volume elements \(\mathbf{r}_i\) @@ -1235,8 +1234,8 @@ The energy is biased because:

-
-

2.3.1 Exercise

+
+

2.3.1 Exercise

@@ -1305,8 +1304,8 @@ To compile the Fortran and run it:

-
-
2.3.1.1 Solution   solution
+
+
2.3.1.1 Solution   solution

Python @@ -1421,8 +1420,8 @@ a = 2.0000000000000000 E = -8.0869806678448772E-002

-
-

2.4 Variance of the local energy

+
+

2.4 Variance of the local energy

The variance of the local energy is a functional of \(\Psi\) @@ -1449,8 +1448,8 @@ energy can be used as a measure of the quality of a wave function.

-
-

2.4.1 Exercise (optional)

+
+

2.4.1 Exercise (optional)

@@ -1461,8 +1460,8 @@ Prove that :

-
-
2.4.1.1 Solution   solution
+
+
2.4.1.1 Solution   solution

\(\bar{E} = \langle E \rangle\) is a constant, so \(\langle \bar{E} @@ -1481,8 +1480,8 @@ Prove that :

-
-

2.4.2 Exercise

+
+

2.4.2 Exercise

@@ -1556,8 +1555,8 @@ To compile and run:

-
-
2.4.2.1 Solution   solution
+
+
2.4.2.1 Solution   solution

Python @@ -1694,8 +1693,8 @@ a = 2.0000000000000000 E = -8.0869806678448772E-002 s2 = 1.8068814

-
-

3 Variational Monte Carlo

+
+

3 Variational Monte Carlo

Numerical integration with deterministic methods is very efficient @@ -1711,8 +1710,8 @@ interval.

-
-

3.1 Computation of the statistical error

+
+

3.1 Computation of the statistical error

To compute the statistical error, you need to perform \(M\) @@ -1752,8 +1751,8 @@ And the confidence interval is given by

-
-

3.1.1 Exercise

+
+

3.1.1 Exercise

@@ -1791,8 +1790,8 @@ input array.

-
-
3.1.1.1 Solution   solution
+
+
3.1.1.1 Solution   solution

Python @@ -1851,8 +1850,8 @@ input array.

-
-

3.2 Uniform sampling in the box

+
+

3.2 Uniform sampling in the box

We will now perform our first Monte Carlo calculation to compute the @@ -1913,8 +1912,8 @@ compute the statistical error.

-
-

3.2.1 Exercise

+
+

3.2.1 Exercise

@@ -2014,8 +2013,8 @@ well as the index of the current step.

-
-
3.2.1.1 Solution   solution
+
+
3.2.1.1 Solution   solution

Python @@ -2129,8 +2128,8 @@ E = -0.49518773675598715 +/- 5.2391494923686175E-004

-
-

3.3 Metropolis sampling with \(\Psi^2\)

+
+

3.3 Metropolis sampling with \(\Psi^2\)

We will now use the square of the wave function to sample random @@ -2263,14 +2262,14 @@ compromise for the current problem.

-NOTE: below, we use the symbol dt for dL for reasons which will -become clear later. +NOTE: below, we use the symbol dt to denote dL since we will use +the same variable later on to store a time step.

-
-

3.3.1 Exercise

+
+

3.3.1 Exercise

@@ -2377,8 +2376,8 @@ Can you observe a reduction in the statistical error?

-
-
3.3.1.1 Solution   solution
+
+
3.3.1.1 Solution   solution

Python @@ -2523,8 +2522,8 @@ A = 0.51695266666666673 +/- 4.0445505648997396E-004

-
-

3.4 Gaussian random number generator

+
+

3.4 Gaussian random number generator

To obtain Gaussian-distributed random numbers, you can apply the @@ -2587,8 +2586,8 @@ In Python, you can use the -

3.5 Generalized Metropolis algorithm

+
+

3.5 Generalized Metropolis algorithm

One can use more efficient numerical schemes to move the electrons by choosing a smarter expression for the transition probability. @@ -2720,8 +2719,8 @@ Evaluate \(\Psi\) and \(\frac{\nabla \Psi(\mathbf{r})}{\Psi(\mathbf{r})}\) at th

-
-

3.5.1 Exercise 1

+
+

3.5.1 Exercise 1

@@ -2755,8 +2754,8 @@ Write a function to compute the drift vector \(\frac{\nabla \Psi(\mathbf{r})}{\P

-
-
3.5.1.1 Solution   solution
+
+
3.5.1.1 Solution   solution

Python @@ -2789,8 +2788,8 @@ Write a function to compute the drift vector \(\frac{\nabla \Psi(\mathbf{r})}{\P

-
-

3.5.2 Exercise 2

+
+

3.5.2 Exercise 2

@@ -2884,8 +2883,8 @@ Modify the previous program to introduce the drift-diffusion scheme.

-
-
3.5.2.1 Solution   solution
+
+
3.5.2.1 Solution   solution

Python @@ -3071,12 +3070,12 @@ A = 0.78839866666666658 +/- 3.2503783452043152E-004

-
-

4 Diffusion Monte Carlo   solution

+
+

4 Diffusion Monte Carlo   solution

-
-

4.1 Schrödinger equation in imaginary time

+
+

4.1 Schrödinger equation in imaginary time

Consider the time-dependent Schrödinger equation: @@ -3144,8 +3143,8 @@ system.

-
-

4.2 Diffusion and branching

+
+

4.2 Diffusion and branching

The imaginary-time Schrödinger equation can be explicitly written in terms of the kinetic and @@ -3220,18 +3219,33 @@ the combination of a diffusion process and a branching process.

-We note here that the ground-state wave function of a Fermionic system is -antisymmetric and changes sign. +We note that the ground-state wave function of a Fermionic system is +antisymmetric and changes sign. Therefore, it is interpretation as a probability +distribution is somewhat problematic. In fact, mathematically, since +the Bosonic ground state is lower in energy than the Fermionic one, for +large \(\tau\), the system will evolve towards the Bosonic solution.

-I AM HERE +For the systems you will study this is not an issue: +

+ +
    +
  • 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. +

+ +

+Therefore, in both cases, you are dealing with a "Bosonic" ground state.

-
-

4.3 Importance sampling

+
+

4.3 Importance sampling

In a molecular system, the potential is far from being constant @@ -3272,24 +3286,63 @@ when \(\Psi_T\) gets closer to the exact wave function. It can be simulated by changing the number of particles according to \(\exp\left[ -\delta t\, \left(E_L(\mathbf{r}) - E_T\right)\right]\) where \(E_T\) is the constant we had introduced above, which is adjusted to -the running average energy and is introduced to keep the number of particles +the running average energy to keep the number of particles reasonably constant.

This equation generates the N-electron density \(\Pi\), which is the -product of the ground state with the trial wave function. It -introduces the constraint that \(\Pi(\mathbf{r},\tau)=0\) where -\(\Psi_T(\mathbf{r})=0\). In the few cases where the wave function has no nodes, -such as in the hydrogen atom or the H2 molecule, this -constraint is harmless and we can obtain the exact energy. But for -systems where the wave function has nodes, this scheme introduces an -error known as the fixed node error. +product of the ground state with the trial wave function. You may then ask: how +can we compute the total energy of the system? +

+ +

+To this aim, we use the mixed estimator of the energy: +

+ +\begin{eqnarray*} + E(\tau) &=& \frac{\langle \psi(tau) | \hat{H} | \Psi_T \rangle}{\frac{\langle \psi(tau) | \Psi_T \rangle}\\ + &=& \frac{\int \psi(\mathbf{r},\tau) \hat{H} \Psi_T(\mathbf{r}) d\mathbf{r}} + {\int \psi(\mathbf{r},\tau) \Psi_T(\mathbf{r}) d\mathbf{r}} \\ + &=& \int \psi(\mathbf{r},\tau) \Psi_T(\mathbf{r}) E_L(\mathbf{r}) d\mathbf{r}} + {\int \psi(\mathbf{r},\tau) \Psi_T(\mathbf{r}) d\mathbf{r}} + \end{eqnarray*} + +

+Since, for large \(\tau\), we have that +

+ +

+\[ + \Pi(\mathbf{r},\tau) =\psi(\mathbf{r},\tau) \Psi_T(\mathbf{r}) \rightarrow \Phi_0(\mathbf{r}) \Psi_T(\mathbf{r})\,, + \] +

+ +

+and, using that \(\hat{H}\) is Hermitian and that \(\Phi_0\) is an eigenstate of the Hamiltonian, we obtain +

+ +

+\[ + E(\tau) = \frac{\langle \psi_\tau | \hat{H} | \Psi_T \rangle} + {\langle \psi_\tau | \Psi_T \rangle} + = \frac{\langle \Psi_T | \hat{H} | \psi_\tau \rangle} + {\langle \Psi_T | \psi_\tau \rangle} + \rightarrow E_0 \frac{\langle \Psi_T | \psi_\tau \rangle} + {\langle \Psi_T | \psi_\tau \rangle} + = E_0 + \] +

+ +

+Therefore, we can compute the energy within DMC by generating the +density \(\Pi\) with random walks, and simply averaging the local +energies computed with the trial wave function.

-
-

4.3.1 Appendix : Details of the Derivation

+
+

4.3.1 Appendix : Details of the Derivation

\[ @@ -3350,68 +3403,13 @@ Defining \(\Pi(\mathbf{r},t) = \psi(\mathbf{r},\tau)

- -
-

4.4 Fixed-node DMC energy

+
+

4.4 Pure Diffusion Monte Carlo (PDMC)

-Now that we have a process to sample \(\Pi(\mathbf{r},\tau) = - \psi(\mathbf{r},\tau) \Psi_T(\mathbf{r})\), we can compute the exact -energy of the system, within the fixed-node constraint, as: -

- -

-\[ - E = \lim_{\tau \to \infty} \frac{\int \Pi(\mathbf{r},\tau) E_L(\mathbf{r}) d\mathbf{r}} - {\int \Pi(\mathbf{r},\tau) d\mathbf{r}} = \lim_{\tau \to - \infty} E(\tau). - \] -

- - -

-\[ - E(\tau) = \frac{\int \psi(\mathbf{r},\tau) \Psi_T(\mathbf{r}) E_L(\mathbf{r}) d\mathbf{r}} - {\int \psi(\mathbf{r},\tau) \Psi_T(\mathbf{r}) d\mathbf{r}} - = \frac{\int \psi(\mathbf{r},\tau) \hat{H} \Psi_T(\mathbf{r}) d\mathbf{r}} - {\int \psi(\mathbf{r},\tau) \Psi_T(\mathbf{r}) d\mathbf{r}} - = \frac{\langle \psi_\tau | \hat{H} | \Psi_T \rangle} - {\langle \psi_\tau | \Psi_T \rangle} - \] -

- -

-As \(\hat{H}\) is Hermitian, -

- -

-\[ - E(\tau) = \frac{\langle \psi_\tau | \hat{H} | \Psi_T \rangle} - {\langle \psi_\tau | \Psi_T \rangle} - = \frac{\langle \Psi_T | \hat{H} | \psi_\tau \rangle} - {\langle \Psi_T | \psi_\tau \rangle} - = E[\psi_\tau] \frac{\langle \Psi_T | \psi_\tau \rangle} - {\langle \Psi_T | \psi_\tau \rangle} - = E[\psi_\tau] - \] -

- -

-So computing the energy within DMC consists in generating the -density \(\Pi\) with random walks, and simply averaging the local -energies computed with the trial wave function. -

-
-
- -
-

4.5 Pure Diffusion Monte Carlo (PDMC)

-
-

Instead of having a variable number of particles to simulate the -branching process, one can choose to sample \([\Psi_T(\mathbf{r})]^2\) instead of -\(\psi(\mathbf{r},\tau) \Psi_T(\mathbf{r})\), and consider the term -\(\exp \left( -\delta t\,( E_L(\mathbf{r}) - E_{\text{ref}} \right)\) as a +branching process, one can consider the term +\(\exp \left( -\delta t\,( E_L(\mathbf{r}) - E_T} \right)\) as a cumulative product of weights:

@@ -3457,14 +3455,14 @@ code, so this is what we will do in the next section.
-
-

4.6 Hydrogen atom

-
+
+

4.5 Hydrogen atom

+
-
-

4.6.1 Exercise

-
+
+

4.5.1 Exercise

+

Modify the Metropolis VMC program to introduce the PDMC weight. @@ -3562,9 +3560,9 @@ energy of H for any value of \(a\).

-
-
4.6.1.1 Solution   solution
-
+
+
4.5.1.1 Solution   solution
+

Python

@@ -3779,9 +3777,9 @@ A = 0.98788066666666663 +/- 7.2889356133441110E-005
-
-

4.7 TODO H2

-
+
+

4.6 TODO H2

+

We will now consider the H2 molecule in a minimal basis composed of the \(1s\) orbitals of the hydrogen atoms: @@ -3801,8 +3799,8 @@ the nuclei.

-
-

5 TODO [0/3] Last things to do

+
+

5 TODO [0/3] Last things to do

  • [ ] Give some hints of how much time is required for each section
  • @@ -3818,7 +3816,7 @@ the H\(_2\) molecule at $R$=1.4010 bohr. Answer: 0.17406 a.u.

Author: Anthony Scemama, Claudia Filippi

-

Created: 2021-01-31 Sun 19:07

+

Created: 2021-02-01 Mon 08:08

Validate