diff --git a/Makefile b/Makefile index 9e7a88d62742ee2440354c87d0eae59e10ef009d..4b7f76f1ffe68ab385445633e632174ce11adeff 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,7 @@ build/$(name).pdf: src/$(name).tex $(refs) fau-beamer/styles/beamerthemefau.sty clean: rm -rf build - find src/ ! -name src ! -name $(name).tex ! -name *.bib ! -exec rm -rf {} + + find src/ -type f ! -name src ! -name $(name).tex ! -name *.bib ! -exec rm -rf {} + show: build/$(name).pdf xdg-open build/$(name).pdf diff --git a/figures/square.diag.lr.pdf b/figures/square.diag.lr.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b2f0270ab9bc0b4ad7e41b0dde8fb2f3fa5b3f85 Binary files /dev/null and b/figures/square.diag.lr.pdf differ diff --git a/figures/square.diag.rl.pdf b/figures/square.diag.rl.pdf new file mode 100644 index 0000000000000000000000000000000000000000..827ba3ce1c91f4ffcc2cebe8699374da87325d8b Binary files /dev/null and b/figures/square.diag.rl.pdf differ diff --git a/figures/square.left.pdf b/figures/square.left.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9025b68803f9c70f80c0b8e560b8c3d475cfe335 Binary files /dev/null and b/figures/square.left.pdf differ diff --git a/figures/square.left.right.pdf b/figures/square.left.right.pdf new file mode 100644 index 0000000000000000000000000000000000000000..630b0af288346c50b2cef50470ab7967c2151747 Binary files /dev/null and b/figures/square.left.right.pdf differ diff --git a/figures/square.none.pdf b/figures/square.none.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6273d72b2d3e4575f5e63e46c61a9b5151befea4 Binary files /dev/null and b/figures/square.none.pdf differ diff --git a/figures/square.right.pdf b/figures/square.right.pdf new file mode 100644 index 0000000000000000000000000000000000000000..483a993496c3880ba0648afa786e0a1579af9851 Binary files /dev/null and b/figures/square.right.pdf differ diff --git a/figures/worldline.pdf b/figures/worldline.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8f0fc5cbd49521e91eb3be24cd5ffec0dcddb6e5 Binary files /dev/null and b/figures/worldline.pdf differ diff --git a/src/qmc-loop-algorithm-report.tex b/src/qmc-loop-algorithm-report.tex index 7e93fce3e69ad49b5e3aae8a2ab551b562586497..aeea767682149cecac19509e5e087783049cf61b 100644 --- a/src/qmc-loop-algorithm-report.tex +++ b/src/qmc-loop-algorithm-report.tex @@ -1,6 +1,7 @@ \ifx\pdfminorversion\undefined\else\pdfminorversion=4\fi -\documentclass[aspectratio=169,t]{beamer} -\usepackage[institute=Nat,aspectratio=169]{styles/beamerthemefau} +\documentclass{beamer} +\usepackage[institute=Nat]{styles/beamerthemefau} +\usefonttheme{professionalfonts} \usepackage[UKenglish]{babel} \usepackage[utf8]{inputenc} @@ -19,30 +20,165 @@ \date{2022-12-12} \title{Quantum Monte Carlo and the Loop Algorithm} +\subtitle{Physics Seminar} \author{Stefan Gehr} +\institute[FAU]{Friedrich-Alexander Universität Erlangen-Nürnberg} \begin{document} -\begin{frame} - \titlepage -\end{frame} +\begin{trueplainframe} +\titlepage +\end{trueplainframe} + \begin{frame}{Table of contents} \tableofcontents \end{frame} -\section{Monte Carlo Basics} -\begin{frame}{Monte Carlo Basics} -\begin{minipage}{0.40\linewidth} -\begin{align*} - a^2 + b^2 = c^2 -\end{align*} +\section{Classic Monte Carlo} +\begin{frame}{Metropolis Algorithm} +\begin{minipage}{0.45\linewidth} + Classic Ising model + \begin{align*} + H(\vec{\sigma}) &= - \sum_{i}\left(J\sigma_i\sigma_{i+1} + \mu \sigma_i\right) \\ + \sigma_i &\in \{-1, +1\}\qquad \vec{\sigma} = (\sigma_1, \dots, \sigma_N) \\ + Z &= \sum_{\vec{\sigma}} w_{\vec{\sigma}} = \sum_{\vec{\sigma}}e^{-\beta H(\vec{\sigma})} + \end{align*} + We want to create a Markov chain of configurations \((\vec{\sigma}_1, \vec{\sigma}_2, \dots)\) where + \(N_{\vec{\sigma}_i} \propto e^{-\beta E(\vec{\sigma}_i)}\) \\ + Detailed Balance condition + \begin{align*} + w_{\vec{\sigma}_i}\, p(\vec{\sigma}_i \to \vec{\sigma}_j) + = w_{\vec{\sigma}_j}\, p(\vec{\sigma}_j \to \vec{\sigma}_i) + \end{align*} + assures configuration \(\vec{\sigma}_i\) is sampled with correct weight \(w_{\vec{\sigma}_i}\). +\end{minipage} +\hfill +\begin{minipage}{0.45\linewidth} + Metropolis: + \begin{align*} + p(\vec{\sigma}_i \to \sigma_j) = p_{\text{prop}}(\vec{\sigma}_i \to \sigma_j)p_{\text{acc}}(\vec{\sigma}_i \to \sigma_j) \\ + \Rightarrow \frac{p_{\text{acc}}(\vec{\sigma}_i\to \vec{\sigma}_j)}{p_{\text{acc}}(\vec{\sigma}_j\to \vec{\sigma}_i)} + = \frac{p_{\text{prop}}(\vec{\sigma}_j\to \vec{\sigma}_i)w_{\vec{\sigma}_j}}{p_{\text{prop}}(\vec{\sigma}_i\to \vec{\sigma}_j)w_{\vec{\sigma}_i}} + \end{align*} + Choose e.g. \(p_{\text{prop}}(\vec{\sigma}_i\to \vec{\sigma}_j) = \frac{1}{N}\) (flip one of \(N\) sites) + Accept the new configuration \(\vec{\sigma}_j\) with probability + \begin{align*} + \min\left(1,\frac{p_{\text{acc}}(\vec{\sigma}_i\to \vec{\sigma}_j)}{p_{\text{acc}}(\vec{\sigma}_j\to \vec{\sigma}_i)}\right) + = \min\left(1,e^{-\beta\, [H(\vec{\sigma}_j) - H(\vec{\sigma}_i)]}\right) + .\end{align*} +\end{minipage} +\end{frame} +\begin{frame}{Example with Numbers} + \(N = 4, J = 1, \mu = 2, \beta = 1\) \\ + Start with random configuration \(\vec{\sigma}_0 = (\uparrow, \uparrow, \downarrow, \uparrow) = (1, 1, -1, 1)\). + Markov chain \(M = (\vec{\sigma}_0) = ((\uparrow, \uparrow, \downarrow, \uparrow))\). + \begin{align*} + H((\uparrow, \uparrow, \downarrow, \uparrow)) + = -1\left(\uparrow \uparrow + \uparrow \downarrow + \downarrow \uparrow + \uparrow \uparrow\right) -2 \left(\uparrow + \uparrow + \downarrow + \uparrow\right) = -2\times 2 = -4 + .\end{align*} + Suggest to flip first site \(\vec{\sigma}_1 \overset{?}{=} (\downarrow,\uparrow,\downarrow,\uparrow)\) + \begin{align*} + H((\downarrow, \uparrow, \downarrow, \uparrow)) + = -1\left(\downarrow \uparrow + \uparrow \downarrow + \downarrow \uparrow + \uparrow \downarrow\right) -2 \left(\downarrow + \uparrow + \downarrow + \uparrow\right) = -1 \times (-4) = 4 + .\end{align*} + Accept with probability + \begin{align*} + \min\left(1, e^{-1 \left[4 - (-4)\right]}\right) = e^{-8} \approx \num{0.000335} \\ + \text{random number }r = \num{0.2} > \num{0.000335} \Rightarrow \text{decline} \Rightarrow \vec{\sigma}_1 = \vec{\sigma}_0 = (\uparrow, \uparrow, \downarrow, \uparrow) \\ + M = (\vec{\sigma}_0, \vec{\sigma}_1) = ((\uparrow, \uparrow, \downarrow, \uparrow), (\uparrow, \uparrow, \downarrow, \uparrow)) + .\end{align*} + Suggest to flip third site \(\vec{\sigma}_2 \overset{?}{=} (\uparrow, \uparrow, \uparrow, \uparrow)\) + \begin{align*} + H((\uparrow, \uparrow, \uparrow, \uparrow)) + = -1\left(\uparrow \uparrow + \uparrow \uparrow + \uparrow \uparrow + \uparrow \uparrow\right) -2 \left(\uparrow + \uparrow + \uparrow + \uparrow\right) = -1 \times 4 - 2 \times 4 = -12 \\ + \min\left(1, e^{-1 \left[-12 - (-4)\right]}\right) = \min(1, e^{16}) = 1 \ge r \Rightarrow \text{accept} \\ + \Rightarrow M = (\vec{\sigma}_0, \vec{\sigma}_1, \vec{\sigma}_2) = ((\uparrow, \uparrow, \downarrow, \uparrow), (\uparrow, \uparrow, \downarrow, \uparrow), (\uparrow, \uparrow, \uparrow, \uparrow)) + .\end{align*} +\end{frame} +\begin{frame}{Heat-Bath Algorithm} + Sample the proposed change with correct probability \(\Rightarrow\) change gets always accepted. \\ + The local energy of site \(i\) is + \begin{align*} + E_i(\sigma_i) = -J \left(\sigma_{i-1}\sigma_i + \sigma_i\sigma_{i+1}\right) -\mu\sigma_i + .\end{align*} + The possible values are \(\sigma_i \in \{\uparrow, \downarrow\} = \{+1,-1\}\). We set site \(i\) to \(\uparrow\) with probability + \begin{align*} + p(\uparrow) = \frac{e^{-\beta E_i(\uparrow)}}{e^{-\beta E_i(\uparrow)} + e^{-\beta E_i(\downarrow)}} + .\end{align*} + \(N = 4, J = 1, \mu = 2, \beta = 1\) \\ + Start with random configuration \(\vec{\sigma}_0 = (\uparrow, \uparrow, \downarrow, \uparrow) = (1, 1, -1, 1)\). \(M = ((\uparrow, \uparrow, \downarrow, \uparrow))\) \\ + Set value at site 1 + \begin{align*} + E_1(\uparrow) &= -1\left(\uparrow\uparrow + \uparrow\uparrow\right) - 2\uparrow = -1 \times 2 - 2 \times 1 = -4 \\ + E_1(\downarrow) &= -1\left(\uparrow\downarrow + \downarrow\uparrow\right) - 2\downarrow = -1 \times (-2) - 2 \times (-1) = 4 \\ + p(\uparrow) &= \frac{e^{-1 \times (-4)}}{e^{-1\times (-4)} + e^{-1 \times 4}} \approx \num{0.99966} \\ + \text{random number }r &= 0.84 < \num{0.99966} \Rightarrow \sigma_1 = \downarrow \,\Rightarrow \vec{\sigma}_1 = (\uparrow, \uparrow, \downarrow, \uparrow) \\ + M &= ((\uparrow, \uparrow, \downarrow, \uparrow), (\uparrow, \uparrow, \downarrow, \uparrow)) + .\end{align*} +\end{frame} +\begin{frame}{Observables} +\begin{itemize} + \item We start saving the Markov chain after a certain amount of sweeps (equilibrium was reached). + \item Easily calculate expectation values \(\expval{O} = \frac{1}{Z}\sum_{\vec{\sigma}}w_{\vec{\sigma}}O(\vec{\sigma}) \approx \frac{1}{\abs{M}}\sum_{i=1}^{\abs{M}}O(\vec{\sigma}_i)\) + \item For uncertainties use blocking analysis +\end{itemize} +\end{frame} +\section{Quantum Monte Carlo} +\begin{frame}{Quantum Monte Carlo} +\begin{minipage}{0.45\linewidth} + XXZ quantum spin chain + \begin{align*} + H &= J_x \sum_i (S_i^xS_{i+1}^x + S_i^yS_{i+1}^y) + J_z\sum_i S_i^z S_{i+1}^z \\ + &= \frac{J_x}{2}\sum_i \left(S_i^+S_{i+1}^- + S_i^-S_{i+1}^+\right) + J_z \sum_i S_i^z S_{i+1}^z \\ + &\text{with}\quad S^+ = S^x + iS^y, \quad S^- = S^x - iS^y + .\end{align*} + Look at two sites only + \begin{align*} + H_{\text{two sites}} = \frac{J_x}{2}(S_1^+S_2^-+S_1^-S_2^+)+J_zS_1^zS_2^z \\ + H_{\text{two sites}} \frac{1}{\sqrt{2}}(\ket{\uparrow\downarrow}\pm\ket{\downarrow\uparrow}) + = \left(-\frac{J_z}{4}\pm\frac{J_x}{2}\right)\frac{1}{\sqrt{2}}(\ket{\uparrow\downarrow}\pm\ket{\downarrow\uparrow}) \\ + H_{\text{two sites}} \ket{\uparrow\uparrow} + = \frac{J_z}{4}\ket{\uparrow\uparrow} \qquad + H_{\text{two sites}} \ket{\downarrow\downarrow} + = \frac{J_z}{4}\ket{\downarrow\downarrow} + .\end{align*} \end{minipage} \hfill -\begin{minipage}{0.55\linewidth} -\begin{align*} - \sqrt{a} + \sqrt{b} \ne \sqrt{c} -\end{align*} +\begin{minipage}{0.45\linewidth} + \begin{align*} + \vcenter{\hbox{\includegraphics{square.none.pdf}}} &\equiv \bra{\downarrow\downarrow} e^{-\Delta\tau H_{\text{two sites}}} \ket{\downarrow\downarrow} = e^{\Delta\tau J_z / 4}\\ + \vcenter{\hbox{\includegraphics{square.left.right.pdf}}} &\equiv \bra{\uparrow\uparrow} e^{-\Delta\tau H_{\text{two sites}}} \ket{\uparrow\uparrow} = e^{\Delta\tau J_z / 4} \\ + \vcenter{\hbox{\includegraphics{square.left.pdf}}} &\equiv \bra{\uparrow\downarrow} e^{-\Delta\tau H_{\text{two sites}}} \ket{\uparrow\downarrow} = e^{\Delta\tau J_z /4}\cosh(\Delta\tau J_x /2) \\ + \vcenter{\hbox{\includegraphics{square.right.pdf}}} &\equiv \bra{\downarrow\uparrow} e^{-\Delta\tau H_{\text{two sites}}} \ket{\downarrow\uparrow} = e^{\Delta\tau J_z /4}\cosh(\Delta\tau J_x /2) \\ + \vcenter{\hbox{\includegraphics{square.diag.rl.pdf}}} &\equiv \bra{\uparrow\downarrow} e^{-\Delta\tau H_{\text{two sites}}} \ket{\downarrow\uparrow} = -e^{\Delta\tau J_z /4}\sinh(\Delta\tau J_x /2) \\ + \vcenter{\hbox{\includegraphics{square.diag.lr.pdf}}} &\equiv \bra{\downarrow\uparrow} e^{-\Delta\tau H_{\text{two sites}}} \ket{\uparrow\downarrow} = -e^{\Delta\tau J_z /4}\sinh(\Delta\tau J_x /2) + \end{align*} \end{minipage} \end{frame} +\begin{frame}{Quantum Monte Carlo} +\begin{minipage}{0.45\linewidth} + Trotter decomposition + \begin{align*} + H &= \underbrace{\frac{J_x}{2}\sum_{\text{odd } i}(S_i^+S_{i+1}^-+S_i^-S_{i+1}^+) + J_z\sum_{\text{odd } i}S_i^zS_{i+1}^z}_{H_1} \\ + &+ \underbrace{\frac{J_x}{2}\sum_{\text{even }i}(S_i^+S_{i+1}^-+S_i^-S_{i+1}^+) + J_z\sum_{\text{even }i}S_i^zS_{i+1}^z}_{H_2} + .\end{align*} + \begin{align*} + \tr\left[e^{-\beta H}\right] + &= \tr\left[\left(e^{-\Delta\tau H}\right)^m\right] \\ + &= \tr\left[\left(e^{-\frac{\Delta\tau}{2}H_2}e^{-\Delta\tau H_1}e^{-\frac{\Delta\tau}{2}H_2} + \mathcal{O}(\Delta\tau^3)\right)^m\right] \\ + &= \tr\left[\left(e^{-\Delta\tau H_1}e^{-\Delta\tau H_2}\right)^m\right] + \mathcal{O}(\Delta\tau^2) \\ + &= \sum_{\vec{\sigma}_1\cdots\vec{\sigma}_{2m}}\bra{\vec{\sigma}_1}e^{-\Delta\tau H_1}\ketbra{\vec{\sigma}_{2m}} + e^{-\Delta\tau H_2}\ket{\vec{\sigma}_{2m-1}} \\ + &\cdots\bra{\vec{\sigma}_3}e^{-\Delta\tau H_1}\ketbra{\vec{\sigma}_{2}} + e^{-\Delta\tau H_2}\ket{\vec{\sigma}_{1}} + + \mathcal{O}(\Delta\tau^2) + .\end{align*} +\end{minipage} +\hfill +\begin{minipage}{0.45\linewidth} + \includegraphics[width=0.8\linewidth]{worldline.pdf} +\end{minipage} +\end{frame} + { \nocite{*} \printbibliography diff --git a/src/references.bib b/src/references.bib index 046271bf23fcf32784609a2c0db4e13da32e2824..327c7c22651452551e1157c53f6d24d8f45ccd3e 100644 --- a/src/references.bib +++ b/src/references.bib @@ -16,3 +16,31 @@ note = {Personal note} } +@unpublished{werner, + author = {Philipp Werner}, + title = {Continuous-Time Impurity Solvers (Lecture Notes)}, + institution = {Autumn-School Hands-on LDA=DMFT}, + year = {2011}, + url = {https://www.cond-mat.de/events/correl11/manuscript/Werner.pdf}, + note = {Class handout} +} + +@incollection{Assaad, + doi = {10.1007/978-3-540-74686-7_10}, + url = {https://doi.org/10.1007/978-3-540-74686-7_10}, + publisher = {Springer Berlin Heidelberg}, + pages = {277--356}, + author = {F.F. Assaad and H.G. Evertz}, + title = {World-line and Determinantal Quantum Monte Carlo Methods for Spins, Phonons and Electrons}, + booktitle = {Computational Many-Particle Physics} +} + +@inproceedings{Sandvik2010, + doi = {10.1063/1.3518900}, + url = {https://doi.org/10.1063/1.3518900}, + year = {2010}, + publisher = {{AIP}}, + author = {Anders W. Sandvik and Adolfo Avella and Ferdinando Mancini}, + title = {Computational Studies of Quantum Spin Systems}, + booktitle = {{AIP} Conference Proceedings} +}