1
0
mirror of https://github.com/TREX-CoE/qmc-lttc.git synced 2024-11-04 05:04:01 +01:00
This commit is contained in:
scemama 2021-01-21 22:25:25 +00:00
parent 3bfda36e10
commit e6ca7dd0a5

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<!-- 2021-01-20 Wed 20:19 --> <!-- 2021-01-21 Thu 22:25 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Quantum Monte Carlo</title> <title>Quantum Monte Carlo</title>
@ -257,74 +257,113 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2> <h2>Table of Contents</h2>
<div id="text-table-of-contents"> <div id="text-table-of-contents">
<ul> <ul>
<li><a href="#org1024007">1. Introduction</a></li> <li><a href="#org6025355">1. Introduction</a></li>
<li><a href="#orga85d646">2. Numerical evaluation of the energy</a> <li><a href="#orgbac45cc">2. Numerical evaluation of the energy</a>
<ul> <ul>
<li><a href="#org99172c6">2.1. Local energy</a> <li><a href="#org6998313">2.1. Local energy</a>
<ul> <ul>
<li><a href="#org3138cb1">2.1.1. Exercise 1</a></li> <li><a href="#org31adcd5">2.1.1. Exercise 1</a></li>
<li><a href="#org0a5aae5">2.1.2. Exercise 2</a></li> <li><a href="#org455741d">2.1.2. Exercise 2</a>
<li><a href="#orge9c9cf2">2.1.3. Exercise 3</a></li> <ul>
<li><a href="#org3504ae0">2.1.4. Exercise 4</a></li> <li><a href="#org2c5fa9a">2.1.2.1. Python</a></li>
<li><a href="#orge4088c5">2.1.2.2. Python</a></li>
<li><a href="#org18dd188">2.1.2.3. Fortran</a></li>
<li><a href="#org916b08f">2.1.2.4. Fortran</a></li>
</ul> </ul>
</li> </li>
<li><a href="#orge2f9f1d">2.2. Plot of the local energy along the \(x\) axis</a> <li><a href="#org53a6cc4">2.1.3. Exercise 3</a>
<ul> <ul>
<li><a href="#org040aa87">2.2.1. Exercise</a></li> <li><a href="#org009d703">2.1.3.1. Python</a></li>
<li><a href="#org02c9ae0">2.1.3.2. Python</a></li>
<li><a href="#org5b5b6dd">2.1.3.3. Fortran</a></li>
<li><a href="#org4a13e7b">2.1.3.4. Fortran</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org44b3a72">2.3. Numerical estimation of the energy</a> <li><a href="#org361bfae">2.1.4. Exercise 4</a>
<ul> <ul>
<li><a href="#org79a67a3">2.3.1. Exercise</a></li> <li><a href="#org4889a9c">2.1.4.1. Python</a></li>
<li><a href="#org87d50f7">2.1.4.2. Python</a></li>
<li><a href="#orgac8b741">2.1.4.3. Fortran</a></li>
<li><a href="#org6fd3e5b">2.1.4.4. Fortran</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org5ce3db7">2.4. Variance of the local energy</a> <li><a href="#org206f369">2.1.5. Exercise 5</a>
<ul> <ul>
<li><a href="#org24a3307">2.4.1. Exercise (optional)</a></li> <li><a href="#org3af3fb3">2.1.5.1. Python</a></li>
<li><a href="#orgd7f29f6">2.4.2. Exercise</a></li> <li><a href="#orgbb62259">2.1.5.2. Python</a></li>
<li><a href="#org50c762e">2.1.5.3. Fortran</a></li>
<li><a href="#orgd6bf191">2.1.5.4. Fortran</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
</li> </li>
<li><a href="#org7af3dcd">3. Variational Monte Carlo</a> <li><a href="#org1554b06">2.2. Plot of the local energy along the \(x\) axis</a>
<ul> <ul>
<li><a href="#orgda6239f">3.1. Computation of the statistical error</a> <li><a href="#org3a070de">2.2.1. Exercise</a>
<ul> <ul>
<li><a href="#orgcbf936c">3.1.1. Exercise</a></li> <li><a href="#org6b7dd9a">2.2.1.1. Python</a></li>
</ul> <li><a href="#org29f9cc7">2.2.1.2. Python</a></li>
</li> <li><a href="#org384586c">2.2.1.3. Fortran</a></li>
<li><a href="#orga993fd0">3.2. Uniform sampling in the box</a> <li><a href="#orgcbf1d0a">2.2.1.4. Fortran</a></li>
<ul>
<li><a href="#org23e48ff">3.2.1. Exercise</a></li>
</ul>
</li>
<li><a href="#org329d352">3.3. Metropolis sampling with \(\Psi^2\)</a>
<ul>
<li><a href="#orgb2081b0">3.3.1. Exercise</a></li>
</ul>
</li>
<li><a href="#org229089b">3.4. Gaussian random number generator</a></li>
<li><a href="#orgeb02476">3.5. Generalized Metropolis algorithm</a>
<ul>
<li><a href="#org8dc39b9">3.5.1. Exercise 1</a></li>
<li><a href="#org506c4e5">3.5.2. Exercise 2</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
</li> </li>
<li><a href="#org3724797">4. <span class="todo TODO">TODO</span> Diffusion Monte Carlo</a> <li><a href="#org14675c5">2.3. <span class="todo TODO">TODO</span> Numerical estimation of the energy</a>
<ul> <ul>
<li><a href="#orgde9e678">4.1. Hydrogen atom</a></li> <li><a href="#org78d5b86">2.3.1. Exercise</a></li>
<li><a href="#orge0b3a26">4.2. Dihydrogen</a></li> </ul>
</li>
<li><a href="#org55ef334">2.4. <span class="todo TODO">TODO</span> Variance of the local energy</a>
<ul>
<li><a href="#orgaa6b6de">2.4.1. Exercise (optional)</a></li>
<li><a href="#orgaedf8c6">2.4.2. Exercise</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#orgf0dcb22">3. <span class="todo TODO">TODO</span> Variational Monte Carlo</a>
<ul>
<li><a href="#org06145c7">3.1. <span class="todo TODO">TODO</span> Computation of the statistical error</a>
<ul>
<li><a href="#orgeb56d99">3.1.1. Exercise</a></li>
</ul>
</li>
<li><a href="#orgaaa817a">3.2. <span class="todo TODO">TODO</span> Uniform sampling in the box</a>
<ul>
<li><a href="#orged433aa">3.2.1. Exercise</a></li>
</ul>
</li>
<li><a href="#org74daf7f">3.3. <span class="todo TODO">TODO</span> Metropolis sampling with \(\Psi^2\)</a>
<ul>
<li><a href="#org4a15485">3.3.1. Exercise</a></li>
</ul>
</li>
<li><a href="#orge1c83d1">3.4. <span class="todo TODO">TODO</span> Gaussian random number generator</a></li>
<li><a href="#org9b85061">3.5. <span class="todo TODO">TODO</span> Generalized Metropolis algorithm</a>
<ul>
<li><a href="#org865407b">3.5.1. Exercise 1</a></li>
<li><a href="#org26350e3">3.5.2. Exercise 2</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#org726c101">4. <span class="todo TODO">TODO</span> Diffusion Monte Carlo</a>
<ul>
<li><a href="#org91f9b86">4.1. <span class="todo TODO">TODO</span> Hydrogen atom</a>
<ul>
<li><a href="#orgacbb363">4.1.1. Exercise</a></li>
</ul>
</li>
<li><a href="#org16ed9e8">4.2. <span class="todo TODO">TODO</span> Dihydrogen</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
<div id="outline-container-org6025355" class="outline-2">
<div id="outline-container-org1024007" class="outline-2"> <h2 id="org6025355"><span class="section-number-2">1</span> Introduction</h2>
<h2 id="org1024007"><span class="section-number-2">1</span> Introduction</h2>
<div class="outline-text-2" id="text-1"> <div class="outline-text-2" id="text-1">
<p> <p>
We propose different exercises to understand quantum Monte Carlo (QMC) We propose different exercises to understand quantum Monte Carlo (QMC)
@ -357,7 +396,7 @@ is defined everywhere, continuous and infinitely differentiable.
<div class="important"> <div class="important">
<p> <p>
In Fortran, when you use a double precision constant, don't forget In Fortran, when you use a double precision constant, don't forget
to put d0 as a suffix (for example 2.0d0), or it will be to put <code>d0</code> as a suffix (for example <code>2.0d0</code>), or it will be
interpreted as a single precision value interpreted as a single precision value
</p> </p>
@ -366,8 +405,8 @@ interpreted as a single precision value
</div> </div>
<div id="outline-container-orga85d646" class="outline-2"> <div id="outline-container-orgbac45cc" class="outline-2">
<h2 id="orga85d646"><span class="section-number-2">2</span> Numerical evaluation of the energy</h2> <h2 id="orgbac45cc"><span class="section-number-2">2</span> Numerical evaluation of the energy</h2>
<div class="outline-text-2" id="text-2"> <div class="outline-text-2" id="text-2">
<p> <p>
In this section we consider the Hydrogen atom with the following In this section we consider the Hydrogen atom with the following
@ -381,7 +420,8 @@ wave function:
</p> </p>
<p> <p>
We will first verify that \(\Psi\) is an eigenfunction of the Hamiltonian We will first verify that, for a given value of \(a\), \(\Psi\) is an
eigenfunction of the Hamiltonian
</p> </p>
<p> <p>
@ -391,8 +431,7 @@ We will first verify that \(\Psi\) is an eigenfunction of the Hamiltonian
</p> </p>
<p> <p>
when \(a=1\), by checking that \(\hat{H}\Psi(\mathbf{r}) = E\Psi(\mathbf{r})\) for To do that, we will check if the local energy, defined as
all \(\mathbf{r}\). We will check that the local energy, defined as
</p> </p>
<p> <p>
@ -402,8 +441,7 @@ all \(\mathbf{r}\). We will check that the local energy, defined as
</p> </p>
<p> <p>
is constant. We will also see that when \(a \ne 1\) the local energy is constant.
is not constant, so \(\hat{H} \Psi \ne E \Psi\).
</p> </p>
@ -413,7 +451,7 @@ with respect to a probability density function \(p(x)\) is given by
</p> </p>
<p> <p>
\[ \langle f \rangle_p = \int_{-\infty}^\infty p(x)\, f(x)\,dx \]. \[ \langle f \rangle_p = \int_{-\infty}^\infty p(x)\, f(x)\,dx. \]
</p> </p>
<p> <p>
@ -422,7 +460,7 @@ and integrates to one:
</p> </p>
<p> <p>
\[ \int_{-\infty}^\infty p(x)\,dx = 1 \]. \[ \int_{-\infty}^\infty p(x)\,dx = 1. \]
</p> </p>
@ -441,16 +479,33 @@ E & = & \frac{\langle \Psi| \hat{H} | \Psi\rangle}{\langle \Psi |\Psi \rangle}
\end{eqnarray*} \end{eqnarray*}
</div> </div>
<div id="outline-container-org99172c6" class="outline-3"> <div id="outline-container-org6998313" class="outline-3">
<h3 id="org99172c6"><span class="section-number-3">2.1</span> Local energy</h3> <h3 id="org6998313"><span class="section-number-3">2.1</span> Local energy</h3>
<div class="outline-text-3" id="text-2-1"> <div class="outline-text-3" id="text-2-1">
<p>
Write all the functions of this section in a single file :
<code>hydrogen.py</code> if you use Python, or <code>hydrogen.f90</code> is you use
Fortran.
</p>
</div> </div>
<div id="outline-container-org3138cb1" class="outline-4"> <div id="outline-container-org31adcd5" class="outline-4">
<h4 id="org3138cb1"><span class="section-number-4">2.1.1</span> Exercise 1</h4> <h4 id="org31adcd5"><span class="section-number-4">2.1.1</span> Exercise 1</h4>
<div class="outline-text-4" id="text-2-1-1"> <div class="outline-text-4" id="text-2-1-1">
<div class="exercise"> <div class="exercise">
<p> <p>
Find the theoretical value of \(a\) for which \(\Psi\) is an eigenfunction of \(\hat{H}\).
</p>
</div>
</div>
</div>
<div id="outline-container-org455741d" class="outline-4">
<h4 id="org455741d"><span class="section-number-4">2.1.2</span> Exercise 2</h4>
<div class="outline-text-4" id="text-2-1-2">
<div class="exercise">
<p>
Write a function which computes the potential at \(\mathbf{r}\). Write a function which computes the potential at \(\mathbf{r}\).
The function accepts a 3-dimensional vector <code>r</code> as input arguments The function accepts a 3-dimensional vector <code>r</code> as input arguments
and returns the potential. and returns the potential.
@ -464,10 +519,24 @@ and returns the potential.
V(\mathbf{r}) = -\frac{1}{\sqrt{x^2 + y^2 + z^2}} V(\mathbf{r}) = -\frac{1}{\sqrt{x^2 + y^2 + z^2}}
\] \]
</p> </p>
</div>
<p> <div id="outline-container-org2c5fa9a" class="outline-5">
<b>Python</b> <h5 id="org2c5fa9a"><span class="section-number-5">2.1.2.1</span> Python</h5>
</p> <div class="outline-text-5" id="text-2-1-2-1">
<div class="org-src-container">
<pre class="src src-python"><span style="color: #a020f0;">import</span> numpy <span style="color: #a020f0;">as</span> np
<span style="color: #a020f0;">def</span> <span style="color: #0000ff;">potential</span>(r):
# <span style="color: #b22222;">TODO</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-orge4088c5" class="outline-5">
<h5 id="orge4088c5"><span class="section-number-5">2.1.2.2</span> Python&#xa0;&#xa0;&#xa0;<span class="tag"><span class="solution">solution</span></span></h5>
<div class="outline-text-5" id="text-2-1-2-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-python"><span style="color: #a020f0;">import</span> numpy <span style="color: #a020f0;">as</span> np <pre class="src src-python"><span style="color: #a020f0;">import</span> numpy <span style="color: #a020f0;">as</span> np
@ -475,11 +544,26 @@ and returns the potential.
<span style="color: #a020f0;">return</span> -1. / np.sqrt(np.dot(r,r)) <span style="color: #a020f0;">return</span> -1. / np.sqrt(np.dot(r,r))
</pre> </pre>
</div> </div>
</div>
</div>
<div id="outline-container-org18dd188" class="outline-5">
<h5 id="org18dd188"><span class="section-number-5">2.1.2.3</span> Fortran</h5>
<div class="outline-text-5" id="text-2-1-2-3">
<div class="org-src-container">
<pre class="src src-f90"><span style="color: #228b22;">double precision </span><span style="color: #a020f0;">function</span><span style="color: #a0522d;"> </span><span style="color: #0000ff;">potential</span><span style="color: #000000; background-color: #ffffff;">(r)</span>
<span style="color: #a020f0;">implicit</span> <span style="color: #228b22;">none</span>
<span style="color: #228b22;">double precision</span>, <span style="color: #a020f0;">intent</span>(in) ::<span style="color: #a0522d;"> r(3)</span>
! <span style="color: #b22222;">TODO</span>
<span style="color: #a020f0;">end function</span> <span style="color: #0000ff;">potential</span>
</pre>
</div>
</div>
</div>
<p> <div id="outline-container-org916b08f" class="outline-5">
<b>Fortran</b> <h5 id="org916b08f"><span class="section-number-5">2.1.2.4</span> Fortran&#xa0;&#xa0;&#xa0;<span class="tag"><span class="solution">solution</span></span></h5>
</p> <div class="outline-text-5" id="text-2-1-2-4">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-f90"><span style="color: #228b22;">double precision </span><span style="color: #a020f0;">function</span><span style="color: #a0522d;"> </span><span style="color: #0000ff;">potential</span><span style="color: #000000; background-color: #ffffff;">(r)</span> <pre class="src src-f90"><span style="color: #228b22;">double precision </span><span style="color: #a020f0;">function</span><span style="color: #a0522d;"> </span><span style="color: #0000ff;">potential</span><span style="color: #000000; background-color: #ffffff;">(r)</span>
<span style="color: #a020f0;">implicit</span> <span style="color: #228b22;">none</span> <span style="color: #a020f0;">implicit</span> <span style="color: #228b22;">none</span>
@ -490,10 +574,11 @@ and returns the potential.
</div> </div>
</div> </div>
</div> </div>
</div>
<div id="outline-container-org0a5aae5" class="outline-4"> <div id="outline-container-org53a6cc4" class="outline-4">
<h4 id="org0a5aae5"><span class="section-number-4">2.1.2</span> Exercise 2</h4> <h4 id="org53a6cc4"><span class="section-number-4">2.1.3</span> Exercise 3</h4>
<div class="outline-text-4" id="text-2-1-2"> <div class="outline-text-4" id="text-2-1-3">
<div class="exercise"> <div class="exercise">
<p> <p>
Write a function which computes the wave function at \(\mathbf{r}\). Write a function which computes the wave function at \(\mathbf{r}\).
@ -502,20 +587,48 @@ input arguments, and returns a scalar.
</p> </p>
</div> </div>
</div>
<p> <div id="outline-container-org009d703" class="outline-5">
<b>Python</b> <h5 id="org009d703"><span class="section-number-5">2.1.3.1</span> Python</h5>
</p> <div class="outline-text-5" id="text-2-1-3-1">
<div class="org-src-container">
<pre class="src src-python"><span style="color: #a020f0;">def</span> <span style="color: #0000ff;">psi</span>(a, r):
# <span style="color: #b22222;">TODO</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org02c9ae0" class="outline-5">
<h5 id="org02c9ae0"><span class="section-number-5">2.1.3.2</span> Python&#xa0;&#xa0;&#xa0;<span class="tag"><span class="solution">solution</span></span></h5>
<div class="outline-text-5" id="text-2-1-3-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-python"><span style="color: #a020f0;">def</span> <span style="color: #0000ff;">psi</span>(a, r): <pre class="src src-python"><span style="color: #a020f0;">def</span> <span style="color: #0000ff;">psi</span>(a, r):
<span style="color: #a020f0;">return</span> np.exp(-a*np.sqrt(np.dot(r,r))) <span style="color: #a020f0;">return</span> np.exp(-a*np.sqrt(np.dot(r,r)))
</pre> </pre>
</div> </div>
</div>
</div>
<p> <div id="outline-container-org5b5b6dd" class="outline-5">
<b>Fortran</b> <h5 id="org5b5b6dd"><span class="section-number-5">2.1.3.3</span> Fortran</h5>
</p> <div class="outline-text-5" id="text-2-1-3-3">
<div class="org-src-container">
<pre class="src src-f90"><span style="color: #228b22;">double precision </span><span style="color: #a020f0;">function</span><span style="color: #a0522d;"> </span><span style="color: #0000ff;">psi</span><span style="color: #000000; background-color: #ffffff;">(a, r)</span>
<span style="color: #a020f0;">implicit</span> <span style="color: #228b22;">none</span>
<span style="color: #228b22;">double precision</span>, <span style="color: #a020f0;">intent</span>(in) ::<span style="color: #a0522d;"> a, r(3)</span>
! <span style="color: #b22222;">TODO</span>
<span style="color: #a020f0;">end function</span> <span style="color: #0000ff;">psi</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org4a13e7b" class="outline-5">
<h5 id="org4a13e7b"><span class="section-number-5">2.1.3.4</span> Fortran&#xa0;&#xa0;&#xa0;<span class="tag"><span class="solution">solution</span></span></h5>
<div class="outline-text-5" id="text-2-1-3-4">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-f90"><span style="color: #228b22;">double precision </span><span style="color: #a020f0;">function</span><span style="color: #a0522d;"> </span><span style="color: #0000ff;">psi</span><span style="color: #000000; background-color: #ffffff;">(a, r)</span> <pre class="src src-f90"><span style="color: #228b22;">double precision </span><span style="color: #a020f0;">function</span><span style="color: #a0522d;"> </span><span style="color: #0000ff;">psi</span><span style="color: #000000; background-color: #ffffff;">(a, r)</span>
<span style="color: #a020f0;">implicit</span> <span style="color: #228b22;">none</span> <span style="color: #a020f0;">implicit</span> <span style="color: #228b22;">none</span>
@ -526,10 +639,11 @@ input arguments, and returns a scalar.
</div> </div>
</div> </div>
</div> </div>
</div>
<div id="outline-container-orge9c9cf2" class="outline-4"> <div id="outline-container-org361bfae" class="outline-4">
<h4 id="orge9c9cf2"><span class="section-number-4">2.1.3</span> Exercise 3</h4> <h4 id="org361bfae"><span class="section-number-4">2.1.4</span> Exercise 4</h4>
<div class="outline-text-4" id="text-2-1-3"> <div class="outline-text-4" id="text-2-1-4">
<div class="exercise"> <div class="exercise">
<p> <p>
Write a function which computes the local kinetic energy at \(\mathbf{r}\). Write a function which computes the local kinetic energy at \(\mathbf{r}\).
@ -584,19 +698,47 @@ So the local kinetic energy is
-\frac{1}{2} \frac{\Delta \Psi}{\Psi} (\mathbf{r}) = -\frac{1}{2}\left(a^2 - \frac{2a}{\mathbf{|r|}} \right) -\frac{1}{2} \frac{\Delta \Psi}{\Psi} (\mathbf{r}) = -\frac{1}{2}\left(a^2 - \frac{2a}{\mathbf{|r|}} \right)
\] \]
</p> </p>
</div>
<p> <div id="outline-container-org4889a9c" class="outline-5">
<b>Python</b> <h5 id="org4889a9c"><span class="section-number-5">2.1.4.1</span> Python</h5>
</p> <div class="outline-text-5" id="text-2-1-4-1">
<div class="org-src-container">
<pre class="src src-python"><span style="color: #a020f0;">def</span> <span style="color: #0000ff;">kinetic</span>(a,r):
# <span style="color: #b22222;">TODO</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org87d50f7" class="outline-5">
<h5 id="org87d50f7"><span class="section-number-5">2.1.4.2</span> Python&#xa0;&#xa0;&#xa0;<span class="tag"><span class="solution">solution</span></span></h5>
<div class="outline-text-5" id="text-2-1-4-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-python"><span style="color: #a020f0;">def</span> <span style="color: #0000ff;">kinetic</span>(a,r): <pre class="src src-python"><span style="color: #a020f0;">def</span> <span style="color: #0000ff;">kinetic</span>(a,r):
<span style="color: #a020f0;">return</span> -0.5 * (a**2 - (2.*a)/np.sqrt(np.dot(r,r))) <span style="color: #a020f0;">return</span> -0.5 * (a**2 - (2.*a)/np.sqrt(np.dot(r,r)))
</pre> </pre>
</div> </div>
</div>
</div>
<p> <div id="outline-container-orgac8b741" class="outline-5">
<b>Fortran</b> <h5 id="orgac8b741"><span class="section-number-5">2.1.4.3</span> Fortran</h5>
</p> <div class="outline-text-5" id="text-2-1-4-3">
<div class="org-src-container">
<pre class="src src-f90"><span style="color: #228b22;">double precision </span><span style="color: #a020f0;">function</span><span style="color: #a0522d;"> </span><span style="color: #0000ff;">kinetic</span><span style="color: #000000; background-color: #ffffff;">(a,r)</span>
<span style="color: #a020f0;">implicit</span> <span style="color: #228b22;">none</span>
<span style="color: #228b22;">double precision</span>, <span style="color: #a020f0;">intent</span>(in) ::<span style="color: #a0522d;"> a, r(3)</span>
! <span style="color: #b22222;">TODO</span>
<span style="color: #a020f0;">end function</span> <span style="color: #0000ff;">kinetic</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org6fd3e5b" class="outline-5">
<h5 id="org6fd3e5b"><span class="section-number-5">2.1.4.4</span> Fortran&#xa0;&#xa0;&#xa0;<span class="tag"><span class="solution">solution</span></span></h5>
<div class="outline-text-5" id="text-2-1-4-4">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-f90"><span style="color: #228b22;">double precision </span><span style="color: #a020f0;">function</span><span style="color: #a0522d;"> </span><span style="color: #0000ff;">kinetic</span><span style="color: #000000; background-color: #ffffff;">(a,r)</span> <pre class="src src-f90"><span style="color: #228b22;">double precision </span><span style="color: #a020f0;">function</span><span style="color: #a0522d;"> </span><span style="color: #0000ff;">kinetic</span><span style="color: #000000; background-color: #ffffff;">(a,r)</span>
<span style="color: #a020f0;">implicit</span> <span style="color: #228b22;">none</span> <span style="color: #a020f0;">implicit</span> <span style="color: #228b22;">none</span>
@ -608,15 +750,17 @@ So the local kinetic energy is
</div> </div>
</div> </div>
</div> </div>
</div>
<div id="outline-container-org3504ae0" class="outline-4"> <div id="outline-container-org206f369" class="outline-4">
<h4 id="org3504ae0"><span class="section-number-4">2.1.4</span> Exercise 4</h4> <h4 id="org206f369"><span class="section-number-4">2.1.5</span> Exercise 5</h4>
<div class="outline-text-4" id="text-2-1-4"> <div class="outline-text-4" id="text-2-1-5">
<div class="exercise"> <div class="exercise">
<p> <p>
Write a function which computes the local energy at \(\mathbf{r}\). Write a function which computes the local energy at \(\mathbf{r}\),
The function accepts <code>x,y,z</code> as input arguments and returns the using the previously defined functions.
local energy. The function accepts <code>a</code> and <code>r</code> as input arguments and returns the
local kinetic energy.
</p> </p>
</div> </div>
@ -626,20 +770,48 @@ local energy.
E_L(\mathbf{r}) = -\frac{1}{2} \frac{\Delta \Psi}{\Psi} (\mathbf{r}) + V(\mathbf{r}) E_L(\mathbf{r}) = -\frac{1}{2} \frac{\Delta \Psi}{\Psi} (\mathbf{r}) + V(\mathbf{r})
\] \]
</p> </p>
</div>
<p> <div id="outline-container-org3af3fb3" class="outline-5">
<b>Python</b> <h5 id="org3af3fb3"><span class="section-number-5">2.1.5.1</span> Python</h5>
</p> <div class="outline-text-5" id="text-2-1-5-1">
<div class="org-src-container">
<pre class="src src-python"><span style="color: #a020f0;">def</span> <span style="color: #0000ff;">e_loc</span>(a,r):
#<span style="color: #b22222;">TODO</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-orgbb62259" class="outline-5">
<h5 id="orgbb62259"><span class="section-number-5">2.1.5.2</span> Python&#xa0;&#xa0;&#xa0;<span class="tag"><span class="solution">solution</span></span></h5>
<div class="outline-text-5" id="text-2-1-5-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-python"><span style="color: #a020f0;">def</span> <span style="color: #0000ff;">e_loc</span>(a,r): <pre class="src src-python"><span style="color: #a020f0;">def</span> <span style="color: #0000ff;">e_loc</span>(a,r):
<span style="color: #a020f0;">return</span> kinetic(a,r) + potential(r) <span style="color: #a020f0;">return</span> kinetic(a,r) + potential(r)
</pre> </pre>
</div> </div>
</div>
</div>
<p> <div id="outline-container-org50c762e" class="outline-5">
<b>Fortran</b> <h5 id="org50c762e"><span class="section-number-5">2.1.5.3</span> Fortran</h5>
</p> <div class="outline-text-5" id="text-2-1-5-3">
<div class="org-src-container">
<pre class="src src-f90"><span style="color: #228b22;">double precision </span><span style="color: #a020f0;">function</span><span style="color: #a0522d;"> </span><span style="color: #0000ff;">e_loc</span><span style="color: #000000; background-color: #ffffff;">(a,r)</span>
<span style="color: #a020f0;">implicit</span> <span style="color: #228b22;">none</span>
<span style="color: #228b22;">double precision</span>, <span style="color: #a020f0;">intent</span>(in) ::<span style="color: #a0522d;"> a, r(3)</span>
! <span style="color: #b22222;">TODO</span>
<span style="color: #a020f0;">end function</span> <span style="color: #0000ff;">e_loc</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-orgd6bf191" class="outline-5">
<h5 id="orgd6bf191"><span class="section-number-5">2.1.5.4</span> Fortran&#xa0;&#xa0;&#xa0;<span class="tag"><span class="solution">solution</span></span></h5>
<div class="outline-text-5" id="text-2-1-5-4">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-f90"><span style="color: #228b22;">double precision </span><span style="color: #a020f0;">function</span><span style="color: #a0522d;"> </span><span style="color: #0000ff;">e_loc</span><span style="color: #000000; background-color: #ffffff;">(a,r)</span> <pre class="src src-f90"><span style="color: #228b22;">double precision </span><span style="color: #a020f0;">function</span><span style="color: #a0522d;"> </span><span style="color: #0000ff;">e_loc</span><span style="color: #000000; background-color: #ffffff;">(a,r)</span>
<span style="color: #a020f0;">implicit</span> <span style="color: #228b22;">none</span> <span style="color: #a020f0;">implicit</span> <span style="color: #228b22;">none</span>
@ -652,27 +824,31 @@ local energy.
</div> </div>
</div> </div>
</div> </div>
</div>
<div id="outline-container-orge2f9f1d" class="outline-3"> <div id="outline-container-org1554b06" class="outline-3">
<h3 id="orge2f9f1d"><span class="section-number-3">2.2</span> Plot of the local energy along the \(x\) axis</h3> <h3 id="org1554b06"><span class="section-number-3">2.2</span> Plot of the local energy along the \(x\) axis</h3>
<div class="outline-text-3" id="text-2-2"> <div class="outline-text-3" id="text-2-2">
</div> </div>
<div id="outline-container-org3a070de" class="outline-4">
<div id="outline-container-org040aa87" class="outline-4"> <h4 id="org3a070de"><span class="section-number-4">2.2.1</span> Exercise</h4>
<h4 id="org040aa87"><span class="section-number-4">2.2.1</span> Exercise</h4>
<div class="outline-text-4" id="text-2-2-1"> <div class="outline-text-4" id="text-2-2-1">
<div class="exercise"> <div class="exercise">
<p> <p>
For multiple values of \(a\) (0.1, 0.2, 0.5, 1., 1.5, 2.), plot the For multiple values of \(a\) (0.1, 0.2, 0.5, 1., 1.5, 2.), plot the
local energy along the \(x\) axis. local energy along the \(x\) axis. In Python, you can use matplotlib
for example. In Fortran, it is convenient to write in a text file
the values of \(x\) and \(E_L(\mathbf{r})\) for each point, and use
Gnuplot to plot the files.
</p> </p>
</div>
</div> </div>
<p> <div id="outline-container-org6b7dd9a" class="outline-5">
<b>Python</b> <h5 id="org6b7dd9a"><span class="section-number-5">2.2.1.1</span> Python</h5>
</p> <div class="outline-text-5" id="text-2-2-1-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-python"><span style="color: #a020f0;">import</span> numpy <span style="color: #a020f0;">as</span> np <pre class="src src-python"><span style="color: #a020f0;">import</span> numpy <span style="color: #a020f0;">as</span> np
<span style="color: #a020f0;">import</span> matplotlib.pyplot <span style="color: #a020f0;">as</span> plt <span style="color: #a020f0;">import</span> matplotlib.pyplot <span style="color: #a020f0;">as</span> plt
@ -680,20 +856,36 @@ local energy along the \(x\) axis.
<span style="color: #a020f0;">from</span> hydrogen <span style="color: #a020f0;">import</span> e_loc <span style="color: #a020f0;">from</span> hydrogen <span style="color: #a020f0;">import</span> e_loc
<span style="color: #a0522d;">x</span>=np.linspace(-5,5) <span style="color: #a0522d;">x</span>=np.linspace(-5,5)
<span style="color: #a020f0;">def</span> <span style="color: #0000ff;">make_array</span>(a):
<span style="color: #a0522d;">y</span>=np.array([ e_loc(a, np.array([t,0.,0.]) ) <span style="color: #a020f0;">for</span> t <span style="color: #a020f0;">in</span> x])
<span style="color: #a020f0;">return</span> y
plt.figure(figsize=(10,5)) plt.figure(figsize=(10,5))
# <span style="color: #b22222;">TODO</span>
plt.tight_layout()
plt.legend()
plt.savefig(<span style="color: #8b2252;">"plot_py.png"</span>)
</pre>
</div>
</div>
</div>
<div id="outline-container-org29f9cc7" class="outline-5">
<h5 id="org29f9cc7"><span class="section-number-5">2.2.1.2</span> Python&#xa0;&#xa0;&#xa0;<span class="tag"><span class="solution">solution</span></span></h5>
<div class="outline-text-5" id="text-2-2-1-2">
<div class="org-src-container">
<pre class="src src-python"><span style="color: #a020f0;">import</span> numpy <span style="color: #a020f0;">as</span> np
<span style="color: #a020f0;">import</span> matplotlib.pyplot <span style="color: #a020f0;">as</span> plt
<span style="color: #a020f0;">from</span> hydrogen <span style="color: #a020f0;">import</span> e_loc
<span style="color: #a0522d;">x</span>=np.linspace(-5,5)
plt.figure(figsize=(10,5))
<span style="color: #a020f0;">for</span> a <span style="color: #a020f0;">in</span> [0.1, 0.2, 0.5, 1., 1.5, 2.]: <span style="color: #a020f0;">for</span> a <span style="color: #a020f0;">in</span> [0.1, 0.2, 0.5, 1., 1.5, 2.]:
<span style="color: #a0522d;">y</span> = make_array(a) <span style="color: #a0522d;">y</span>=np.array([ e_loc(a, np.array([t,0.,0.]) ) <span style="color: #a020f0;">for</span> t <span style="color: #a020f0;">in</span> x])
plt.plot(x,y,label=f<span style="color: #8b2252;">"a={a}"</span>) plt.plot(x,y,label=f<span style="color: #8b2252;">"a={a}"</span>)
plt.tight_layout() plt.tight_layout()
plt.legend() plt.legend()
plt.savefig(<span style="color: #8b2252;">"plot_py.png"</span>) plt.savefig(<span style="color: #8b2252;">"plot_py.png"</span>)
</pre> </pre>
</div> </div>
@ -703,12 +895,63 @@ plt.savefig(<span style="color: #8b2252;">"plot_py.png"</span>)
<p><img src="./plot_py.png" alt="plot_py.png" /> <p><img src="./plot_py.png" alt="plot_py.png" />
</p> </p>
</div> </div>
</div>
</div>
<div id="outline-container-org384586c" class="outline-5">
<h5 id="org384586c"><span class="section-number-5">2.2.1.3</span> Fortran</h5>
<div class="outline-text-5" id="text-2-2-1-3">
<div class="org-src-container">
<pre class="src src-f90"><span style="color: #a020f0;">program</span> <span style="color: #0000ff;">plot</span>
<span style="color: #a020f0;">implicit</span> <span style="color: #228b22;">none</span>
<span style="color: #228b22;">double precision</span>, <span style="color: #a020f0;">external</span> ::<span style="color: #a0522d;"> e_loc</span>
<span style="color: #228b22;">double precision</span> ::<span style="color: #a0522d;"> x(50), dx</span>
<span style="color: #228b22;">integer</span> ::<span style="color: #a0522d;"> i, j</span>
dx = 10.d0/(<span style="color: #a020f0;">size</span>(x)-1)
<span style="color: #a020f0;">do</span> i=1,<span style="color: #a020f0;">size</span>(x)
x(i) = -5.d0 + (i-1)*dx
<span style="color: #a020f0;">end do</span>
! <span style="color: #b22222;">TODO</span>
<span style="color: #a020f0;">end program</span> <span style="color: #0000ff;">plot</span>
</pre>
</div>
<p> <p>
<b>Fortran</b> To compile and run:
</p> </p>
<div class="org-src-container">
<pre class="src src-sh">gfortran hydrogen.f90 plot_hydrogen.f90 -o plot_hydrogen
./plot_hydrogen &gt; data
</pre>
</div>
<p>
To plot the data using gnuplot:
</p>
<div class="org-src-container">
<pre class="src src-gnuplot">set grid
set xrange [-5:5]
set yrange [-2:1]
plot './data' index 0 using 1:2 with lines title 'a=0.1', \
'./data' index 1 using 1:2 with lines title 'a=0.2', \
'./data' index 2 using 1:2 with lines title 'a=0.5', \
'./data' index 3 using 1:2 with lines title 'a=1.0', \
'./data' index 4 using 1:2 with lines title 'a=1.5', \
'./data' index 5 using 1:2 with lines title 'a=2.0'
</pre>
</div>
</div>
</div>
<div id="outline-container-orgcbf1d0a" class="outline-5">
<h5 id="orgcbf1d0a"><span class="section-number-5">2.2.1.4</span> Fortran&#xa0;&#xa0;&#xa0;<span class="tag"><span class="solution">solution</span></span></h5>
<div class="outline-text-5" id="text-2-2-1-4">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-f90"><span style="color: #a020f0;">program</span> <span style="color: #0000ff;">plot</span> <pre class="src src-f90"><span style="color: #a020f0;">program</span> <span style="color: #0000ff;">plot</span>
<span style="color: #a020f0;">implicit</span> <span style="color: #228b22;">none</span> <span style="color: #a020f0;">implicit</span> <span style="color: #228b22;">none</span>
@ -776,9 +1019,10 @@ plot './data' index 0 using 1:2 with lines title 'a=0.1', \
</div> </div>
</div> </div>
</div> </div>
</div>
<div id="outline-container-org44b3a72" class="outline-3"> <div id="outline-container-org14675c5" class="outline-3">
<h3 id="org44b3a72"><span class="section-number-3">2.3</span> Numerical estimation of the energy</h3> <h3 id="org14675c5"><span class="section-number-3">2.3</span> <span class="todo TODO">TODO</span> Numerical estimation of the energy</h3>
<div class="outline-text-3" id="text-2-3"> <div class="outline-text-3" id="text-2-3">
<p> <p>
If the space is discretized in small volume elements \(\mathbf{r}_i\) If the space is discretized in small volume elements \(\mathbf{r}_i\)
@ -808,8 +1052,8 @@ The energy is biased because:
</div> </div>
<div id="outline-container-org79a67a3" class="outline-4"> <div id="outline-container-org78d5b86" class="outline-4">
<h4 id="org79a67a3"><span class="section-number-4">2.3.1</span> Exercise</h4> <h4 id="org78d5b86"><span class="section-number-4">2.3.1</span> Exercise</h4>
<div class="outline-text-4" id="text-2-3-1"> <div class="outline-text-4" id="text-2-3-1">
<div class="exercise"> <div class="exercise">
<p> <p>
@ -919,8 +1163,8 @@ a = 2.0000000000000000 E = -8.0869806678448772E-002
</div> </div>
</div> </div>
<div id="outline-container-org5ce3db7" class="outline-3"> <div id="outline-container-org55ef334" class="outline-3">
<h3 id="org5ce3db7"><span class="section-number-3">2.4</span> Variance of the local energy</h3> <h3 id="org55ef334"><span class="section-number-3">2.4</span> <span class="todo TODO">TODO</span> Variance of the local energy</h3>
<div class="outline-text-3" id="text-2-4"> <div class="outline-text-3" id="text-2-4">
<p> <p>
The variance of the local energy is a functional of \(\Psi\) The variance of the local energy is a functional of \(\Psi\)
@ -947,8 +1191,8 @@ energy can be used as a measure of the quality of a wave function.
</p> </p>
</div> </div>
<div id="outline-container-org24a3307" class="outline-4"> <div id="outline-container-orgaa6b6de" class="outline-4">
<h4 id="org24a3307"><span class="section-number-4">2.4.1</span> Exercise (optional)</h4> <h4 id="orgaa6b6de"><span class="section-number-4">2.4.1</span> Exercise (optional)</h4>
<div class="outline-text-4" id="text-2-4-1"> <div class="outline-text-4" id="text-2-4-1">
<div class="exercise"> <div class="exercise">
<p> <p>
@ -960,8 +1204,8 @@ Prove that :
</div> </div>
</div> </div>
<div id="outline-container-orgd7f29f6" class="outline-4"> <div id="outline-container-orgaedf8c6" class="outline-4">
<h4 id="orgd7f29f6"><span class="section-number-4">2.4.2</span> Exercise</h4> <h4 id="orgaedf8c6"><span class="section-number-4">2.4.2</span> Exercise</h4>
<div class="outline-text-4" id="text-2-4-2"> <div class="outline-text-4" id="text-2-4-2">
<div class="exercise"> <div class="exercise">
<p> <p>
@ -1085,8 +1329,8 @@ a = 2.0000000000000000 E = -8.0869806678448772E-002 s2 = 1.806881
</div> </div>
<div id="outline-container-org7af3dcd" class="outline-2"> <div id="outline-container-orgf0dcb22" class="outline-2">
<h2 id="org7af3dcd"><span class="section-number-2">3</span> Variational Monte Carlo</h2> <h2 id="orgf0dcb22"><span class="section-number-2">3</span> <span class="todo TODO">TODO</span> Variational Monte Carlo</h2>
<div class="outline-text-2" id="text-3"> <div class="outline-text-2" id="text-3">
<p> <p>
Numerical integration with deterministic methods is very efficient Numerical integration with deterministic methods is very efficient
@ -1102,8 +1346,8 @@ interval.
</p> </p>
</div> </div>
<div id="outline-container-orgda6239f" class="outline-3"> <div id="outline-container-org06145c7" class="outline-3">
<h3 id="orgda6239f"><span class="section-number-3">3.1</span> Computation of the statistical error</h3> <h3 id="org06145c7"><span class="section-number-3">3.1</span> <span class="todo TODO">TODO</span> Computation of the statistical error</h3>
<div class="outline-text-3" id="text-3-1"> <div class="outline-text-3" id="text-3-1">
<p> <p>
To compute the statistical error, you need to perform \(M\) To compute the statistical error, you need to perform \(M\)
@ -1143,8 +1387,8 @@ And the confidence interval is given by
</p> </p>
</div> </div>
<div id="outline-container-orgcbf936c" class="outline-4"> <div id="outline-container-orgeb56d99" class="outline-4">
<h4 id="orgcbf936c"><span class="section-number-4">3.1.1</span> Exercise</h4> <h4 id="orgeb56d99"><span class="section-number-4">3.1.1</span> Exercise</h4>
<div class="outline-text-4" id="text-3-1-1"> <div class="outline-text-4" id="text-3-1-1">
<div class="exercise"> <div class="exercise">
<p> <p>
@ -1193,8 +1437,8 @@ input array.
</div> </div>
</div> </div>
<div id="outline-container-orga993fd0" class="outline-3"> <div id="outline-container-orgaaa817a" class="outline-3">
<h3 id="orga993fd0"><span class="section-number-3">3.2</span> Uniform sampling in the box</h3> <h3 id="orgaaa817a"><span class="section-number-3">3.2</span> <span class="todo TODO">TODO</span> Uniform sampling in the box</h3>
<div class="outline-text-3" id="text-3-2"> <div class="outline-text-3" id="text-3-2">
<p> <p>
We will now do our first Monte Carlo calculation to compute the We will now do our first Monte Carlo calculation to compute the
@ -1228,8 +1472,8 @@ statistical error.
</p> </p>
</div> </div>
<div id="outline-container-org23e48ff" class="outline-4"> <div id="outline-container-orged433aa" class="outline-4">
<h4 id="org23e48ff"><span class="section-number-4">3.2.1</span> Exercise</h4> <h4 id="orged433aa"><span class="section-number-4">3.2.1</span> Exercise</h4>
<div class="outline-text-4" id="text-3-2-1"> <div class="outline-text-4" id="text-3-2-1">
<div class="exercise"> <div class="exercise">
<p> <p>
@ -1339,8 +1583,8 @@ E = -0.49588321986667677 +/- 7.1758863546737969E-004
</div> </div>
</div> </div>
<div id="outline-container-org329d352" class="outline-3"> <div id="outline-container-org74daf7f" class="outline-3">
<h3 id="org329d352"><span class="section-number-3">3.3</span> Metropolis sampling with \(\Psi^2\)</h3> <h3 id="org74daf7f"><span class="section-number-3">3.3</span> <span class="todo TODO">TODO</span> Metropolis sampling with \(\Psi^2\)</h3>
<div class="outline-text-3" id="text-3-3"> <div class="outline-text-3" id="text-3-3">
<p> <p>
We will now use the square of the wave function to sample random We will now use the square of the wave function to sample random
@ -1427,8 +1671,8 @@ step such that the acceptance rate is close to 0.5 is a good compromise.
</div> </div>
<div id="outline-container-orgb2081b0" class="outline-4"> <div id="outline-container-org4a15485" class="outline-4">
<h4 id="orgb2081b0"><span class="section-number-4">3.3.1</span> Exercise</h4> <h4 id="org4a15485"><span class="section-number-4">3.3.1</span> Exercise</h4>
<div class="outline-text-4" id="text-3-3-1"> <div class="outline-text-4" id="text-3-3-1">
<div class="exercise"> <div class="exercise">
<p> <p>
@ -1558,8 +1802,8 @@ A = 0.51737800000000000 +/- 4.1827406733181444E-004
</div> </div>
</div> </div>
<div id="outline-container-org229089b" class="outline-3"> <div id="outline-container-orge1c83d1" class="outline-3">
<h3 id="org229089b"><span class="section-number-3">3.4</span> Gaussian random number generator</h3> <h3 id="orge1c83d1"><span class="section-number-3">3.4</span> <span class="todo TODO">TODO</span> Gaussian random number generator</h3>
<div class="outline-text-3" id="text-3-4"> <div class="outline-text-3" id="text-3-4">
<p> <p>
To obtain Gaussian-distributed random numbers, you can apply the To obtain Gaussian-distributed random numbers, you can apply the
@ -1613,8 +1857,8 @@ following sections.
</div> </div>
</div> </div>
<div id="outline-container-orgeb02476" class="outline-3"> <div id="outline-container-org9b85061" class="outline-3">
<h3 id="orgeb02476"><span class="section-number-3">3.5</span> Generalized Metropolis algorithm</h3> <h3 id="org9b85061"><span class="section-number-3">3.5</span> <span class="todo TODO">TODO</span> Generalized Metropolis algorithm</h3>
<div class="outline-text-3" id="text-3-5"> <div class="outline-text-3" id="text-3-5">
<p> <p>
One can use more efficient numerical schemes to move the electrons. One can use more efficient numerical schemes to move the electrons.
@ -1713,8 +1957,8 @@ The transition probability becomes:
</div> </div>
<div id="outline-container-org8dc39b9" class="outline-4"> <div id="outline-container-org865407b" class="outline-4">
<h4 id="org8dc39b9"><span class="section-number-4">3.5.1</span> Exercise 1</h4> <h4 id="org865407b"><span class="section-number-4">3.5.1</span> Exercise 1</h4>
<div class="outline-text-4" id="text-3-5-1"> <div class="outline-text-4" id="text-3-5-1">
<div class="exercise"> <div class="exercise">
<p> <p>
@ -1750,8 +1994,8 @@ Write a function to compute the drift vector \(\frac{\nabla \Psi(\mathbf{r})}{\P
</div> </div>
</div> </div>
<div id="outline-container-org506c4e5" class="outline-4"> <div id="outline-container-org26350e3" class="outline-4">
<h4 id="org506c4e5"><span class="section-number-4">3.5.2</span> Exercise 2</h4> <h4 id="org26350e3"><span class="section-number-4">3.5.2</span> Exercise 2</h4>
<div class="outline-text-4" id="text-3-5-2"> <div class="outline-text-4" id="text-3-5-2">
<div class="exercise"> <div class="exercise">
<p> <p>
@ -1794,8 +2038,8 @@ Modify the previous program to introduce the drifted diffusion scheme.
<span style="color: #a0522d;">d_old</span> = d_new <span style="color: #a0522d;">d_old</span> = d_new
<span style="color: #a0522d;">d2_old</span> = d2_new <span style="color: #a0522d;">d2_old</span> = d2_new
<span style="color: #a0522d;">psi_old</span> = psi_new <span style="color: #a0522d;">psi_old</span> = psi_new
<span style="color: #a0522d;">N</span> += 1. <span style="color: #a0522d;">N</span> += 1.
<span style="color: #a0522d;">E</span> += e_loc(a,r_old) <span style="color: #a0522d;">E</span> += e_loc(a,r_old)
<span style="color: #a020f0;">return</span> E/N, accep_rate/N <span style="color: #a020f0;">return</span> E/N, accep_rate/N
@ -1903,18 +2147,18 @@ A = 0.78861366666666655 +/- 3.5096729498002445E-004
</div> </div>
</div> </div>
<div id="outline-container-org3724797" class="outline-2"> <div id="outline-container-org726c101" class="outline-2">
<h2 id="org3724797"><span class="section-number-2">4</span> <span class="todo TODO">TODO</span> Diffusion Monte Carlo</h2> <h2 id="org726c101"><span class="section-number-2">4</span> <span class="todo TODO">TODO</span> Diffusion Monte Carlo</h2>
<div class="outline-text-2" id="text-4"> <div class="outline-text-2" id="text-4">
</div> </div>
<div id="outline-container-orgde9e678" class="outline-3"> <div id="outline-container-org91f9b86" class="outline-3">
<h3 id="orgde9e678"><span class="section-number-3">4.1</span> Hydrogen atom</h3> <h3 id="org91f9b86"><span class="section-number-3">4.1</span> <span class="todo TODO">TODO</span> Hydrogen atom</h3>
<div class="outline-text-3" id="text-4-1"> <div class="outline-text-3" id="text-4-1">
</div> </div>
<ol class="org-ol"> <div id="outline-container-orgacbb363" class="outline-4">
<li><a id="org405cbb7"></a>Exercise<br /> <h4 id="orgacbb363"><span class="section-number-4">4.1.1</span> Exercise</h4>
<div class="outline-text-5" id="text-4-1-0-1"> <div class="outline-text-4" id="text-4-1-1">
<div class="exercise"> <div class="exercise">
<p> <p>
Modify the Metropolis VMC program to introduce the PDMC weight. Modify the Metropolis VMC program to introduce the PDMC weight.
@ -2067,13 +2311,12 @@ A = 0.78861366666666655 +/- 3.5096729498002445E-004
</pre> </pre>
</div> </div>
</li> </div>
</ol>
</div> </div>
<div id="outline-container-orge0b3a26" class="outline-3"> <div id="outline-container-org16ed9e8" class="outline-3">
<h3 id="orge0b3a26"><span class="section-number-3">4.2</span> Dihydrogen</h3> <h3 id="org16ed9e8"><span class="section-number-3">4.2</span> <span class="todo TODO">TODO</span> Dihydrogen</h3>
<div class="outline-text-3" id="text-4-2"> <div class="outline-text-3" id="text-4-2">
<p> <p>
We will now consider the H<sub>2</sub> molecule in a minimal basis composed of the We will now consider the H<sub>2</sub> molecule in a minimal basis composed of the
@ -2095,7 +2338,7 @@ the nuclei.
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: Anthony Scemama, Claudia Filippi</p> <p class="author">Author: Anthony Scemama, Claudia Filippi</p>
<p class="date">Created: 2021-01-20 Wed 20:19</p> <p class="date">Created: 2021-01-21 Thu 22:25</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p> <p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div> </div>
</body> </body>