From 90408541b5af7ce65b837c7de256a8973ad298df Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Tue, 2 Apr 2024 11:25:38 +0200 Subject: [PATCH] Theory OK --- Manuscript/stochastic_triples.bib | 14 +++++++++++++- Manuscript/stochastic_triples.tex | 27 ++++++++++++++++++--------- 2 files changed, 31 insertions(+), 10 deletions(-) diff --git a/Manuscript/stochastic_triples.bib b/Manuscript/stochastic_triples.bib index 4bbcd18..5fa374a 100644 --- a/Manuscript/stochastic_triples.bib +++ b/Manuscript/stochastic_triples.bib @@ -247,4 +247,16 @@ i@article{watson_2016, } - +@article{rendell_1991, + author = {Rendell, Alistair P. and Lee, Timothy J. and Komornicki, Andrew}, + title = {{A parallel vectorized implementation of triple excitations in CCSD(T): application to the binding energies of the AlH3, AlH2F, AlHF2 and AlF3 dimers}}, + journal = {Chem. Phys. Lett.}, + volume = {178}, + number = {5}, + pages = {462--470}, + year = {1991}, + month = apr, + issn = {0009-2614}, + publisher = {North-Holland}, + doi = {10.1016/0009-2614(91)87003-T} +} diff --git a/Manuscript/stochastic_triples.tex b/Manuscript/stochastic_triples.tex index 52dfc0c..72add4c 100644 --- a/Manuscript/stochastic_triples.tex +++ b/Manuscript/stochastic_triples.tex @@ -122,13 +122,13 @@ that were previously computationally prohibitive. Coupled cluster (CC) theory is a powerful quantum mechanical approach widely used in computational chemistry and physics to describe the electronic structure of atoms, molecules, and materials. It offers a systematic and rigorous framework for accurate predictions of molecular properties and reactions by accounting for electron correlation effects beyond the mean-field approximation. -Among the various variants of the CC method, the CCSD(T) method stands as the gold standard of quantum chemistry. -CCSD(T), which incorporates singles, doubles, and a perturbative treatment of triples, has demonstrated exceptional accuracy and reliability, making it one of the preferred choices for benchmark calculations and highly accurate predictions. -The CCSD(T) method has found successful applications in a diverse range of areas, including spectroscopy,\cite{villa_2011,watson_2016,vilarrubias_2020} reaction kinetics,\cite{dontgen_2015,castaneda_2012} and materials design,\cite{zhang_2019} and has played a pivotal role in advancing our understanding of complex chemical phenomena. +Among the various variants of the CC method, the Coupled Cluster Singles and Doubles with perturbative Triples method, CCSD(T), stands as the gold standard of quantum chemistry. +CCSD(T) has demonstrated exceptional accuracy and reliability, making it one of the preferred choices for benchmark calculations and highly accurate predictions. +It has found successful applications in a diverse range of areas, including spectroscopy,\cite{villa_2011,watson_2016,vilarrubias_2020} reaction kinetics,\cite{dontgen_2015,castaneda_2012} and materials design,\cite{zhang_2019} and has played a pivotal role in advancing our understanding of complex chemical phenomena. In the context of CC theory, perturbative triples represent an important contribution to the accuracy of electronic structure calculations.\cite{stanton_1997} -However, the computational cost associated with their calculation can be prohibitively high, especially for large molecular systems. -The CCSD(T) method, which includes the perturbative treatment of triples, is known to have a computational scaling of $\order{N^7}$, where $N$ represents the system size. +However, the computational cost associated with the calculation of this correction can be prohibitively high, especially for large systems. +The inclusion of the perturbative triples in the CCSD(T) method leads to a computational scaling of $\order{N^7}$, where $N$ is proportional to the number of molecular orbitals. This scaling can rapidly become impractical, posing significant challenges in terms of computational resources and time requirements. To address this computational bottleneck, our goal is to develop a novel semi-stochastic algorithm that brings back the computational time to a level smaller or comparable to that of the CCSD method, which has a scaling of $\order{N^6}$, while ensuring well-controlled approximations. @@ -154,21 +154,30 @@ E_{(T)} = \sum_{ijk\,abc} E_{ijk}^{abc}, is a sum of $N_{\text{o}}^3 \times N_{\text{v}}^3$ terms, where $N_{\text{o}}^3$ and $N_{\text{v}}^3$ denote the number of occupied and virtual molecular orbitals, respectively. Each individual term is expressed as \begin{equation} - E_{ijk}^{abc} = \frac{(4 W_{ijk}^{abc} + + E_{ijk}^{abc} = \frac{1}{3} \frac{(4 W_{ijk}^{abc} + W_{ijk}^{bca} + W_{ijk}^{cab}) (V_{ijk}^{abc} - V_{ijk}^{cba})}{\epsilon_i + \epsilon_j + \epsilon_k - \epsilon_a - \epsilon_b - \epsilon_c}, \end{equation} -and depends on the canonical orbital energies $\epsilon$, and on the tensors $W$ and $V$. -The indices $i,j,k$ and $a,b,c$ refer to occupied and virtual orbitals, respectively. +and depends on the canonical orbital energies $\epsilon$, and on the tensors $W$ and $V$: +\begin{align} +W_{ijk}^{abc} & = P_{ijk}^{abc} \qty( \sum_d^{\text{virt}} \qty(bd|ai) t_{kj}^{cd} - + \sum_l^{\text{occ}} \qty(ck|jl) t_{ab}^{il}) \\ +V_{ijk}^{abc} & = W_{ijk}^{abc} + \qty(bj|ck) t_i^a + \qty(ai|ck) t_j^b + \qty(ai|bj) t_k^c +\end{align} +$P_{ijk}^{abc}$ is a permutation operator, $t$ are the CCSD amplitudes, and +the indices $i,j,k$ and $a,b,c$ refer to occupied and virtual orbitals, respectively. The bottleneck of the perturbative triples correction is the computation of the $W$ tensor -which requires $\order{N_o^3 \times N_v^4}$ operations. Fortunately, most of +which requires $\order{N_o^3 \times N_v^4}$ operations. +Fortunately, most of the operations involved in the computation of $W$ can be recast into matrix multiplications,\cite{form_w_abc} which are among the most efficient operations than can be executed on modern CPUs and accelerators.\cite{ma_2011,haidar_2015,dinapoli_2014,springer_2018} +In the algorithm proposed by Rendell\cite{rendell_1991}, for each given triplet $(abc)$, the sub-tensors $W_{ijk}(abc)$ and $V_{ijk}(abc)$ are computed and immediately utilized to calculate their contribution to $E_{ijk}(abc)$. Here, we propose a similar approach but introduce a semi-stochastic algorithm to randomly select the triplets $(abc)$, circumventing the need to compute all contributions. + %=================================================================% \section{Semi-Stochastic Algorithm} \label{sec:algorithm}