\documentclass[aspectratio=169,9pt]{beamer} % *********** % * PACKAGE * % *********** \usepackage{amsmath,amssymb,amsfonts,pgfpages,graphicx,subfigure,xcolor,bm,multirow,microtype,wasysym,multimedia,hyperref,tabularx,amscd,pgfgantt,mhchem} \usetikzlibrary{shapes.gates.logic.US,trees,positioning,arrows} \usetheme{Pittsburgh} \usecolortheme{seahorse} \usepackage{mathpazo,libertine} \usepackage{algorithmicx,algorithm,algpseudocode} \algnewcommand\algorithmicassert{\texttt{assert}} \algnewcommand\Assert[1]{\State \algorithmicassert(#1)} %\algrenewcommand{\algorithmiccomment}[1]{$\triangleright$ #1} %\usepackage[version=4]{mhchem} \usepackage{amsmath,amsfonts,amssymb,bm,microtype,graphicx,wrapfig,geometry,physics,eurosym,multirow,pgfgantt} \usepackage{hyperref} \hypersetup{ colorlinks=true, linkcolor=cyan, filecolor=magenta, urlcolor=blue, citecolor=purple } % operators \newcommand{\hI}{\Hat{1}} \newcommand{\hH}{\Hat{H}} \newcommand{\hT}[2]{\Hat{T}_{#1}^{#2}} \newcommand{\bH}{\mathbold{H}} \newcommand{\br}{\mathbold{r}} \newcommand{\la}{\lambda} \newcommand{\si}{\sigma} \newcommand{\cJ}{\mathcal{J}} \newcommand{\cK}{\mathcal{K}} % wave functions \newcommand{\PsiO}{\Psi_0} \newcommand{\PsiHF}{\Psi_\text{RHF}} \newcommand{\PsiFCI}{\Psi_\text{FCI}} \newcommand{\PsiCC}{\Psi_\text{CC}} \newcommand{\PsiCCD}{\Psi_\text{CCD}} \newcommand{\amp}[2]{t_{#1}^{#2}} \newcommand{\Det}[2]{\Psi_{#1}^{#2}} % energies \newcommand{\EHF}{E_\text{HF}} \newcommand{\EO}{E_\text{0}} \newcommand{\ECC}{E_\text{CC}} \newcommand{\EVCC}{E_\text{VCC}} \newcommand{\ECCD}{E_\text{CCD}} \newcommand{\nEl}{n} \newcommand{\nBas}{N} \newcommand{\ba}{\bm{a}} \newcommand{\bb}{\bm{b}} \newcommand{\bA}{\bm{A}} \newcommand{\bB}{\bm{B}} \newcommand{\bo}{\bm{0}} \newcommand{\sbra}[1]{[ #1 |} \newcommand{\sket}[1]{| #1 ]} \newcommand{\sexpval}[1]{[ #1 ]} \newcommand{\sbraket}[2]{[ #1 | #2 ]} \newcommand{\smel}[3]{[ #1 | #2 | #3 ]} \definecolor{darkgreen}{RGB}{0, 180, 0} \definecolor{fooblue}{RGB}{0,153,255} \definecolor{fooyellow}{RGB}{234,187,0} \definecolor{lavender}{rgb}{0.71, 0.49, 0.86} \definecolor{inchworm}{rgb}{0.7, 0.93, 0.36} \newcommand{\violet}[1]{\textcolor{lavender}{#1}} \newcommand{\orange}[1]{\textcolor{orange}{#1}} \newcommand{\purple}[1]{\textcolor{purple}{#1}} \newcommand{\blue}[1]{\textcolor{blue}{#1}} \newcommand{\green}[1]{\textcolor{darkgreen}{#1}} \newcommand{\yellow}[1]{\textcolor{fooyellow}{#1}} \newcommand{\red}[1]{\textcolor{red}{#1}} \newcommand{\highlight}[1]{\textcolor{fooblue}{#1}} \newcommand{\pub}[1]{\small \textcolor{purple}{#1}} \newcommand{\mc}{\multicolumn} \newcommand{\mycirc}[1][black]{\Large\textcolor{#1}{\ensuremath\bullet}} \usepackage{tikz} \usetikzlibrary{arrows,positioning,shapes.geometric} \usetikzlibrary{decorations.pathmorphing} \tikzset{snake it/.style={ decoration={snake, amplitude = .4mm, segment length = 2mm},decorate}} % ************* % * HEAD DATA * % ************* \title[HF and post-HF methods]{ \purple{Hartree-Fock and post-Hartree-Fock methods: \\ Computational aspects} } \author[PF Loos]{Pierre-Fran\c{c}ois LOOS} \date{Online ISTPC 2021 school --- April 27th, 2021} \institute[CNRS@LCPQ]{ Laboratoire de Chimie et Physique Quantiques (UMR 5626),\\ Universit\'e de Toulouse, CNRS, UPS, Toulouse, France. } \titlegraphic{ \includegraphics[width=0.3\textwidth]{fig/peppa} \\ \vspace{0.05\textheight} \includegraphics[height=0.05\textwidth]{fig/UPS} \hspace{0.2\textwidth} \includegraphics[height=0.05\textwidth]{fig/ERC} \hspace{0.2\textwidth} \includegraphics[height=0.05\textwidth]{fig/LCPQ} \hspace{0.2\textwidth} \includegraphics[height=0.05\textwidth]{fig/CNRS} } \begin{document} %%% SLIDE 1 %%% \begin{frame} \titlepage \end{frame} % %%% SLIDE 2 %%% \begin{frame}{Today's program} \begin{itemize} \item How to perform a Hartree-Fock (HF) calculation in practice? \begin{itemize} \item Computation of integrals \pub{[Ahlrichs, PCCP 8 (2006) 3072]} \item Orthogonalization matrix \pub{[Szabo \& Ostlund, Modern Quantum Chemistry]} \item Construction of the Coulomb matrix \pub{[White \& Head-Gordon, JCP 104 (1996) 2620]} \item Resolution of the identity \pub{[Weigend et al. JCP 130 (2009) 164106]} \item DFT exchange via quadrature \pub{[Becke, JCP 88 (1988) 2547]} \end{itemize} \bigskip \item Computing the 2th-order M{\o}ller-Plesset (MP2) correlation energy \begin{itemize} \item Atomic orbital (AO) to molecular orbital (MO) transformation \pub{[Frisch et al. CPL 166 (1990) 281]} \item Laplace transform \pub{[Alml{\"o}f, CPL 181 (1991) 319]} \end{itemize} \bigskip \item Coupled cluster with doubles (CCD) \begin{itemize} \item Introduction to CC methods \pub{[Shavitt \& Bartlett, \textit{``Many-Body Methods in Chemistry and Physics: MBPT and Coupled-Cluster Theory''}]} \item Algorithm to compute the CCD energy \pub{[Pople et al. IJQC 14 (1978) 545]} \end{itemize} \end{itemize} \end{frame} %%% SLIDE X %%% \begin{frame}{How to perform a HF calculation in practice?} \begin{columns} \begin{column}{0.7\textwidth} \begin{block}{The SCF algorithm (p.~146)} \begin{enumerate} \item \orange{Specify molecule} $\{\br_A\}$ and $\{Z_A\}$ and \violet{basis set} $\{\phi_\mu\}$ \item Calculate integrals $S_{\mu \nu}$, $H_{\mu \nu}$ and $\langle \mu \nu | \lambda \sigma \rangle$ \item Diagonalize $\bm{S}$ and compute $\bm{X} = \bm{S}^{-1/2}$ \item Obtain \alert{guess density matrix} for $\bm{P}$ \begin{enumerate} \item[1.] Calculate $\bm{J}$ and $\bm{K}$, then $\bm{F} = \bm{H} + \bm{J} + \bm{K}$ \item[2.] Compute $\bm{F}' = \bm{X}^\dag \cdot \bm{F} \cdot \bm{X}$ \item[3.] Diagonalize $\bm{F}'$ to obtain $\bm{C}'$ and $\bm{E}$ \item[4.] Calculate $\bm{C}= \bm{X} \cdot \bm{C}'$ \item[5.] Form a \blue{new density matrix} $\bm{P} = \bm{C} \cdot \bm{C}^\dag$ \item[6.] \alert{Am I converged?} If not go back to 1. \end{enumerate} \item Calculate stuff that you want, like $E_\text{HF}$ for example \end{enumerate} \end{block} \end{column} \begin{column}{0.3\textwidth} \includegraphics[width=\textwidth]{fig/Szabo} \end{column} \end{columns} \end{frame} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}{One- and two-electron integrals} \begin{block}{One-electron integrals: overlap \& core Hamiltonian (Appendix A)} \begin{equation} S_{\mu\nu} = \int \phi_\mu(\orange{\br}) \phi_\nu(\orange{\br}) d\orange{\br} \end{equation} \begin{equation} H_{\mu\nu} = \int \phi_\mu(\orange{\br}) \hH^\text{c}(\orange{\br}) \phi_\nu(\orange{\br}) d\orange{\br} \end{equation} \end{block} \begin{block}{Chemist/Mulliken notation for two-electron integrals (p.~68)} \begin{equation} ( \mu \nu | \lambda \sigma ) = \iint \phi_\mu(\alert{\br_1}) \phi_\nu(\alert{\br_1}) \frac{1}{r_{12}} \phi_\lambda(\blue{\br_2}) \phi_\sigma(\blue{\br_2}) d\red{\br_1} d\blue{\br_2} \end{equation} \begin{equation} ( \mu \blue{\nu} \orange{||} \lambda \red{\sigma} ) = ( \mu \blue{\nu} | \lambda \red{\sigma} ) - ( \mu \red{\sigma} | \lambda \blue{\nu} ) \end{equation} \end{block} \begin{block}{Physicist/Dirac notation for two-electron integrals (p.~68)} \begin{equation} \langle \mu \nu | \lambda \sigma \rangle = \iint \phi_\mu(\alert{\br_1}) \phi_\nu(\blue{\br_2}) \frac{1}{r_{12}} \phi_\lambda(\alert{\br_1}) \phi_\sigma(\blue{\br_2}) d\red{\br_1} d\blue{\br_2} \end{equation} \begin{equation} \langle \mu \nu \orange{||} \blue{\lambda} \red{\sigma} \rangle = \langle \mu \nu | \blue{\lambda} \red{\sigma} \rangle - \langle \mu \nu | \red{\sigma} \blue{\lambda} \rangle \end{equation} \end{block} \end{frame} \begin{frame}{Computing the electron repulsion integrals (ERIs)} \begin{columns} \begin{column}{0.7\textwidth} \begin{block}{Four-center two-electron integrals} \small \begin{equation} \begin{split} \braket{\ba_1\ba_2}{\bb_1\bb_2} & \equiv \mel{\ba_1\ba_2}{\alert{r_{12}^{-1}}}{\bb_1\bb_2} \\ & = \iint \phi_{\ba_1}^{\bA_1}(\br_1) \phi_{\ba_2}^{\bA_2}(\br_2) \,\alert{\frac{1}{r_{12}}} \, \phi_{\bb_1}^{\bB_1}(\br_1) \phi_{\bb_2}^{\bB_2}(\br_2) d\br_1 d\br_2 \end{split} \end{equation} \end{block} % \begin{block}{Gaussian-type orbital (GTO)} \small \begin{align*} \text{\violet{Contracted} GTO} & = \ket{\ba} \equiv \phi_{\ba}^{\bA}(\br) = \sum_k^K D_k \sket{\ba}_k \\ \text{\blue{Primitive} GTO} & = \sket{\ba} = (x-A_x)^{a_x} (y-A_y)^{a_y} (z-A_z)^{a_z} e^{-\alpha \abs{ \br -\bA }^2} \end{align*} \begin{itemize} \item \textbf{\purple{Exponent:}} $\alpha$ \item \textbf{\purple{Center:}} $\bA = (A_x, A_y, A_z)$ \item \textbf{\purple{Angular momentum:}} $\ba = (a_x, a_y, a_z)$ and total angular momentum $a=a_x + a_y + a_z$ \end{itemize} \end{block} \end{column} \begin{column}{0.3\textwidth} \includegraphics[width=\textwidth]{fig/SBG} \end{column} \end{columns} % \end{frame} \begin{frame}{The contraction problem} \begin{columns} \begin{column}{0.7\textwidth} \begin{block}{Primitive vs Contracted} \begin{itemize} \item Same center $\bA$ \item Same angular momentum $\ba$ \item Different exponent $\violet{\alpha_k}$ \item Contraction coefficient $\blue{D_k}$ \end{itemize} \begin{equation} \underbrace{\braket{\ba_1\ba_2}{\bb_1\bb_2}}_{\text{\green{contracted ERI}}} = \sum_{k_1}^{K_1} \sum_{k_2}^{K_2} \sum_{k_3}^{K_3} \sum_{k_4}^{K_4} \blue{D_{k_1} D_{k_2} D_{k_3} D_{k_4}} \underbrace{\sbraket{\ba_{1,k_1}\ba_{2,k_2}}{\bb_{1,k_3}\bb_{2,k_4}}}_{\text{\red{primitive ERI}}} \end{equation} \centering \green{One} contracted ERI required \red{$K_1 \times K_2 \times K_3 \times K_4$} primitive ERIs! \end{block} \begin{block}{Dunning's cc-pVTZ basis for the carbon atom} \begin{equation} \green{\braket{1s1s}{1s1s}} = \sum_{k_1}^{10} \sum_{k_2}^{10} \sum_{k_3}^{10} \sum_{k_4}^{10} \blue{D_{k_1} D_{k_2} D_{k_3} D_{k_4}} \red{\sbraket{s_{k_1}^{\violet{\alpha_{k_1}}} s_{k_2}^{\violet{\alpha_{k_2}}}} {s_{k_3}^{\violet{\alpha_{k_3}}} s_{k_4}^{\violet{\alpha_{k_4}}} }} \end{equation} \centering The $\green{\braket{1s1s}{1s1s}}$ integral requires $10^4$ \red{$s$-type integrals}! \end{block} \end{column} \begin{column}{0.3\textwidth} \begin{equation} \boxed{\green{\ket{\ba}} = \sum_k^K \blue{D_k} \red{\sket{\ba_k}}} \end{equation} \\ \bigskip \begin{block}{https://www.basissetexchange.org} \bigskip \centering \includegraphics[width=\textwidth]{fig/C} \end{block} \end{column} \end{columns} \end{frame} %%% SLIDE X %%% \begin{frame}{Properties of Gaussian functions} \begin{block}{Gaussian product rule: \textit{``The product of two gaussians is a gaussian''}} \begin{equation} G_{\red{\alpha},\red{\bm{A}}}(\br) = \exp(-\red{\alpha} \abs{\br - \red{\bA}}^2) \qqtext{and} G_{\blue{\beta},\blue{\bm{B}}}(\br) = \exp(-\blue{\beta} \abs{\br - \blue{\bB}}^2) \qqtext{then} \end{equation} \begin{equation} \boxed{G_{\red{\alpha},\red{\bm{A}}}(\br) G_{\blue{\beta},\blue{\bm{B}}}(\br) = \green{K} \, G_{\violet{\zeta},\violet{\bm{P}}}(\br)} \qqtext{with} \violet{\zeta} = \red{\alpha} + \blue{\beta} \qqtext{and} \violet{\bm{P}} = \frac{\red{\alpha \bA} + \blue{\beta \bB}}{\red{\alpha} + \blue{\beta} } \end{equation} \begin{equation} \green{K} = \exp( -\frac{\red{\alpha} \blue{\beta}}{\red{\alpha} + \blue{\beta} } \abs{\red{\bA} - \blue{\bB}}^2) \end{equation} \end{block} \begin{block}{Gaussian product rule for ERIs} \begin{equation} \begin{split} (\bm{\red{a}} \bm{\blue{b}}|\bm{\orange{c}} \bm{\green{d}}) & = \iint G_{\red{\alpha},\red{\bm{A}}}(\br_1) G_{\blue{\beta},\blue{\bm{B}}}(\br_1) \frac{1}{r_{12}} G_{\orange{\gamma},\orange{\bm{C}}}(\br_2) G_{\green{\delta},\green{\bm{D}}}(\br_2) d\br_1 d\br_2 \\ & = \iint G_{\violet{\zeta},\violet{\bm{P}}}(\br_1) \frac{1}{r_{12}} G_{\purple{\eta},\purple{\bm{Q}}}(\br_2) d\br_1 d\br_2 \end{split} \end{equation} \end{block} \end{frame} % \begin{frame}{Upper bounds for ERIs} \begin{block}{A ``good'' upper bound must be} \begin{itemize} \item tight (i.e., a good estimate) \item simple (i.e, cheap to compute) \end{itemize} \end{block} \begin{block}{Cauchy-Schwartz bound} \begin{equation} \abs{(\bm{\red{a}} \bm{\blue{b}}|\bm{\orange{c}} \bm{\green{d}})} \le \sqrt{(\bm{\red{a}} \bm{\blue{b}}|\bm{\red{a}} \bm{\blue{b}})} \sqrt{(\bm{\orange{c}} \bm{\green{d}}|\bm{\orange{c}} \bm{\green{d}})} \qqtext{or} \abs{(\bm{\violet{P}}|\bm{\purple{Q}})} \le \sqrt{(\bm{\violet{P}}|\bm{\violet{P}})} \sqrt{(\bm{\purple{Q}}|\bm{\purple{Q}})} \end{equation} \end{block} \begin{block}{The family of generalized H\"older bounds} \begin{equation} \abs{(\bm{\red{a}} \bm{\blue{b}}|\bm{\orange{c}} \bm{\green{d}})} \le \qty[ (\bm{\red{a}} \bm{\blue{b}}|\bm{\red{a}} \bm{\blue{b}}) ]^{1/\purple{m}} \qty[ (\bm{\orange{c}} \bm{\green{d}}|\bm{\orange{c}} \bm{\green{d}}) ]^{1/\violet{n}} \qqtext{with} \frac{1}{\purple{m}} + \frac{1}{\violet{n}} = 1 \qqtext{and} \purple{m},\violet{n} > 1 \end{equation} \end{block} \end{frame} \begin{frame}{Asymptotic scaling of two-electron integrals} \begin{block}{Number of significant two-electron integrals for polyenes} \begin{equation} (\bm{\red{a}} \bm{\blue{b}}|\bm{\orange{c}} \bm{\green{d}}) = (\bm{\red{a}} \bm{\blue{b}}| \mathcal{O}_2 | \bm{\orange{c}} \bm{\green{d}}) \end{equation} \bigskip $$N_\text{sig} = c\,N^{\alpha}$$ \center \begin{tabular}{lcrccrc} \hline \hline Molecule & $N$ & \mc{2}{c}{\red{$\mathcal{O}_2 = r_{12}^{-1}$}} && \mc{2}{c}{\orange{$\mathcal{O}_2 = e^{-\la r_{12}^2}$ ($\la = 1$)}} \\ \cline{3-4} \cline{6-7} & & \mc{1}{c}{$N_\text{sig}$} & $\alpha$ && \mc{1}{c}{$N_\text{sig}$} & $\alpha$ \\ \hline propene & 12 & 1\,625 & --- && 1\,650 & --- \\ butadiene & 16 & 5\,020 & 3.9 && 5\,020 & 3.9 \\ hexatriene & 24 & 24\,034 & 3.9 && 23\,670 & 3.8 \\ octatetraene & 32 & 63\,818 & 3.4 && 52\,808 & 2.8 \\ decapentaene & 40 & 119\,948 & 2.8 && 81\,404 & 1.9 \\ dodecaexaene & 48 & 192\,059 & 2.6 && 109\,965 & 1.6 \\ \hline \hline \end{tabular} \bigskip \end{block} \end{frame} \begin{frame}{Recipe for computing two-electron integrals} \center \begin{tikzpicture} \begin{scope}[very thick, node distance=4cm,on grid,>=stealth', boxRR/.style={rectangle,draw,fill=green!40}, boxUB/.style={rectangle,draw,fill=orange!40}, boxFI/.style={rectangle,draw,fill=red!40}, integral/.style={rectangle,draw,fill=violet!40}], \node [integral, align=center] (1) {\textbf{The cake:} \\ Two-electron integrals \\ $\braket{\ba_1 \ba_2}{ \bb_1 \bb_2}$}; \node [boxUB, align=center] (2A) [below=of 1] {\textbf{Ingredient number 2:} \\ Recurrence relations \\ $\expval*{\ba_1^+} = \expval*{\ba_1} + \expval*{\ba_1^-}$}; \node [boxRR, align=center] (2B) [right=of 2A] {\textbf{Ingredient number 3:} \\ Upper bounds \\ $\abs{\braket{\ba_1 \ba_2}{ \bb_1 \bb_2}} \le B$}; \node [boxFI, align=center] (2C) [left=of 2A] {\textbf{Ingredient number 1:} \\ Fundamental integrals \\ $\braket{\bo\bo}{\bo\bo}^{\bm{m}}$}; \path (1) edge [<-] (2A) (1) edge [<-,bend right] (2B) (1) edge [<-,bend left] (2C) ; \end{scope} \end{tikzpicture} \end{frame} \begin{frame}{Late-contraction path algorithm (Head-Gordon-Pople \& PRISM inspired)} \begin{tikzpicture} \begin{scope}[ very thick, node distance=1.5cm,on grid,>=stealth', boxSP/.style={rectangle,draw,fill=purple!40}, box0m/.style={rectangle,draw,fill=red!40}, boxCm/.style={rectangle,draw,fill=gray!40}, boxA/.style={rectangle,draw,fill=red!40}, boxAA/.style={rectangle,draw,fill=red!40}, boxAAA/.style={rectangle,draw,fill=red!40}, boxC/.style={rectangle,draw,fill=gray!40}, boxCC/.style={rectangle,draw,fill=gray!40}, boxCCC/.style={rectangle,draw,fill=orange!40}, boxCCCCCC/.style={rectangle,draw,fill=green!40}, ], \node [boxSP, align=center] (SP) {Shell-pair \\ data}; \node [box0m, align=center] (0m) [right=of 1,xshift=1.25cm] {$\sbraket{00}{00}^{\bm{m}}$}; \node [boxCm, align=center] (Cm) [right=of 0m,xshift=1.75cm] {$\braket{00}{00}^{\bm{m}}$}; \node [boxA, align=center] (A) [below=of 0m] {$\sbraket{0 a_2}{00}^{\bm{m}}$}; \node [boxC, align=center] (C) [right=of A,xshift=1.75cm] {$\braket{0 a_2}{00}^{\bm{m}}$}; \node [boxAA, align=center] (AA) [below=of A] {$\sbraket{a_1 a_2}{00}$}; \node [boxCC, align=center] (CC) [right=of AA,xshift=1.75cm] {$\braket{a_1 a_2}{00}$}; \node [boxCCCCCC, align=center] (CCCC) [right=of CC,xshift=2cm] {$\braket{a_1 a_2}{b_1 b_2}$}; \path (SP) edge[->] node[below,blue]{T$_0$} (0m) (0m) edge[->] node[left,orange]{T$_1$} node [right,red]{VRR$_1$} (A) (0m) edge[->,gray!70] (Cm) (A) edge[->] node[left,orange]{T$_2$} node [right,red]{VRR$_2$} (AA) (A) edge[->,gray!70] (C) (AA) edge[->] node [below,blue]{CC} (CC) (Cm) edge[->,gray!70] (C) (C) edge[->,gray!70] (CC) (CC) edge[->] node [above,orange]{T$_3$} node [below,red]{HRR} (CCCC) ; \end{scope} \end{tikzpicture} \end{frame} %\begin{frame}{Screening algorithm for two-electron integrals} % %\resizebox{\textwidth}{!}{ %\begin{tikzpicture} % \begin{scope}[very thick, % node distance=2.5cm,on grid,>=stealth', % bound2/.style={diamond,draw,fill=blue!40}, % bound4/.style={diamond,draw,fill=blue!40}, % bound6/.style={diamond,draw,fill=blue!40}, % shell/.style={circle,draw,fill=green!40}, % shellpair/.style={circle,draw,fill=green!40}, % shellquartet/.style={circle,draw,fill=green!40}, % shell1/.style={rectangle,draw,fill=yellow!40}, % shell2/.style={rectangle,draw,fill=orange!40}, % shell3/.style={rectangle,draw,fill=red!40}, % integral/.style={rectangle,draw,fill=violet!40}], % \node [shell1, align=center] (1) {Primitive\\shells\\$\sket{a}$}; % \node [bound2, align=center] (B2) [right=of 1] {$\sexpval{B_2}$}; % \node [shell, align=center] (S1T) [above=of B2, yshift=-0.5cm] {$\sket{a}$}; % \node [shell, align=center] (S1B) [below=of B2, yshift=0.5cm] {$\sket{b}$}; % \node [shell2, align=center] (2) [right=of B2,xshift=0.75cm] {Contracted\\shell-pairs\\$\ket{ab}$}; % \node [bound4, align=center] (B4) [right=of 2] {$\expval{B_4}$} ; % \node [shellpair, align=center] (S2T) [above=of B4, yshift=-0.5cm] {$\ket{a_1b_1}$}; % \node [shellpair, align=center] (S2B) [below=of B4, yshift=0.5cm] {$\ket{a_2b_2}$}; % \node [shell3, align=center] (3) [right=of B4] {Two-Electron\\integrals\\$\braket{a_1b_1}{a_2b_2}$}; % \path % (1) edge [->,bend left] (S1T) % (1) edge [->,bend right] (S1B) % (S1T) edge [snake it] (B2) % (S1B) edge [snake it] (B2) % (B2) edge [->,color=red] node [below] {\small Contraction} (2) % (2) edge [->,bend left] (S2T) % (2) edge [->,bend right] (S2B) % (S2T) edge [snake it] (B4) % (S2B) edge [snake it] (B4) % (B4) edge [->] (3) % ; % \end{scope} %\end{tikzpicture} %} %\end{frame} \begin{frame}{Orthogonalization matrix} \red{\bf We are looking for a matrix in order to orthogonalize the AO basis, i.e.~$\bm{X}^\dag \cdot \bm{S} \cdot \bm{X} = \bm{1}$} \\ \bigskip \begin{block}{Symmetric (or L\"owdin) orthogonalization} \begin{equation} \text{$\bm{X} =\bm{S}^{-1/2} = \bm{U} \cdot \bm{s}^{-1/2} \cdot \bm{U}^\dag$ is one solution...} \end{equation} \purple{\bf Is it working?} \begin{equation} \bm{X}^\dag \cdot \bm{S} \cdot \bm{X} = \bm{S}^{-1/2} \cdot \bm{S} \cdot \bm{S}^{-1/2} = \bm{S}^{-1/2} \cdot \bm{S} \cdot \bm{S}^{-1/2} = \bm{I} \quad \green{\checkmark} \end{equation} \end{block} \begin{block}{Canonical orthogonalization} \begin{equation} \text{$\bm{X} =\bm{U} \cdot \bm{s}^{-1/2}$ is another solution (when you have linear dependencies)...} \end{equation} \purple{\bf Is it working?} \begin{equation} \bm{X}^\dag \cdot \bm{S} \cdot \bm{X} = \bm{s}^{-1/2} \cdot \underbrace{\bm{U}^{\dag} \cdot \bm{S} \cdot \bm{U}}_{\bm{s}} \cdot \bm{s}^{-1/2} = \bm{I} \quad \green{\checkmark} \end{equation} \end{block} \end{frame} \begin{frame}{Computation of the Fock matrix and energy} \begin{block}{Density matrix (closed-shell system)} \begin{equation} P_{\red{\mu \nu}} = 2 \sum_{i}^\text{occ} C_{\red{\mu} i} C_{\red{\nu} i} \end{equation} \end{block} \begin{block}{Fock matrix in the AO basis (closed-shell system)} \begin{equation} F_{\red{\mu\nu}} = H_{\red{\mu\nu}} + \underbrace{\sum_{\blue{\la \si}} P_{\blue{\la\si}} (\red{\mu\nu}|\blue{\la\si})}_{J_{\red{\mu \nu}} = \text{ Coulomb}} \underbrace{ - \frac{1}{2} \sum_{\blue{\la \si}} P_{\blue{\la\si}} (\red{\mu}\blue{\si}|\blue{\la}\red{\nu})}_{K_{\red{\mu \nu}} = \text{ exchange}} \end{equation} \end{block} \begin{block}{HF energy in the AO basis (closed-shell system)} \begin{equation} E_\text{HF} = \sum_{\red{\mu \nu}} P_{\red{\mu \nu}} H_{\red{\mu \nu}} + \frac{1}{2} \sum_{\red{\mu \nu} \blue{\la\si}} P_{\red{\mu \nu}} \qty[ (\red{\mu \nu} | \blue{\lambda \sigma}) - \frac{1}{2} (\red{\mu} \blue{\sigma} | \red{\lambda} \blue{\nu}) ] P_{\blue{\lambda\sigma}} \qqtext{or} \boxed{E_\text{HF} = \frac{1}{2} \text{Tr}{\qty[\bm{P} \cdot (\bm{H} + \bm{F})]}} \end{equation} \end{block} \end{frame} \begin{frame}{Computation of the Fock matrix and energy} \begin{algorithmic} \Procedure{Computing the Coulomb matrix}{} \For{$\red{\mu}=1,N$} \For{$\blue{\nu}=1,N$} \State $J_{\red{\mu}\blue{\nu}} = 0$ \Comment{Initialization of the array} \For{$\orange{\la}=1,N$} \For{$\violet{\si}=1,N$} \State $J_{\red{\mu}\blue{\nu}} = J_{\red{\mu}\blue{\nu}} + P_{\orange{\la}\violet{\si}} (\red{\mu}\blue{\nu}|\orange{\la}\violet{\si})$ \Comment{Accumulation step} \EndFor \EndFor \EndFor \EndFor \EndProcedure \Comment{\bf \red{This is a $\order{N^4}$ algorithm as it involves four loops}} \end{algorithmic} \end{frame} %%% SLIDE X %%% \begin{frame}{Resolution of the identity} \begin{block}{Resolution of the identity (RI) = a fancy way of writing 1} \begin{equation} \boxed{\sum_{\green{A}=1}^{\red{\infty}} |\green{A}) (\green{A}| = 1 \qqtext{and, in practice, } \sum_{\green{A}=1}^{\red{K}} |\green{A}) (\green{A}| \approx 1} \end{equation} \end{block} \begin{block}{Computing the Coulomb matrix with the RI} \begin{equation} \begin{split} J_{\red{\mu\nu}} & = \sum_{\blue{\la \si}} P_{\blue{\la\si}} (\red{\mu\nu}|\blue{\la\si}) \\ & \stackrel{\text{\green{RI}}}{=} \sum_{\blue{\la \si}} P_{\blue{\la\si}} \sum_{\green{A}} (\red{\mu\nu}|\green{A}) (\green{A}|\blue{\la\si}) \\ & = \sum_{\green{A}} (\red{\mu\nu}|\green{A}) \underbrace{\sum_{\blue{\la \si}} P_{\blue{\la\si}} (\green{A}|\blue{\la\si})}_{\order{KN^2} \text{ and $K$ storage}} = \underbrace{\sum_{\green{A}} (\red{\mu\nu}|\green{A}) I_{\green{A}}}_{\order{KN^2}} \end{split} \end{equation} \\ Similar (more effective) approaches are named Cholesky decomposition, low-rank approximation, etc. \end{block} \end{frame} % \begin{frame}{Computation of exact exchange} \begin{algorithmic} \Procedure{Computing the exchange matrix}{} \For{$\red{\mu}=1,N$} \For{$\blue{\nu}=1,N$} \State $K_{\red{\mu}\blue{\nu}} = 0$ \Comment{Initialization of the array} \For{$\orange{\la}=1,N$} \For{$\violet{\si}=1,N$} \State $K_{\red{\mu}\blue{\nu}} = K_{\red{\mu}\blue{\nu}} + P_{\orange{\la}\violet{\si}} (\red{\mu}\violet{\si}|\orange{\la}\blue{\nu})$ \Comment{Accumulation step} \EndFor \EndFor \EndFor \EndFor \EndProcedure \Comment{\bf \red{This is a $\order{N^4}$ algorithm and it's hard to play games...}} \end{algorithmic} \end{frame} \begin{frame}{Computation of DFT exchange} \begin{block}{LDA exchange (in theory) = cf Julien's lectures} \begin{gather} K_{\mu\nu}^\text{LDA} = \int \phi_{\mu}(\br) \violet{v_\text{xc}}(\br) \phi_{\nu}(\br) d\br = \frac{4}{3} C_\text{x} \overbrace{\int \phi_{\mu}(\br) \blue{\rho^{1/3}}(\br) \phi_{\nu}(\br) d\br}^{\text{\alert{no closed-form expression in general}}} \\ \blue{\rho}(\br) = \sum_{\mu \nu} \phi_{\mu}(\br) \blue{P_{\mu \nu}} \phi_{\nu}(\br) \end{gather} \end{block} \begin{block}{LDA exchange (in practice) = \alert{numerical integration via quadrature}} \begin{gather} \underbrace{K_{\mu\nu}^\text{LDA}}_{\green{\order{N_\text{grid} N^2}}} \approx \sum_{k=1}^{\purple{N_\text{grid}}} \underbrace{\orange{w_k}}_{\orange{\text{weights}}} \phi_{\mu}(\red{\br_k}) \violet{v_\text{xc}}(\underbrace{\red{\br_k}}_{\text{\red{roots}}}) \phi_{\nu}(\red{\br_k}) = \frac{4}{3} C_\text{x} \sum_{k=1}^{\purple{N_\text{grid}}} \orange{w_k} \phi_{\mu}(\red{\br_k}) \blue{\rho^{1/3}}(\red{\br_k}) \phi_{\nu}(\red{\br_k}) \\ \underbrace{\blue{\rho}(\red{\br_k})}_{\green{\order{N_\text{grid} N^2}}} = \sum_{\mu \nu} \phi_{\mu}(\red{\br_k}) \blue{P_{\mu \nu}} \phi_{\nu}(\red{\br_k}) \end{gather} \end{block} \end{frame} \begin{frame}{MP2 correlation energy} \begin{block}{MP2 is the simplest way of catching a good chunk of correlation:} \begin{equation} \begin{split} \green{E_\text{c}^\text{(2)}} &= \sum_{\red{ij}}^{\text{occ}}\sum_{\blue{ab}}^{\text{virt}} \frac{ \braket{\red{ij}}{\blue{ab}} (2 \braket{\red{ij}}{\blue{ab}} - \braket{\red{ij}}{\blue{ba}})} {\epsilon_{\red{i}} + \epsilon_{\red{j}} - \epsilon_{\blue{a}} - \epsilon_{\blue{b}}} \\ & = \underbrace{ 2 \sum_{\red{ij}}\sum_{\blue{ab}} \frac{ \braket{\red{ij}}{\blue{ab}}^2} {\epsilon_{\red{i}} + \epsilon_{\red{j}} - \epsilon_{\blue{a}} - \epsilon_{\blue{b}}} }_{\text{direct part}} - \underbrace{ \sum_{\red{ij}}\sum_{\blue{ab}} \frac{ \braket{\red{ij}}{\blue{ab}} \braket{\red{ij}}{\blue{ba}}} {\epsilon_{\red{i}} + \epsilon_{\red{j}} - \epsilon_{\blue{a}} - \epsilon_{\blue{b}}} }_{\text{exchange part}} \end{split} \end{equation} \centering \includegraphics[width=0.5\textwidth]{fig/MP2} \end{block} \end{frame} \begin{frame}{Computing the MP2 correlation energy} \begin{block}{How much does it cost to compute the MP2 correlation energy?} \begin{algorithmic} \Procedure{MP2 correlation energy}{} \State $\green{E_\text{c}^\text{(2)}} = 0$ \For{$\red{i}=1,O$} \For{$\red{j}=1,O$} \For{$\blue{a}=1,V$} \For{$\blue{b}=1,V$} \State $\purple{\Delta} = \epsilon_{\red{i}} + \epsilon_{\red{j}} - \epsilon_{\blue{a}} - \epsilon_{\blue{b}}$ \State $\green{E_\text{c}^\text{(2)}} = \green{E_\text{c}^\text{(2)}} + (2 \braket{\red{ij}}{\blue{ab}}^2 - \braket{\red{ij}}{\blue{ab}}\braket{\red{ij}}{\blue{ba}})/\purple{\Delta} $ \EndFor \EndFor \EndFor \EndFor \EndProcedure \Comment{\bf \red{$\order{N^4}$ because there are four loops!}} \end{algorithmic} \end{block} \end{frame} % %%% SLIDE X %%% \begin{frame}{AO to MO transformation (Take 1)} \begin{block}{The naive way...} \begin{equation} \underbrace{\green{(pq|rs)}}_{\text{\purple{\bf MO integrals}}} = \sum_{\red{\mu\nu\la\si}} c_{\red{\mu} \green{p}} c_{\red{\nu} \green{q}} c_{\red{\la} \green{r}} c_{\red{\si} \green{s}} \underbrace{\red{(\mu\nu|\la\si)}}_{\text{\purple{\bf AO integrals}}} \end{equation} \end{block} \begin{algorithmic} \scriptsize \Procedure{AO-to-MO Transformation}{} \For{$\red{p}=1,N$} \For{$\blue{q}=1,N$} \For{$\orange{r}=1,N$} \For{$\violet{s}=1,N$} \State $(\red{p}\blue{q}|\orange{r}\violet{s}) = 0$ \Comment{Initialization of the array} \For{$\red{\mu}=1,N$} \For{$\blue{\nu}=1,N$} \For{$\orange{\la}=1,N$} \For{$\violet{\si}=1,N$} \State $(\red{p}\blue{q}|\orange{r}\violet{s}) = (\red{p}\blue{q}|\orange{r}\violet{s}) + c_{\red{\mu p}} c_{\blue{\nu q}} c_{\orange{\la r}} c_{\violet{\si s}} (\red{\mu}\blue{\nu}|\orange{\la}\violet{\si})$ \Comment{Accumulation step} \EndFor \EndFor \EndFor \EndFor \EndFor \EndFor \EndFor \EndFor \Comment{\bf \red{This is a $\order{N^8}$ algorithm! You won't do much quantum chemistry with this...}} \EndProcedure \end{algorithmic} \end{frame} % %%% SLIDE X %%% \begin{frame}{AO to MO transformation (Take 2)} \begin{block}{Semi-direct algorithm...} \begin{equation} (\red{p}\blue{q}|\orange{r}\violet{s}) = \underbrace{ \sum_{\red{\mu p}} c_{\red{\mu p}} \underbrace{ \qty{ \sum_{\blue{\nu q}} c_{\blue{\nu q}} \underbrace{ \qty[ \sum_{\orange{\la r}} c_{\orange{\la r}} \underbrace{ \qty( \sum_{\violet{\si s}} c_{\violet{\si s}} (\red{\mu}\blue{\nu}|\orange{\la}\violet{\si}) ) }_{\text{\violet{Step \#1}}} ] }_{\text{\orange{Step \#2}}} } }_{\text{\blue{Step \#3}}} }_{\text{\red{Step \#4}}} \end{equation} \end{block} \end{frame} %%% SLIDE X %%% \begin{frame}{Semi-direct algorithm} \begin{block}{Semi-direct algorithm... \violet{Step \#1}} \begin{algorithmic} \Procedure{Semi-Direct Algorithm (\violet{Step \#1})}{} \State Allocate temporary array $I$ of size $N^4$ \For{$\red{\mu}=1,N$} \For{$\blue{\nu}=1,N$} \For{$\orange{\la}=1,N$} \For{$\violet{\si}=1,N$} \For{$\violet{s}=1,N$} \State $I_{\red{\mu}\blue{\nu}\orange{\la}\violet{s}} = I_{\red{\mu}\blue{\nu}\orange{\la}\violet{s}} + c_{\violet{\si s}} (\red{\mu}\blue{\nu}|\orange{\la}\violet{\si})$ \EndFor \EndFor \EndFor \EndFor \EndFor \Comment{\violet{Step \#1} costs $\order{N^5}$ and $\order{N^4}$ storage} \EndProcedure \end{algorithmic} \end{block} \end{frame} % \begin{frame}{Semi-direct algorithm} \begin{block}{Semi-direct algorithm... \orange{Step \#2}} \begin{algorithmic} \Procedure{Semi-Direct Algorithm (\orange{Step \#2})}{} \State Allocate temporary array $J$ of size $N^4$ \For{$\red{\mu}=1,N$} \For{$\blue{\nu}=1,N$} \For{$\orange{\la}=1,N$} \For{$\orange{r}=1,N$} \For{$\violet{s}=1,N$} \State $J_{\red{\mu}\blue{\nu}\orange{r}\violet{s}} = J_{\red{\mu}\blue{\nu}\orange{r}\violet{s}} + c_{\orange{\la r}} I_{\red{\mu}\blue{\nu}\orange{\la}\violet{s}}$ \EndFor \EndFor \EndFor \EndFor \EndFor \Comment{\orange{Step \#2} costs $\order{N^5}$ and $\order{N^4}$ storage} \EndProcedure \end{algorithmic} \end{block} \end{frame} % \begin{frame}{Semi-direct algorithm} \begin{block}{Semi-direct algorithm... \blue{Step \#3}} \begin{algorithmic} \Procedure{Semi-Direct Algorithm (\blue{Step \#3})}{} \For{$\red{\mu}=1,N$} \For{$\blue{\nu}=1,N$} \For{$\blue{q}=1,N$} \For{$\orange{r}=1,N$} \For{$\violet{s}=1,N$} \State $I_{\red{\mu}\blue{q}\orange{r}\violet{s}} = I_{\red{\mu}\blue{q}\orange{r}\violet{s}} + c_{\blue{\nu q}} J_{\red{\mu}\blue{\nu}\orange{r}\violet{s}}$ \EndFor \EndFor \EndFor \EndFor \EndFor \Comment{\blue{Step \#3} costs $\order{N^5}$ and no new storage} \EndProcedure \end{algorithmic} \end{block} \end{frame} % \begin{frame}{Semi-direct algorithm} \begin{block}{Semi-direct algorithm... \red{Step \#4}} \begin{algorithmic} \Procedure{Semi-Direct Algorithm (\red{Step \#4})}{} \For{$\red{\mu}=1,N$} \For{$\red{p}=1,N$} \For{$\blue{q}=1,N$} \For{$\orange{r}=1,N$} \For{$\violet{s}=1,N$} \State $(\red{p}\blue{q}|\orange{r}\violet{s}) = (\red{p}\blue{q}|\orange{r}\violet{s}) + c_{\red{\mu p}} I_{\red{\mu}\blue{q}\orange{r}\violet{s}}$ \EndFor \EndFor \EndFor \EndFor \EndFor \Comment{\red{Step \#4} costs $\order{N^5}$ and no new storage} \EndProcedure \end{algorithmic} \end{block} \end{frame} \begin{frame}{Laplace transform} \begin{block}{Alml{\"o}f's trick} \begin{equation} \boxed{\frac{1}{\purple{\Delta}} = \blue{\int_0^\infty} \exp(-\purple{\Delta} \blue{t}) d\blue{t}} \end{equation} \begin{equation} \begin{split} \green{E_\text{c}^\text{(2)}} & = \frac{1}{4} \sum_{ij}\sum_{ab} \frac{\mel{ij}{}{ab}^2} {\purple{\epsilon_{i} + \epsilon_{j} - \epsilon_{a} - \epsilon_{b}}} \\ & = \frac{1}{4} \blue{\int_0^{\infty}} \sum_{ij}\sum_{ab} \mel{ij}{}{ab}^2 \exp[-(\purple{\epsilon_{i} + \epsilon_{j} - \epsilon_{a} - \epsilon_{b}}) \blue{t}] d\blue{t} \\ & = \frac{1}{4} \blue{\int_0^{\infty}} \sum_{ij}\sum_{ab} \mel{i(\blue{t})j(\blue{t})}{}{a(\blue{t})b(\blue{t})}^2 \end{split} \end{equation} \begin{equation} \ket*{p} \equiv \ket*{\varphi_p(0)} \qqtext{and} \ket*{p(\blue{t})} \equiv \ket*{\varphi_p(\blue{t})} = \ket*{\varphi_p(0) e^{\pm\frac{1}{2} \purple{\epsilon_p} \blue{t}}} \end{equation} \\ \bigskip At this stage, one can play more games (e.g., localized orbitals, RI, stochastic sampling, quadrature, etc) \end{block} \end{frame} %%% SLIDE 2 %%% \begin{frame}{Theory} \begin{block}{A few random thoughts about coupled cluster (CC)} \begin{itemize} \bigskip \item CC theory comes from \alert{nuclear physics} (Thank you Physics!) \bigskip \item The idea behind CC is to include \alert{all corrections} of a given type to \alert{infinite order} \bigskip \item The CC wave function is an \alert{exponential \textit{ansatz}} \bigskip \item The CC energy is \alert{size-extensive}, but \alert{non-variational} \bigskip \item CC is considered as the \alert{gold standard} for weakly correlated systems \end{itemize} \end{block} \end{frame} %%% SLIDE 3 %%% \begin{frame}{Theory} \begin{itemize} \item CC wave function \begin{equation} \PsiCC = \alert{e^{\hT{}{}}} \PsiO% \qquad \text{where $\PsiO$ is a reference wave function} \end{equation} \item Excitation operator \begin{equation} \hT{}{} = \hT{1}{} + \hT{2}{} + \ldots + \hT{\nEl}{}% \qquad \text{where $\nEl$ is the number of electrons} \end{equation} \item Exponential \textit{ansatz} \begin{equation} \begin{split} e^{\hT{}{}} & = \hI + \hT{}{} + \frac{1}{2!} \hT{}{2} + \frac{1}{3!} \hT{}{3} + \ldots \\ & = \hI + \hT{1}{} + \qty( \underbrace{\hT{2}{}}_{\text{\green{connected}}} + \frac{1}{2} \underbrace{\hT{1}{2}}_{\text{\alert{disconnected}}} ) + \qty( \hT{3}{} + \hT{2}{} \hT{1}{} + \frac{1}{6} \hT{3}{} ) \\ & + \qty( \hT{4}{} + \hT{3}{} \hT{1}{} + \frac{1}{2} \underbrace{\hT{2}{2}}_{\text{\blue{two pairs of electrons}}} + \frac{1}{2} \hT{2}{} \hT{1}{2} + \frac{1}{24} \underbrace{\hT{4}{}}_{\text{ \purple{four electrons}}} ) + \ldots \end{split} \end{equation} \end{itemize} \end{frame} %%% SLIDE 4 %%% \begin{frame}{Excitation operators} \begin{itemize} \item Singles \begin{equation} \hT{1}{} \PsiO = \sum_{i} \sum_{a} \underbrace{\amp{i}{a}}_{\text{\alert{amplitudes}}} \Det{i}{a} \end{equation} \item Doubles \begin{equation} \hT{2}{} \PsiO = \sum_{i \tau$} \State Form linear array $\green{u_{ij}^{ab}}$ \State Compute intermediate arrays $\mel*{kl}{X_1}{ij}$, $\mel*{b}{X_2}{c}$, $\mel*{k}{X_3}{j}$, and $\mel*{il}{X_4}{ad}$. \State Form quadratic array $\orange{v_{ij}^{ab}}$ \State Compute residues: $\blue{r_{ij}^{ab}} = \mel*{ij}{}{ab} + \Delta_{ij}^{ab} \amp{ij}{ab} + \green{u_{ij}^{ab}} + \orange{v_{ij}^{ab}}$ \State Update amplitudes: $\red{t_{ij}^{ab}} \leftarrow \red{t_{ij}^{ab}} - \blue{r_{ij}^{ab}}/\Delta_{ij}^{ab}$ \EndWhile \State Compute CCD energy: $\ECCD = \EHF + \frac{1}{4} \sum_{ij} \sum_{ab} \red{t_{ij}^{ab}} \mel*{ij}{}{ab}$ \EndProcedure \end{algorithmic} \end{block} \end{column} \begin{column}{0.3\textwidth} \centering \includegraphics[width=\textwidth]{fig/Diagrams-CCD} \end{column} \end{columns} \end{frame} %%%% FINAL SLIDE %%% %\begin{frame}{Further reading for CC methods} % \begin{itemize} % \item Pople et al. IJQC 14 (1978) 545 % \bigskip % \item Scuseria et al, JCP 86 (1987) 2881 % \bigskip % \item Jensen, \textit{``Introduction to Computational Chemistry''} (Wiley) % \bigskip % \item Crawford \& Schaefer, \textit{``An Introduction to Coupled Cluster Theory for Computational Chemists''}, Reviews in Computational Chemistry, Vol.~14 (2000) % \bigskip % \item Shavitt \& Bartlett, \textit{``Many-Body Methods in Chemistry and Physics: MBPT and Coupled-Cluster Theory''} (Cambridge University Press) % \end{itemize} %\end{frame} %%% FINAL SLIDE %%% %----------------------------------------------------- \section{Books} %----------------------------------------------------- \begin{frame}{Good books} \begin{columns} \begin{column}{0.7\textwidth} \begin{itemize} \item Introduction to Computational Chemistry (Jensen) \\ \vspace{1cm} \item Essentials of Computational Chemistry (Cramer) \\ \vspace{1cm} \item Modern Quantum Chemistry (Szabo \& Ostlund) \\ \vspace{1cm} \item Molecular Electronic Structure Theory (Helgaker, Jorgensen \& Olsen) \\ \vspace{1cm} \end{itemize} \end{column} \begin{column}{0.3\textwidth} \centering \includegraphics[height=0.3\textwidth]{fig/Jensen} \\ \bigskip \includegraphics[height=0.3\textwidth]{fig/Cramer} \\ \bigskip \includegraphics[height=0.3\textwidth]{fig/Szabo} \\ \bigskip \includegraphics[height=0.3\textwidth]{fig/Helgaker} \end{column} \end{columns} \end{frame} \end{document}