Added style
This commit is contained in:
parent
cb6ceeb797
commit
277e243545
287
QMC.org
287
QMC.org
@ -4,9 +4,7 @@
|
||||
# SETUPFILE: https://fniessen.github.io/org-html-themes/org/theme-bigblow.setup
|
||||
#+STARTUP: latexpreview
|
||||
|
||||
#+HTML_HEAD: <link rel="stylesheet" title="Standard" href="https://orgmode.org/worg/style/worg.css" type="text/css" />
|
||||
#+HTML_HEAD: <link rel="alternate stylesheet" title="Zenburn" href="https://orgmode.org/worg/style/worg-zenburn.css" type="text/css" />
|
||||
#+HTML_HEAD: <link rel="alternate stylesheet" title="Classic" href="https://orgmode.org/worg/style/worg-classic.css" type="text/css" />
|
||||
#+HTML_HEAD: <link rel="stylesheet" title="Standard" href="worg.css" type="text/css" />
|
||||
|
||||
|
||||
* Introduction
|
||||
@ -30,15 +28,12 @@
|
||||
$\Psi : \mathbb{R}^{3N} \rightarrow \mathbb{R}$. In addition, $\Psi$
|
||||
is defined everywhere, continuous and infinitely differentiable.
|
||||
|
||||
** Python
|
||||
|
||||
** Fortran
|
||||
|
||||
- 1.d0
|
||||
- external
|
||||
- r(:) = 0.d0
|
||||
- a = (/ 0.1, 0.2 /)
|
||||
- size(x)
|
||||
*Note*
|
||||
#+begin_important
|
||||
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
|
||||
interpreted as a single precision value
|
||||
#+end_important
|
||||
|
||||
|
||||
* Numerical evaluation of the energy
|
||||
@ -63,8 +58,8 @@
|
||||
E_L(\mathbf{r}) = \frac{\hat{H} \Psi(\mathbf{r})}{\Psi(\mathbf{r})},
|
||||
$$
|
||||
|
||||
is constant.
|
||||
|
||||
is constant. We will also see that when $a \ne 1$ the local energy
|
||||
is not constant, so $\hat{H} \Psi \ne E \Psi$.
|
||||
|
||||
|
||||
The probabilistic /expected value/ of an arbitrary function $f(x)$
|
||||
@ -79,16 +74,16 @@
|
||||
|
||||
|
||||
The electronic energy of a system is the expectation value of the
|
||||
local energy $E(\mathbf{r})$ with respect to the $3N$-dimensional
|
||||
local energy $E(\mathbf{r})$ with respect to the 3N-dimensional
|
||||
electron density given by the square of the wave function:
|
||||
|
||||
\begin{eqnarray}
|
||||
E & = & \frac{\langle \Psi| \hat{H} | \Psi\rangle}{\langle \Psi |\Psi \rangle} \\
|
||||
& = & \frac{\int \Psi(\mathbf{r})\, \hat{H} \Psi(\mathbf{r})\, d\mathbf{r}}{\int \left[\Psi(\mathbf{r}) \right]^2 d\mathbf{r}} \\
|
||||
& = & \frac{\int \left[\Psi(\mathbf{r})\right]^2\, \frac{\hat{H} \Psi(\mathbf{r})}{\Psi(\mathbf{r})}\,d\mathbf{r}}{\int \left[\Psi(\mathbf{r}) \right]^2 d\mathbf{r}} \\
|
||||
& = & \frac{\int \left[\Psi(\mathbf{r})\right]^2\, E_L(\mathbf{r})\,d\mathbf{r}}{\int \left[\Psi(\mathbf{r}) \right]^2 d\mathbf{r}}
|
||||
\begin{eqnarray*}
|
||||
E & = & \frac{\langle \Psi| \hat{H} | \Psi\rangle}{\langle \Psi |\Psi \rangle}
|
||||
= \frac{\int \Psi(\mathbf{r})\, \hat{H} \Psi(\mathbf{r})\, d\mathbf{r}}{\int \left[\Psi(\mathbf{r}) \right]^2 d\mathbf{r}} \\
|
||||
& = & \frac{\int \left[\Psi(\mathbf{r})\right]^2\, \frac{\hat{H} \Psi(\mathbf{r})}{\Psi(\mathbf{r})}\,d\mathbf{r}}{\int \left[\Psi(\mathbf{r}) \right]^2 d\mathbf{r}}
|
||||
= \frac{\int \left[\Psi(\mathbf{r})\right]^2\, E_L(\mathbf{r})\,d\mathbf{r}}{\int \left[\Psi(\mathbf{r}) \right]^2 d\mathbf{r}}
|
||||
= \langle E_L \rangle_{\Psi^2}
|
||||
\end{eqnarray}
|
||||
\end{eqnarray*}
|
||||
|
||||
** Local energy
|
||||
:PROPERTIES:
|
||||
@ -99,67 +94,68 @@
|
||||
The function accepts a 3-dimensional vector =r= as input arguments
|
||||
and returns the potential.
|
||||
|
||||
$\mathbf{r}=\sqrt{x^2 + y^2 + z^2}$, so
|
||||
$\mathbf{r}=\left( \begin{array}{c} x \\ y\\ z\end{array} \right)$, so
|
||||
$$
|
||||
V(x,y,z) = -\frac{1}{\sqrt{x^2 + y^2 + z^2}}
|
||||
V(\mathbf{r}) = -\frac{1}{\sqrt{x^2 + y^2 + z^2}}
|
||||
$$
|
||||
|
||||
#+BEGIN_SRC python :results none
|
||||
*Python*
|
||||
#+BEGIN_SRC python :results none
|
||||
import numpy as np
|
||||
|
||||
def potential(r):
|
||||
return -1. / np.sqrt(np.dot(r,r))
|
||||
#+END_SRC
|
||||
#+END_SRC
|
||||
|
||||
|
||||
#+BEGIN_SRC f90
|
||||
*Fortran*
|
||||
#+BEGIN_SRC f90
|
||||
double precision function potential(r)
|
||||
implicit none
|
||||
double precision, intent(in) :: r(3)
|
||||
potential = -1.d0 / dsqrt( r(1)*r(1) + r(2)*r(2) + r(3)*r(3) )
|
||||
end function potential
|
||||
#+END_SRC
|
||||
#+END_SRC
|
||||
|
||||
*** Write a function which computes the wave function at $\mathbf{r}$
|
||||
The function accepts a scalar =a= and a 3-dimensional vector =r= as
|
||||
input arguments, and returns a scalar.
|
||||
|
||||
#+BEGIN_SRC python :results none
|
||||
|
||||
*Python*
|
||||
#+BEGIN_SRC python :results none
|
||||
def psi(a, r):
|
||||
return np.exp(-a*np.sqrt(np.dot(r,r)))
|
||||
#+END_SRC
|
||||
#+END_SRC
|
||||
|
||||
#+BEGIN_SRC f90
|
||||
*Fortran*
|
||||
#+BEGIN_SRC f90
|
||||
double precision function psi(a, r)
|
||||
implicit none
|
||||
double precision, intent(in) :: a, r(3)
|
||||
psi = dexp(-a * dsqrt( r(1)*r(1) + r(2)*r(2) + r(3)*r(3) ))
|
||||
end function psi
|
||||
#+END_SRC
|
||||
#+END_SRC
|
||||
|
||||
*** Write a function which computes the local kinetic energy at $\mathbf{r}$
|
||||
The function accepts =a= and =r= as input arguments and returns the
|
||||
local kinetic energy.
|
||||
|
||||
The local kinetic energy is defined as $$-\frac{1}{2}\frac{\Delta \Psi}{\Psi}$$.
|
||||
|
||||
$$
|
||||
\Psi(x,y,z) = \exp(-a\,\sqrt{x^2 + y^2 + z^2}).
|
||||
$$
|
||||
The local kinetic energy is defined as $$-\frac{1}{2}\frac{\Delta \Psi}{\Psi}.$$
|
||||
|
||||
We differentiate $\Psi$ with respect to $x$:
|
||||
|
||||
$$
|
||||
\frac{\partial \Psi}{\partial x}
|
||||
= \frac{\partial \Psi}{\partial r} \frac{\partial r}{\partial x}
|
||||
= - \frac{a\,x}{|\mathbf{r}|} \Psi(x,y,z)
|
||||
$$
|
||||
\[\Psi(\mathbf{r}) = \exp(-a\,|\mathbf{r}|) \]
|
||||
\[\frac{\partial \Psi}{\partial x}
|
||||
= \frac{\partial \Psi}{\partial |\mathbf{r}|} \frac{\partial |\mathbf{r}|}{\partial x}
|
||||
= - \frac{a\,x}{|\mathbf{r}|} \Psi(\mathbf{r}) \]
|
||||
|
||||
and we differentiate a second time:
|
||||
|
||||
$$
|
||||
\frac{\partial^2 \Psi}{\partial x^2} =
|
||||
\left( \frac{a^2\,x^2}{|\mathbf{r}|^2} - \frac{a(y^2+z^2)}{|\mathbf{r}|^{3}} \right) \Psi(x,y,z).
|
||||
\left( \frac{a^2\,x^2}{|\mathbf{r}|^2} -
|
||||
\frac{a(y^2+z^2)}{|\mathbf{r}|^{3}} \right) \Psi(\mathbf{r}).
|
||||
$$
|
||||
|
||||
The Laplacian operator $\Delta = \frac{\partial^2}{\partial x^2} +
|
||||
@ -167,49 +163,54 @@ end function psi
|
||||
applied to the wave function gives:
|
||||
|
||||
$$
|
||||
\Delta \Psi (x,y,z) = \left(a^2 - \frac{2a}{\mathbf{|r|}} \right) \Psi(x,y,z)
|
||||
\Delta \Psi (\mathbf{r}) = \left(a^2 - \frac{2a}{\mathbf{|r|}} \right) \Psi(\mathbf{r})
|
||||
$$
|
||||
|
||||
So the local kinetic energy is
|
||||
$$
|
||||
-\frac{1}{2} \frac{\Delta \Psi}{\Psi} (x,y,z) = -\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)
|
||||
$$
|
||||
|
||||
#+BEGIN_SRC python :results none
|
||||
*Python*
|
||||
#+BEGIN_SRC python :results none
|
||||
def kinetic(a,r):
|
||||
return -0.5 * (a**2 - (2.*a)/np.sqrt(np.dot(r,r)))
|
||||
#+END_SRC
|
||||
#+END_SRC
|
||||
|
||||
#+BEGIN_SRC f90
|
||||
*Fortran*
|
||||
#+BEGIN_SRC f90
|
||||
double precision function kinetic(a,r)
|
||||
implicit none
|
||||
double precision, intent(in) :: a, r(3)
|
||||
kinetic = -0.5d0 * (a*a - (2.d0*a) / &
|
||||
dsqrt( r(1)*r(1) + r(2)*r(2) + r(3)*r(3) ) )
|
||||
end function kinetic
|
||||
#+END_SRC
|
||||
#+END_SRC
|
||||
|
||||
*** Write a function which computes the local energy at $\mathbf{r}$
|
||||
The function accepts =x,y,z= as input arguments and returns the
|
||||
local energy.
|
||||
|
||||
$$
|
||||
E_L(x,y,z) = -\frac{1}{2} \frac{\Delta \Psi}{\Psi} (x,y,z) + V(x,y,z)
|
||||
E_L(\mathbf{r}) = -\frac{1}{2} \frac{\Delta \Psi}{\Psi} (\mathbf{r}) + V(\mathbf{r})
|
||||
$$
|
||||
|
||||
#+BEGIN_SRC python :results none
|
||||
|
||||
*Python*
|
||||
#+BEGIN_SRC python :results none
|
||||
def e_loc(a,r):
|
||||
return kinetic(a,r) + potential(r)
|
||||
#+END_SRC
|
||||
#+END_SRC
|
||||
|
||||
#+BEGIN_SRC f90
|
||||
*Fortran*
|
||||
#+BEGIN_SRC f90
|
||||
double precision function e_loc(a,r)
|
||||
implicit none
|
||||
double precision, intent(in) :: a, r(3)
|
||||
double precision, external :: kinetic, potential
|
||||
e_loc = kinetic(a,r) + potential(r)
|
||||
end function e_loc
|
||||
#+END_SRC
|
||||
#+END_SRC
|
||||
|
||||
** Plot of the local energy along the $x$ axis
|
||||
:PROPERTIES:
|
||||
@ -220,6 +221,7 @@ end function e_loc
|
||||
For multiple values of $a$ (0.1, 0.2, 0.5, 1., 1.5, 2.), plot the
|
||||
local energy along the $x$ axis.
|
||||
|
||||
*Python*
|
||||
#+BEGIN_SRC python :results none
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
@ -249,6 +251,8 @@ plt.savefig("plot_py.png")
|
||||
[[./plot_py.png]]
|
||||
|
||||
|
||||
|
||||
*Fortran*
|
||||
#+begin_src f90
|
||||
program plot
|
||||
implicit none
|
||||
@ -289,7 +293,7 @@ gfortran hydrogen.f90 plot_hydrogen.f90 -o plot_hydrogen
|
||||
|
||||
#+RESULTS:
|
||||
|
||||
To plot the data using gnuplot"
|
||||
To plot the data using gnuplot:
|
||||
|
||||
#+begin_src gnuplot :file plot.png :exports both
|
||||
set grid
|
||||
@ -312,11 +316,11 @@ plot './data' index 0 using 1:2 with lines title 'a=0.1', \
|
||||
:header-args:f90: :tangle energy_hydrogen.f90
|
||||
:END:
|
||||
|
||||
If the space is discretized in small volume elements $\delta
|
||||
\mathbf{r}$, the expression of \langle E_L \rangle_{\Psi^2}$ becomes
|
||||
a weighted average of the local energy, where the weights are the
|
||||
values of the probability density at $\mathbf{r}$ multiplied
|
||||
by the volume element:
|
||||
If the space is discretized in small volume elements $\mathbf{r}_i$
|
||||
of size $\delta \mathbf{r}$, the expression of $\langle E_L \rangle_{\Psi^2}$
|
||||
becomes a weighted average of the local energy, where the weights
|
||||
are the values of the probability density at $\mathbf{r}_i$
|
||||
multiplied by the volume element:
|
||||
|
||||
$$
|
||||
\langle E \rangle_{\Psi^2} \approx \frac{\sum_i w_i E_L(\mathbf{r}_i)}{\sum_i w_i}, \;\;
|
||||
@ -327,11 +331,14 @@ plot './data' index 0 using 1:2 with lines title 'a=0.1', \
|
||||
energy in a grid of $50\times50\times50$ points in the range
|
||||
$(-5,-5,-5) \le \mathbf{r} \le (5,5,5)$.
|
||||
|
||||
Note: the energy is biased because:
|
||||
#+begin_note
|
||||
The energy is biased because:
|
||||
- The volume elements are not infinitely small (discretization error)
|
||||
- The energy is evaluated only inside the box (incompleteness of the space)
|
||||
#+end_note
|
||||
|
||||
#+BEGIN_SRC python :results none
|
||||
*Python*
|
||||
#+BEGIN_SRC python :results none
|
||||
import numpy as np
|
||||
from hydrogen import e_loc, psi
|
||||
|
||||
@ -356,19 +363,19 @@ for a in [0.1, 0.2, 0.5, 0.9, 1., 1.5, 2.]:
|
||||
E = E / norm
|
||||
print(f"a = {a} \t E = {E}")
|
||||
|
||||
#+end_src
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: a = 0.1 E = -0.24518438948809218
|
||||
: a = 0.2 E = -0.26966057967803525
|
||||
: a = 0.5 E = -0.3856357612517407
|
||||
: a = 0.9 E = -0.49435709786716214
|
||||
: a = 1.0 E = -0.5
|
||||
: a = 1.5 E = -0.39242967082602226
|
||||
: a = 2.0 E = -0.08086980667844901
|
||||
#+RESULTS:
|
||||
: a = 0.1 E = -0.24518438948809218
|
||||
: a = 0.2 E = -0.26966057967803525
|
||||
: a = 0.5 E = -0.3856357612517407
|
||||
: a = 0.9 E = -0.49435709786716214
|
||||
: a = 1.0 E = -0.5
|
||||
: a = 1.5 E = -0.39242967082602226
|
||||
: a = 2.0 E = -0.08086980667844901
|
||||
|
||||
|
||||
#+begin_src f90
|
||||
*Fortran*
|
||||
#+begin_src f90
|
||||
program energy_hydrogen
|
||||
implicit none
|
||||
double precision, external :: e_loc, psi
|
||||
@ -407,22 +414,22 @@ program energy_hydrogen
|
||||
end do
|
||||
|
||||
end program energy_hydrogen
|
||||
#+end_src
|
||||
#+end_src
|
||||
|
||||
To compile the Fortran and run it:
|
||||
To compile the Fortran and run it:
|
||||
|
||||
#+begin_src sh :results output :exports both
|
||||
#+begin_src sh :results output :exports both
|
||||
gfortran hydrogen.f90 energy_hydrogen.f90 -o energy_hydrogen
|
||||
./energy_hydrogen
|
||||
#+end_src
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: a = 0.10000000000000001 E = -0.24518438948809140
|
||||
: a = 0.20000000000000001 E = -0.26966057967803236
|
||||
: a = 0.50000000000000000 E = -0.38563576125173815
|
||||
: a = 1.0000000000000000 E = -0.50000000000000000
|
||||
: a = 1.5000000000000000 E = -0.39242967082602065
|
||||
: a = 2.0000000000000000 E = -8.0869806678448772E-002
|
||||
#+RESULTS:
|
||||
: a = 0.10000000000000001 E = -0.24518438948809140
|
||||
: a = 0.20000000000000001 E = -0.26966057967803236
|
||||
: a = 0.50000000000000000 E = -0.38563576125173815
|
||||
: a = 1.0000000000000000 E = -0.50000000000000000
|
||||
: a = 1.5000000000000000 E = -0.39242967082602065
|
||||
: a = 2.0000000000000000 E = -8.0869806678448772E-002
|
||||
|
||||
** Compute the variance of the local energy
|
||||
:PROPERTIES:
|
||||
@ -446,6 +453,7 @@ gfortran hydrogen.f90 energy_hydrogen.f90 -o energy_hydrogen
|
||||
Compute a numerical estimate of the variance of the local energy
|
||||
in a grid of $50\times50\times50$ points in the range $(-5,-5,-5) \le \mathbf{r} \le (5,5,5)$.
|
||||
|
||||
*Python*
|
||||
#+begin_src python :results none
|
||||
import numpy as np
|
||||
from hydrogen import e_loc, psi
|
||||
@ -469,8 +477,8 @@ for a in [0.1, 0.2, 0.5, 0.9, 1., 1.5, 2.]:
|
||||
El = e_loc(a, r)
|
||||
E += w * El
|
||||
norm += w
|
||||
E = E / norm
|
||||
s2 = 0.
|
||||
E = E / norm
|
||||
s2 = 0.
|
||||
for x in interval:
|
||||
r[0] = x
|
||||
for y in interval:
|
||||
@ -481,8 +489,8 @@ for a in [0.1, 0.2, 0.5, 0.9, 1., 1.5, 2.]:
|
||||
w = w * w * delta
|
||||
El = e_loc(a, r)
|
||||
s2 += w * (El - E)**2
|
||||
s2 = s2 / norm
|
||||
print(f"a = {a} \t E = {E:10.8f} \t \sigma^2 = {s2:10.8f}")
|
||||
s2 = s2 / norm
|
||||
print(f"a = {a} \t E = {E:10.8f} \t \sigma^2 = {s2:10.8f}")
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
@ -494,6 +502,7 @@ for a in [0.1, 0.2, 0.5, 0.9, 1., 1.5, 2.]:
|
||||
: a = 1.5 E = -0.39242967 \sigma^2 = 0.31449671
|
||||
: a = 2.0 E = -0.08086981 \sigma^2 = 1.80688143
|
||||
|
||||
*Fortran*
|
||||
#+begin_src f90
|
||||
program variance_hydrogen
|
||||
implicit none
|
||||
@ -523,7 +532,6 @@ program variance_hydrogen
|
||||
r(3) = x(l)
|
||||
w = psi(a(j),r)
|
||||
w = w * w * delta
|
||||
|
||||
energy = energy + w * e_loc(a(j), r)
|
||||
norm = norm + w
|
||||
end do
|
||||
@ -541,7 +549,6 @@ program variance_hydrogen
|
||||
r(3) = x(l)
|
||||
w = psi(a(j),r)
|
||||
w = w * w * delta
|
||||
|
||||
s2 = s2 + w * ( e_loc(a(j), r) - energy )**2
|
||||
norm = norm + w
|
||||
end do
|
||||
@ -573,11 +580,9 @@ gfortran hydrogen.f90 variance_hydrogen.f90 -o variance_hydrogen
|
||||
* Variational Monte Carlo
|
||||
|
||||
Numerical integration with deterministic methods is very efficient
|
||||
in low dimensions. When the number of dimensions becomes larger than
|
||||
Instead of computing the average energy as a numerical integration
|
||||
on a grid, we will do a Monte Carlo sampling, which is an extremely
|
||||
efficient method to compute integrals when the number of dimensions is
|
||||
large.
|
||||
in low dimensions. When the number of dimensions becomes large,
|
||||
instead of computing the average energy as a numerical integration
|
||||
on a grid, it is usually more efficient to do a Monte Carlo sampling.
|
||||
|
||||
Moreover, a Monte Carlo sampling will alow us to remove the bias due
|
||||
to the discretization of space, and compute a statistical confidence
|
||||
@ -615,6 +620,7 @@ gfortran hydrogen.f90 variance_hydrogen.f90 -o variance_hydrogen
|
||||
Write a function returning the average and statistical error of an
|
||||
input array.
|
||||
|
||||
*Python*
|
||||
#+BEGIN_SRC python :results none
|
||||
from math import sqrt
|
||||
def ave_error(arr):
|
||||
@ -625,6 +631,7 @@ def ave_error(arr):
|
||||
return (average, sqrt(variance/M))
|
||||
#+END_SRC
|
||||
|
||||
*Fortran*
|
||||
#+BEGIN_SRC f90
|
||||
subroutine ave_error(x,n,ave,err)
|
||||
implicit none
|
||||
@ -667,6 +674,7 @@ end subroutine ave_error
|
||||
|
||||
Compute the energy of the wave function with $a=0.9$.
|
||||
|
||||
*Python*
|
||||
#+BEGIN_SRC python :results output
|
||||
from hydrogen import *
|
||||
from qmc_stats import *
|
||||
@ -692,6 +700,7 @@ print(f"E = {E} +/- {deltaE}")
|
||||
#+RESULTS:
|
||||
: E = -0.4956255109300764 +/- 0.0007082875482711226
|
||||
|
||||
*Fortran*
|
||||
#+BEGIN_SRC f90
|
||||
subroutine uniform_montecarlo(a,nmax,energy)
|
||||
implicit none
|
||||
@ -764,6 +773,7 @@ gfortran hydrogen.f90 qmc_stats.f90 qmc_uniform.f90 -o qmc_uniform
|
||||
z_2 &=& \sqrt{-2 \ln u_1} \sin(2 \pi u_2)
|
||||
\end{eqnarray*}
|
||||
|
||||
*Fortran*
|
||||
#+BEGIN_SRC f90 :tangle qmc_stats.f90
|
||||
subroutine random_gauss(z,n)
|
||||
implicit none
|
||||
@ -813,6 +823,7 @@ end subroutine random_gauss
|
||||
w_i = \frac{\left[\Psi(\mathbf{r}_i)\right]^2}{P(\mathbf{r}_i)} \delta \mathbf{r}
|
||||
$$
|
||||
|
||||
*Python*
|
||||
#+BEGIN_SRC python :results output
|
||||
from hydrogen import *
|
||||
from qmc_stats import *
|
||||
@ -843,6 +854,7 @@ print(f"E = {E} +/- {deltaE}")
|
||||
: E = -0.49507506093129827 +/- 0.00014164037765553668
|
||||
|
||||
|
||||
*Fortran*
|
||||
#+BEGIN_SRC f90
|
||||
double precision function gaussian(r)
|
||||
implicit none
|
||||
@ -994,12 +1006,14 @@ gfortran hydrogen.f90 qmc_stats.f90 qmc_gaussian.f90 -o qmc_gaussian
|
||||
|
||||
First, write a function to compute the drift vector $\frac{\nabla \Psi(\mathbf{r})}{\Psi(\mathbf{r})}$.
|
||||
|
||||
*Python*
|
||||
#+BEGIN_SRC python
|
||||
def drift(a,r):
|
||||
ar_inv = -a/np.sqrt(np.dot(r,r))
|
||||
return r * ar_inv
|
||||
#+END_SRC
|
||||
|
||||
*Fortran*
|
||||
#+BEGIN_SRC f90
|
||||
subroutine drift(a,r,b)
|
||||
implicit none
|
||||
@ -1012,7 +1026,50 @@ end subroutine drift
|
||||
#+END_SRC
|
||||
|
||||
|
||||
Now we can write the Monte Carlo sampling
|
||||
Now we can write the Monte Carlo sampling:
|
||||
|
||||
*Python*
|
||||
#+BEGIN_SRC python
|
||||
def MonteCarlo(a,tau,nmax):
|
||||
E = 0.
|
||||
N = 0.
|
||||
sq_tau = sqrt(tau)
|
||||
r_old = np.random.normal(loc=0., scale=1.0, size=(3))
|
||||
d_old = drift(a,r_old)
|
||||
d2_old = np.dot(d_old,d_old)
|
||||
psi_old = psi(a,r_old)
|
||||
for istep in range(nmax):
|
||||
eta = np.random.normal(loc=0., scale=1.0, size=(3))
|
||||
r_new = r_old + tau * d_old + sq_tau * eta
|
||||
d_new = drift(a,r_new)
|
||||
d2_new = np.dot(d_new,d_new)
|
||||
psi_new = psi(a,r_new)
|
||||
# Metropolis
|
||||
prod = np.dot((d_new + d_old), (r_new - r_old))
|
||||
argexpo = 0.5 * (d2_new - d2_old)*tau + prod
|
||||
q = psi_new / psi_old
|
||||
q = np.exp(-argexpo) * q*q
|
||||
if np.random.uniform() < q:
|
||||
r_old = r_new
|
||||
d_old = d_new
|
||||
d2_old = d2_new
|
||||
psi_old = psi_new
|
||||
N += 1.
|
||||
E += e_loc(a,r_old)
|
||||
return E/N
|
||||
|
||||
|
||||
nmax = 100000
|
||||
tau = 0.1
|
||||
X = [MonteCarlo(a,tau,nmax) for i in range(30)]
|
||||
E, deltaE = ave_error(X)
|
||||
print(f"E = {E} +/- {deltaE}")
|
||||
#+END_SRC
|
||||
|
||||
#+RESULTS:
|
||||
: E = -0.4951783346213532 +/- 0.00022067316984271938
|
||||
|
||||
*Fortran*
|
||||
#+BEGIN_SRC f90
|
||||
subroutine variational_montecarlo(a,nmax,energy)
|
||||
implicit none
|
||||
@ -1061,46 +1118,6 @@ gfortran hydrogen.f90 qmc_stats.f90 vmc.f90 -o vmc
|
||||
./vmc
|
||||
#+end_src
|
||||
|
||||
#+BEGIN_SRC python
|
||||
def MonteCarlo(a,tau,nmax):
|
||||
E = 0.
|
||||
N = 0.
|
||||
sq_tau = sqrt(tau)
|
||||
r_old = np.random.normal(loc=0., scale=1.0, size=(3))
|
||||
d_old = drift(a,r_old)
|
||||
d2_old = np.dot(d_old,d_old)
|
||||
psi_old = psi(a,r_old)
|
||||
for istep in range(nmax):
|
||||
eta = np.random.normal(loc=0., scale=1.0, size=(3))
|
||||
r_new = r_old + tau * d_old + sq_tau * eta
|
||||
d_new = drift(a,r_new)
|
||||
d2_new = np.dot(d_new,d_new)
|
||||
psi_new = psi(a,r_new)
|
||||
# Metropolis
|
||||
prod = np.dot((d_new + d_old), (r_new - r_old))
|
||||
argexpo = 0.5 * (d2_new - d2_old)*tau + prod
|
||||
q = psi_new / psi_old
|
||||
q = np.exp(-argexpo) * q*q
|
||||
if np.random.uniform() < q:
|
||||
r_old = r_new
|
||||
d_old = d_new
|
||||
d2_old = d2_new
|
||||
psi_old = psi_new
|
||||
N += 1.
|
||||
E += e_loc(a,r_old)
|
||||
return E/N
|
||||
|
||||
|
||||
nmax = 100000
|
||||
tau = 0.1
|
||||
X = [MonteCarlo(a,tau,nmax) for i in range(30)]
|
||||
E, deltaE = ave_error(X)
|
||||
print(f"E = {E} +/- {deltaE}")
|
||||
#+END_SRC
|
||||
|
||||
#+RESULTS:
|
||||
: E = -0.4951783346213532 +/- 0.00022067316984271938
|
||||
|
||||
|
||||
* Diffusion Monte Carlo
|
||||
|
||||
|
958
worg.css
Normal file
958
worg.css
Normal file
@ -0,0 +1,958 @@
|
||||
@import url(https://fonts.googleapis.com/css?family=Droid+Sans|Droid+Sans+Mono|Droid+Serif);
|
||||
|
||||
@media all
|
||||
{
|
||||
html {
|
||||
margin: 0;
|
||||
font: .9em/1.6em "Droid Serif", Cambria, Georgia, "DejaVu Serif", serif;
|
||||
background-image: url(/img/org-mode-unicorn-logo-worg.png);
|
||||
background-attachment: fixed;
|
||||
background-position: right bottom;
|
||||
background-repeat: no-repeat;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
body {
|
||||
font-size: 14pt;
|
||||
line-height: 22pt;
|
||||
color: black;
|
||||
margin-top: 0;
|
||||
|
||||
}
|
||||
body #content {
|
||||
padding-top: 2em;
|
||||
margin: auto;
|
||||
max-width: 70%;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
body #support {
|
||||
position: fixed;
|
||||
top:0;
|
||||
display:block;
|
||||
font-size: 12pt;
|
||||
right:0pt;
|
||||
text-align: right;
|
||||
padding: .2em 1em;
|
||||
background: #EEE;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
body .title {
|
||||
margin-left: 0px;
|
||||
font-size: 22pt;
|
||||
}
|
||||
|
||||
#org-div-home-and-up{
|
||||
position: fixed;
|
||||
right: 0.5em;
|
||||
margin-top: 70px;
|
||||
font-family:sans-serif;
|
||||
}
|
||||
|
||||
/* TOC inspired by http://jashkenas.github.com/coffee-script */
|
||||
#table-of-contents {
|
||||
margin-top: 105px;
|
||||
font-size: 10pt;
|
||||
font-family:sans-serif;
|
||||
position: fixed;
|
||||
right: 0em;
|
||||
top: 0em;
|
||||
background: white;
|
||||
line-height: 12pt;
|
||||
text-align: right;
|
||||
box-shadow: 0 0 1em #777777;
|
||||
-webkit-box-shadow: 0 0 1em #777777;
|
||||
-moz-box-shadow: 0 0 1em #777777;
|
||||
-webkit-border-bottom-left-radius: 5px;
|
||||
-moz-border-radius-bottomleft: 5px;
|
||||
/* ensure doesn't flow off the screen when expanded */
|
||||
max-height: 80%;
|
||||
overflow: auto; }
|
||||
#table-of-contents h2 {
|
||||
font-size: 13pt;
|
||||
max-width: 9em;
|
||||
border: 0;
|
||||
font-weight: normal;
|
||||
padding-left: 0.5em;
|
||||
padding-right: 0.5em;
|
||||
padding-top: 0.05em;
|
||||
padding-bottom: 0.05em; }
|
||||
#table-of-contents #text-table-of-contents {
|
||||
display: none;
|
||||
text-align: left; }
|
||||
#table-of-contents:hover #text-table-of-contents {
|
||||
display: block;
|
||||
padding: 0.5em;
|
||||
margin-top: -1.5em; }
|
||||
|
||||
#license {
|
||||
background-color: #eeeeee;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size:2.1em;
|
||||
padding:0 0 30px 0;
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
margin-right: 7%;
|
||||
color: grey;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-family:sans-serif;
|
||||
font-size:1.45em;
|
||||
padding:10px 0 10px 0;
|
||||
color: black;
|
||||
border-bottom: 1px solid #ddd;
|
||||
padding-top: 1.5em;
|
||||
}
|
||||
|
||||
.outline-text-2 {
|
||||
margin-left: 0.1em
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-family:sans-serif;
|
||||
font-size:1.3em;
|
||||
color: grey;
|
||||
margin-left: 0.6em;
|
||||
padding-top: 1.5em;
|
||||
}
|
||||
|
||||
/* #A34D32;*/
|
||||
|
||||
|
||||
.outline-text-3 {
|
||||
margin-left: 0.9em;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-family:sans-serif;
|
||||
font-size:1.2em;
|
||||
margin-left: 1.2em;
|
||||
color: #A5573E;
|
||||
padding-top: 1.5em;
|
||||
}
|
||||
|
||||
.outline-text-4 {
|
||||
margin-left: 1.45em;
|
||||
}
|
||||
|
||||
a {text-decoration: none; font-weight: 400;}
|
||||
a:visited {text-decoration: none; font-weight: 400;}
|
||||
a:hover {text-decoration: underline;}
|
||||
|
||||
.todo {
|
||||
color: #CA0000;
|
||||
}
|
||||
|
||||
.done {
|
||||
color: #006666;
|
||||
}
|
||||
|
||||
.timestamp-kwd {
|
||||
color: #444;
|
||||
}
|
||||
|
||||
.tag {
|
||||
|
||||
}
|
||||
|
||||
li {
|
||||
margin: .4em;
|
||||
}
|
||||
|
||||
table {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
thead {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
tbody {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
tr {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
td {
|
||||
border-left: 0px;
|
||||
border-right: 0px;
|
||||
border-top: 0px;
|
||||
border-bottom: 0px;
|
||||
}
|
||||
|
||||
th {
|
||||
border-left: 0px;
|
||||
border-right: 0px;
|
||||
border-top: 1px solid grey;
|
||||
border-bottom: 1px solid grey;
|
||||
}
|
||||
|
||||
code {
|
||||
font-size: 100%;
|
||||
color: black;
|
||||
padding: 0px 0.2em;
|
||||
}
|
||||
|
||||
img {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.share img {
|
||||
opacity: .4;
|
||||
-moz-opacity: .4;
|
||||
filter: alpha(opacity=40);
|
||||
}
|
||||
|
||||
.share img:hover {
|
||||
opacity: 1;
|
||||
-moz-opacity: 1;
|
||||
filter: alpha(opacity=100);
|
||||
}
|
||||
|
||||
pre {
|
||||
font-family: Droid Sans Mono, Monaco, Consolas, "Lucida Console", monospace;
|
||||
color: black;
|
||||
font-size: 90%;
|
||||
padding: 0.5em;
|
||||
overflow: auto;
|
||||
border: none;
|
||||
background-color: #f2f2f2;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.org-info-box {
|
||||
clear:both;
|
||||
margin-left:auto;
|
||||
margin-right:auto;
|
||||
padding:0.7em;
|
||||
}
|
||||
.org-info-box img {
|
||||
float:left;
|
||||
margin:0em 0.5em 0em 0em;
|
||||
}
|
||||
.org-info-box p {
|
||||
margin:0em;
|
||||
padding:0em;
|
||||
}
|
||||
|
||||
|
||||
.builtin {
|
||||
/* font-lock-builtin-face */
|
||||
color: #f4a460;
|
||||
}
|
||||
.comment {
|
||||
/* font-lock-comment-face */
|
||||
color: #737373;
|
||||
}
|
||||
.comment-delimiter {
|
||||
/* font-lock-comment-delimiter-face */
|
||||
color: #666666;
|
||||
}
|
||||
.constant {
|
||||
/* font-lock-constant-face */
|
||||
color: #db7093;
|
||||
}
|
||||
.doc {
|
||||
/* font-lock-doc-face */
|
||||
color: #b3b3b3;
|
||||
}
|
||||
.function-name {
|
||||
/* font-lock-function-name-face */
|
||||
color: #5f9ea0;
|
||||
}
|
||||
.headline {
|
||||
/* headline-face */
|
||||
color: #ffffff;
|
||||
background-color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.keyword {
|
||||
/* font-lock-keyword-face */
|
||||
color: #4682b4;
|
||||
}
|
||||
.negation-char {
|
||||
}
|
||||
.regexp-grouping-backslash {
|
||||
}
|
||||
.regexp-grouping-construct {
|
||||
}
|
||||
.string {
|
||||
/* font-lock-string-face */
|
||||
color: #ccc79a;
|
||||
}
|
||||
.todo-comment {
|
||||
/* todo-comment-face */
|
||||
color: #ffffff;
|
||||
background-color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.variable-name {
|
||||
/* font-lock-variable-name-face */
|
||||
color: #ff6a6a;
|
||||
}
|
||||
.warning {
|
||||
/* font-lock-warning-face */
|
||||
color: #ffffff;
|
||||
background-color: #cd5c5c;
|
||||
font-weight: bold;
|
||||
}
|
||||
.important {
|
||||
/* font-lock-warning-face */
|
||||
background-color: #e3e3f7;
|
||||
}
|
||||
.note {
|
||||
/* font-lock-warning-face */
|
||||
background-color: #f7f7d9;
|
||||
}
|
||||
pre.a {
|
||||
color: inherit;
|
||||
background-color: inherit;
|
||||
font: inherit;
|
||||
text-decoration: inherit;
|
||||
}
|
||||
pre.a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* Styles for org-info.js */
|
||||
|
||||
.org-info-js_info-navigation
|
||||
{
|
||||
border-style:none;
|
||||
}
|
||||
|
||||
#org-info-js_console-label
|
||||
{
|
||||
font-size:10px;
|
||||
font-weight:bold;
|
||||
white-space:nowrap;
|
||||
}
|
||||
|
||||
.org-info-js_search-highlight
|
||||
{
|
||||
background-color:#ffff00;
|
||||
color:#000000;
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
#org-info-js-window
|
||||
{
|
||||
border-bottom:1px solid black;
|
||||
padding-bottom:10px;
|
||||
margin-bottom:10px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.org-info-search-highlight
|
||||
{
|
||||
background-color:#adefef; /* same color as emacs default */
|
||||
color:#000000;
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
.org-bbdb-company {
|
||||
/* bbdb-company */
|
||||
font-style: italic;
|
||||
}
|
||||
.org-bbdb-field-name {
|
||||
}
|
||||
.org-bbdb-field-value {
|
||||
}
|
||||
.org-bbdb-name {
|
||||
/* bbdb-name */
|
||||
text-decoration: underline;
|
||||
}
|
||||
.org-bold {
|
||||
/* bold */
|
||||
font-weight: bold;
|
||||
}
|
||||
.org-bold-italic {
|
||||
/* bold-italic */
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
}
|
||||
.org-border {
|
||||
/* border */
|
||||
background-color: #000000;
|
||||
}
|
||||
.org-buffer-menu-buffer {
|
||||
/* buffer-menu-buffer */
|
||||
font-weight: bold;
|
||||
}
|
||||
.org-builtin {
|
||||
/* font-lock-builtin-face */
|
||||
color: #da70d6;
|
||||
}
|
||||
.org-button {
|
||||
/* button */
|
||||
text-decoration: underline;
|
||||
}
|
||||
.org-c-nonbreakable-space {
|
||||
/* c-nonbreakable-space-face */
|
||||
background-color: #ff0000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.org-calendar-today {
|
||||
/* calendar-today */
|
||||
text-decoration: underline;
|
||||
}
|
||||
.org-comment {
|
||||
/* font-lock-comment-face */
|
||||
color: #b22222;
|
||||
}
|
||||
.org-comment-delimiter {
|
||||
/* font-lock-comment-delimiter-face */
|
||||
color: #b22222;
|
||||
}
|
||||
.org-constant {
|
||||
/* font-lock-constant-face */
|
||||
color: #5f9ea0;
|
||||
}
|
||||
.org-cursor {
|
||||
/* cursor */
|
||||
background-color: #000000;
|
||||
}
|
||||
.org-default {
|
||||
/* default */
|
||||
color: #000000;
|
||||
background-color: #ffffff;
|
||||
}
|
||||
.org-diary {
|
||||
/* diary */
|
||||
color: #ff0000;
|
||||
}
|
||||
.org-doc {
|
||||
/* font-lock-doc-face */
|
||||
color: #bc8f8f;
|
||||
}
|
||||
.org-escape-glyph {
|
||||
/* escape-glyph */
|
||||
color: #a52a2a;
|
||||
}
|
||||
.org-file-name-shadow {
|
||||
/* file-name-shadow */
|
||||
color: #7f7f7f;
|
||||
}
|
||||
.org-fixed-pitch {
|
||||
}
|
||||
.org-fringe {
|
||||
/* fringe */
|
||||
background-color: #f2f2f2;
|
||||
}
|
||||
.org-function-name {
|
||||
/* font-lock-function-name-face */
|
||||
color: #0000ff;
|
||||
}
|
||||
.org-header-line {
|
||||
/* header-line */
|
||||
color: #333333;
|
||||
background-color: #e5e5e5;
|
||||
}
|
||||
.org-help-argument-name {
|
||||
/* help-argument-name */
|
||||
font-style: italic;
|
||||
}
|
||||
.org-highlight {
|
||||
/* highlight */
|
||||
background-color: #b4eeb4;
|
||||
}
|
||||
.org-holiday {
|
||||
/* holiday */
|
||||
background-color: #ffc0cb;
|
||||
}
|
||||
.org-info-header-node {
|
||||
/* info-header-node */
|
||||
color: #a52a2a;
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
}
|
||||
.org-info-header-xref {
|
||||
/* info-header-xref */
|
||||
color: #0000ff;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.org-info-menu-header {
|
||||
/* info-menu-header */
|
||||
font-weight: bold;
|
||||
}
|
||||
.org-info-menu-star {
|
||||
/* info-menu-star */
|
||||
color: #ff0000;
|
||||
}
|
||||
.org-info-node {
|
||||
/* info-node */
|
||||
color: #a52a2a;
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
}
|
||||
.org-info-title-1 {
|
||||
/* info-title-1 */
|
||||
font-size: 172%;
|
||||
font-weight: bold;
|
||||
}
|
||||
.org-info-title-2 {
|
||||
/* info-title-2 */
|
||||
font-size: 144%;
|
||||
font-weight: bold;
|
||||
}
|
||||
.org-info-title-3 {
|
||||
/* info-title-3 */
|
||||
font-size: 120%;
|
||||
font-weight: bold;
|
||||
}
|
||||
.org-info-title-4 {
|
||||
/* info-title-4 */
|
||||
font-weight: bold;
|
||||
}
|
||||
.org-info-xref {
|
||||
/* info-xref */
|
||||
color: #0000ff;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.org-isearch {
|
||||
/* isearch */
|
||||
color: #b0e2ff;
|
||||
background-color: #cd00cd;
|
||||
}
|
||||
.org-italic {
|
||||
/* italic */
|
||||
font-style: italic;
|
||||
}
|
||||
.org-keyword {
|
||||
/* font-lock-keyword-face */
|
||||
color: #a020f0;
|
||||
}
|
||||
.org-lazy-highlight {
|
||||
/* lazy-highlight */
|
||||
background-color: #afeeee;
|
||||
}
|
||||
.org-link {
|
||||
/* link */
|
||||
color: #0000ff;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.org-link-visited {
|
||||
/* link-visited */
|
||||
color: #8b008b;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.org-match {
|
||||
/* match */
|
||||
background-color: #ffff00;
|
||||
}
|
||||
.org-menu {
|
||||
}
|
||||
.org-message-cited-text {
|
||||
/* message-cited-text */
|
||||
color: #ff0000;
|
||||
}
|
||||
.org-message-header-cc {
|
||||
/* message-header-cc */
|
||||
color: #191970;
|
||||
}
|
||||
.org-message-header-name {
|
||||
/* message-header-name */
|
||||
color: #6495ed;
|
||||
}
|
||||
.org-message-header-newsgroups {
|
||||
/* message-header-newsgroups */
|
||||
color: #00008b;
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
}
|
||||
.org-message-header-other {
|
||||
/* message-header-other */
|
||||
color: #4682b4;
|
||||
}
|
||||
.org-message-header-subject {
|
||||
/* message-header-subject */
|
||||
color: #000080;
|
||||
font-weight: bold;
|
||||
}
|
||||
.org-message-header-to {
|
||||
/* message-header-to */
|
||||
color: #191970;
|
||||
font-weight: bold;
|
||||
}
|
||||
.org-message-header-xheader {
|
||||
/* message-header-xheader */
|
||||
color: #0000ff;
|
||||
}
|
||||
.org-message-mml {
|
||||
/* message-mml */
|
||||
color: #228b22;
|
||||
}
|
||||
.org-message-separator {
|
||||
/* message-separator */
|
||||
color: #a52a2a;
|
||||
}
|
||||
.org-minibuffer-prompt {
|
||||
/* minibuffer-prompt */
|
||||
color: #0000cd;
|
||||
}
|
||||
.org-mm-uu-extract {
|
||||
/* mm-uu-extract */
|
||||
color: #006400;
|
||||
background-color: #ffffe0;
|
||||
}
|
||||
.org-mode-line {
|
||||
/* mode-line */
|
||||
color: #000000;
|
||||
background-color: #bfbfbf;
|
||||
}
|
||||
.org-mode-line-buffer-id {
|
||||
/* mode-line-buffer-id */
|
||||
font-weight: bold;
|
||||
}
|
||||
.org-mode-line-highlight {
|
||||
}
|
||||
.org-mode-line-inactive {
|
||||
/* mode-line-inactive */
|
||||
color: #333333;
|
||||
background-color: #e5e5e5;
|
||||
}
|
||||
.org-mouse {
|
||||
/* mouse */
|
||||
background-color: #000000;
|
||||
}
|
||||
.org-negation-char {
|
||||
}
|
||||
.org-next-error {
|
||||
/* next-error */
|
||||
background-color: #eedc82;
|
||||
}
|
||||
.org-nobreak-space {
|
||||
/* nobreak-space */
|
||||
color: #a52a2a;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.org-org-agenda-date {
|
||||
/* org-agenda-date */
|
||||
color: #0000ff;
|
||||
}
|
||||
.org-org-agenda-date-weekend {
|
||||
/* org-agenda-date-weekend */
|
||||
color: #0000ff;
|
||||
font-weight: bold;
|
||||
}
|
||||
.org-org-agenda-restriction-lock {
|
||||
/* org-agenda-restriction-lock */
|
||||
background-color: #ffff00;
|
||||
}
|
||||
.org-org-agenda-structure {
|
||||
/* org-agenda-structure */
|
||||
color: #0000ff;
|
||||
}
|
||||
.org-org-archived {
|
||||
/* org-archived */
|
||||
color: #7f7f7f;
|
||||
}
|
||||
.org-org-code {
|
||||
/* org-code */
|
||||
color: #7f7f7f;
|
||||
}
|
||||
.org-org-column {
|
||||
/* org-column */
|
||||
background-color: #e5e5e5;
|
||||
}
|
||||
.org-org-column-title {
|
||||
/* org-column-title */
|
||||
background-color: #e5e5e5;
|
||||
font-weight: bold;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.org-org-date {
|
||||
/* org-date */
|
||||
color: #a020f0;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.org-org-done {
|
||||
/* org-done */
|
||||
color: #228b22;
|
||||
font-weight: bold;
|
||||
}
|
||||
.org-org-drawer {
|
||||
/* org-drawer */
|
||||
color: #0000ff;
|
||||
}
|
||||
.org-org-ellipsis {
|
||||
/* org-ellipsis */
|
||||
color: #b8860b;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.org-org-formula {
|
||||
/* org-formula */
|
||||
color: #b22222;
|
||||
}
|
||||
.org-org-headline-done {
|
||||
/* org-headline-done */
|
||||
color: #bc8f8f;
|
||||
}
|
||||
.org-org-hide {
|
||||
/* org-hide */
|
||||
color: #e5e5e5;
|
||||
}
|
||||
.org-org-latex-and-export-specials {
|
||||
/* org-latex-and-export-specials */
|
||||
color: #8b4513;
|
||||
}
|
||||
.org-org-level-1 {
|
||||
/* org-level-1 */
|
||||
color: #0000ff;
|
||||
}
|
||||
.org-org-level-2 {
|
||||
/* org-level-2 */
|
||||
color: #b8860b;
|
||||
}
|
||||
.org-org-level-3 {
|
||||
/* org-level-3 */
|
||||
color: #a020f0;
|
||||
}
|
||||
.org-org-level-4 {
|
||||
/* org-level-4 */
|
||||
color: #b22222;
|
||||
}
|
||||
.org-org-level-5 {
|
||||
/* org-level-5 */
|
||||
color: #228b22;
|
||||
}
|
||||
.org-org-level-6 {
|
||||
/* org-level-6 */
|
||||
color: #5f9ea0;
|
||||
}
|
||||
.org-org-level-7 {
|
||||
/* org-level-7 */
|
||||
color: #da70d6;
|
||||
}
|
||||
.org-org-level-8 {
|
||||
/* org-level-8 */
|
||||
color: #bc8f8f;
|
||||
}
|
||||
.org-org-link {
|
||||
/* org-link */
|
||||
color: #a020f0;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.org-org-property-value {
|
||||
}
|
||||
.org-org-scheduled-previously {
|
||||
/* org-scheduled-previously */
|
||||
color: #b22222;
|
||||
}
|
||||
.org-org-scheduled-today {
|
||||
/* org-scheduled-today */
|
||||
color: #006400;
|
||||
}
|
||||
.org-org-sexp-date {
|
||||
/* org-sexp-date */
|
||||
color: #a020f0;
|
||||
}
|
||||
.org-org-special-keyword {
|
||||
/* org-special-keyword */
|
||||
color: #bc8f8f;
|
||||
}
|
||||
.org-org-table {
|
||||
/* org-table */
|
||||
color: #0000ff;
|
||||
}
|
||||
.org-org-tag {
|
||||
/* org-tag */
|
||||
font-weight: bold;
|
||||
}
|
||||
.org-org-target {
|
||||
/* org-target */
|
||||
text-decoration: underline;
|
||||
}
|
||||
.org-org-time-grid {
|
||||
/* org-time-grid */
|
||||
color: #b8860b;
|
||||
}
|
||||
.org-org-todo {
|
||||
/* org-todo */
|
||||
color: #ff0000;
|
||||
}
|
||||
.org-org-upcoming-deadline {
|
||||
/* org-upcoming-deadline */
|
||||
color: #b22222;
|
||||
}
|
||||
.org-org-verbatim {
|
||||
/* org-verbatim */
|
||||
color: #7f7f7f;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.org-org-warning {
|
||||
/* org-warning */
|
||||
color: #ff0000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.org-outline-1 {
|
||||
/* outline-1 */
|
||||
color: #0000ff;
|
||||
}
|
||||
.org-outline-2 {
|
||||
/* outline-2 */
|
||||
color: #b8860b;
|
||||
}
|
||||
.org-outline-3 {
|
||||
/* outline-3 */
|
||||
color: #a020f0;
|
||||
}
|
||||
.org-outline-4 {
|
||||
/* outline-4 */
|
||||
color: #b22222;
|
||||
}
|
||||
.org-outline-5 {
|
||||
/* outline-5 */
|
||||
color: #228b22;
|
||||
}
|
||||
.org-outline-6 {
|
||||
/* outline-6 */
|
||||
color: #5f9ea0;
|
||||
}
|
||||
.org-outline-7 {
|
||||
/* outline-7 */
|
||||
color: #da70d6;
|
||||
}
|
||||
.org-outline-8 {
|
||||
/* outline-8 */
|
||||
color: #bc8f8f;
|
||||
}
|
||||
.outline-text-1, .outline-text-2, .outline-text-3, .outline-text-4, .outline-text-5, .outline-text-6 {
|
||||
/* Add more spacing between section. Padding, so that folding with org-info.js works as expected. */
|
||||
|
||||
}
|
||||
|
||||
.org-preprocessor {
|
||||
/* font-lock-preprocessor-face */
|
||||
color: #da70d6;
|
||||
}
|
||||
.org-query-replace {
|
||||
/* query-replace */
|
||||
color: #b0e2ff;
|
||||
background-color: #cd00cd;
|
||||
}
|
||||
.org-regexp-grouping-backslash {
|
||||
/* font-lock-regexp-grouping-backslash */
|
||||
font-weight: bold;
|
||||
}
|
||||
.org-regexp-grouping-construct {
|
||||
/* font-lock-regexp-grouping-construct */
|
||||
font-weight: bold;
|
||||
}
|
||||
.org-region {
|
||||
/* region */
|
||||
background-color: #eedc82;
|
||||
}
|
||||
.org-rmail-highlight {
|
||||
}
|
||||
.org-scroll-bar {
|
||||
/* scroll-bar */
|
||||
background-color: #bfbfbf;
|
||||
}
|
||||
.org-secondary-selection {
|
||||
/* secondary-selection */
|
||||
background-color: #ffff00;
|
||||
}
|
||||
.org-shadow {
|
||||
/* shadow */
|
||||
color: #7f7f7f;
|
||||
}
|
||||
.org-show-paren-match {
|
||||
/* show-paren-match */
|
||||
background-color: #40e0d0;
|
||||
}
|
||||
.org-show-paren-mismatch {
|
||||
/* show-paren-mismatch */
|
||||
color: #ffffff;
|
||||
background-color: #a020f0;
|
||||
}
|
||||
.org-string {
|
||||
/* font-lock-string-face */
|
||||
color: #bc8f8f;
|
||||
}
|
||||
.org-texinfo-heading {
|
||||
/* texinfo-heading */
|
||||
color: #0000ff;
|
||||
}
|
||||
.org-tool-bar {
|
||||
/* tool-bar */
|
||||
color: #000000;
|
||||
background-color: #bfbfbf;
|
||||
}
|
||||
.org-tooltip {
|
||||
/* tooltip */
|
||||
color: #000000;
|
||||
background-color: #ffffe0;
|
||||
}
|
||||
.org-trailing-whitespace {
|
||||
/* trailing-whitespace */
|
||||
background-color: #ff0000;
|
||||
}
|
||||
.org-type {
|
||||
/* font-lock-type-face */
|
||||
color: #228b22;
|
||||
}
|
||||
.org-underline {
|
||||
/* underline */
|
||||
text-decoration: underline;
|
||||
}
|
||||
.org-variable-name {
|
||||
/* font-lock-variable-name-face */
|
||||
color: #b8860b;
|
||||
}
|
||||
.org-variable-pitch {
|
||||
}
|
||||
.org-vertical-border {
|
||||
}
|
||||
.org-warning {
|
||||
/* font-lock-warning-face */
|
||||
color: #ff0000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.rss_box {}
|
||||
.rss_title, rss_title a {}
|
||||
.rss_items {}
|
||||
.rss_item a:link, .rss_item a:visited, .rss_item a:active {}
|
||||
.rss_item a:hover {}
|
||||
.rss_date {}
|
||||
|
||||
label.org-src-name {
|
||||
font-size: 80%;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
#show_source {margin: 0; padding: 0;}
|
||||
|
||||
#postamble {
|
||||
font-size: 75%;
|
||||
min-width: 700px;
|
||||
max-width: 80%;
|
||||
line-height: 14pt;
|
||||
margin-left: 20px;
|
||||
margin-top: 10px;
|
||||
padding: .2em;
|
||||
background-color: #ffffff;
|
||||
z-index: -1000;
|
||||
}
|
||||
|
||||
|
||||
} /* END OF @media all */
|
||||
|
||||
@media screen
|
||||
{
|
||||
#table-of-contents {
|
||||
position: fixed;
|
||||
margin-top: 105px;
|
||||
float: right;
|
||||
border: 1px solid #red;
|
||||
max-width: 50%;
|
||||
overflow: auto;
|
||||
}
|
||||
} /* END OF @media screen */
|
Loading…
Reference in New Issue
Block a user