diff --git a/Notes_CSF/Nebo_Rough Work.nebo_Page_14.pdf b/Notes_CSF/Nebo_Rough Work.nebo_Page_14.pdf new file mode 100644 index 00000000..4d60d414 Binary files /dev/null and b/Notes_CSF/Nebo_Rough Work.nebo_Page_14.pdf differ diff --git a/Notes_CSF/TODO.org b/Notes_CSF/TODO.org new file mode 100644 index 00000000..f3033c1e --- /dev/null +++ b/Notes_CSF/TODO.org @@ -0,0 +1,29 @@ +* popcnt pour avoir les determinants par NSOMO +* Trier par Nsomo +* Tableau (i) -> indice du 1er CFG qui a i SOMO +* Boucler sur toutes les CFG mono-excitees par rapport a toutes les autres + +* p,q,cfg -> 0|1|2|3 (Type d'excitation) + + +222200000000 +000010100101 +p->q +222200200000 +000000000101 + +SOMO->SOMO + +DOMO -> SOMO + +do p in DO + do q in not(DO or SO) + p->q + 2 DOMO->VMO + + +do p in DO + do q in not(DO or SO) + p->q + 2 DOMO->VMO +DOMO -> VMO +test si bit=1 dans DO +test si bit=1 dans VO diff --git a/Notes_CSF/Theory_CFG_CIPSI.tex b/Notes_CSF/Theory_CFG_CIPSI.tex new file mode 100644 index 00000000..7ddbb2bc --- /dev/null +++ b/Notes_CSF/Theory_CFG_CIPSI.tex @@ -0,0 +1,213 @@ +% Created 2020-12-14 Mon 14:09 +% Intended LaTeX compiler: pdflatex +\documentclass[11pt]{article} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{graphicx} +\usepackage{grffile} +\usepackage{longtable} +\usepackage{wrapfig} +\usepackage{rotating} +\usepackage[normalem]{ulem} +\usepackage{amsmath} +\usepackage{textcomp} +\usepackage{amssymb} +\usepackage{capt-of} +\usepackage{hyperref} +\usepackage{minted} +\usepackage{braket} +\author{Vijay Gopal Chilkuri (vijay.gopal.c@gmail.com)} +\date{2020-12-08 Tue 08:27} +\title{CFG CIPSI} +\hypersetup{ + pdfauthor={Vijay Gopal Chilkuri (vijay.gopal.c@gmail.com)}, + pdftitle={CFG CIPSI}, + pdfkeywords={}, + pdfsubject={}, + pdfcreator={Emacs 26.3 (Org mode 9.4)}, + pdflang={English}} +\begin{document} + +\maketitle +\tableofcontents + + +\section{Biblio} +\label{sec:org471cc15} +\section{Theoretical background} +\label{sec:org2af35e7} + +Here we describe the main theoretical background and definitions of the +Configuration (CFG) based CIPSI algorithm. The outline of the document is as follows. +First, we give some definitions of the CFG many-particle basis follwed by the +definitions of the overlap, one-particle, and two-particle matrix-elements. Finally, +an algorithm is presented for the sigma-vector (\(\sigma\)-vector defined later) calculation using +the CFG basis. + + +\subsection{Definitinon of CI basis} +\label{sec:org9ec07e3} + +In CFG based CIPSI, the wavefunction is represented in CFG basis +as shown in Eq: \ref{eq:orgc760af7}. + +\newcommand{\Ncfg}{N_{\text{CFG}}} +\newcommand{\Ncsf}{N_{\text{CSF}}} +\newcommand{\Nsomo}{N_{\text{SOMO}}} +\begin{equation} +\label{eq:orgc760af7} +\ket{\Psi} = \sum_{i=1}^{\Ncfg} \sum_{j=1}^{\Ncsf(i)} c_{ij} {^S\ket{\Phi^j_i}} +\end{equation} + + +where the \(\ket{\Phi^j_i}\) represent Configuration State Functions (CSFs) +which are expanded in terms of Bonded functions (BFs) as shown in +\ref{eq:org9412d75}. +\begin{equation} +\label{eq:org9412d75} +\ket{\Phi^j_i} = \sum_k O^{\Nsomo(i)}_{kj} \ket{^S\phi_k(i,j)} +\end{equation} +where the functions \(\ket{^S\phi_k(i,j)}\) represent the BFs for the CFG +\(\ket{^S\Phi_i}\). +The coefficients \(O^b_{a,k}\) depend only on the number of SOMOs +in \(\Phi_i\). + +Each CFG contains a list of CSFs related to it which describes the +spin part of the wavefunction (see Eq: \ref{eq:org9a932e6}) which is +encoded in the BFs as shown below in Eq: \ref{eq:orgd7ae34a}. + + +\begin{equation} +\label{eq:org9a932e6} +\ket{^S\Phi_i} = \left\{ \ket{^S\Phi^1_i}, \ket{^S\Phi^2_i}, \dots, \ket{^s\Phi^{\Ncsf}_i} \right\} +\end{equation} + + + +\begin{equation} +\label{eq:org1d5619f} +\mathbf{c}_i = \left\{ c^1_i, c^2_i, \dots, c^{\Ncsf}_i \right\} +\end{equation} + + +Each of the CSFs belonging to the CFG \(\ket{^S\Phi_i}\) have coefficients +associated to them as shown in Eq: \ref{eq:org1d5619f}. Crucially, the bonded functions +defined in Eq: \ref{eq:orgd7ae34a} are not northogonal to each other. + + +\begin{equation} +\label{eq:orgd7ae34a} +\ket{^S\phi_k(i,j)} = (a\bar{a})\dots (b\ c) (d (e +\end{equation} +\(i\) is the index of the CFG and \(j\) determines the coupling. + + +The bonded functions are made up of products of slater determinants. There are +three types of determinants, first, the closed shell pairs \((a\bar{a})\). Second, +the open-shell singlet pairs \((b\ c)\) which are expanded as +\((b\ c) = \frac{\ket{b\bar{c}}-\ket{\bar{b}c}}{\sqrt{2}}\). Third, the +open-shell SOMOs which are coupled parallel and account for the total spin of the +wavefunction \((l (m \dots\). They are shown as open brackets. + +\subsection{Overlap of the wavefunction} +\label{sec:orgf2a5d5d} + +Once the wavefunction has been expanded in terms of the CSFs, the most fundamental +operation is to calculate the overlap between two states. The overlap in the +basis of CSFs is defined as shown in Eq: \ref{eq:org48d76cc}. + + +\begin{equation} +\label{eq:org48d76cc} +\braket{^S\Phi_i|^S\Phi_j} = \sum_{kl} C_i C_j \braket{^S\Psi^k_i|^S\Psi^l_j} +\end{equation} + + +Where the sum is over the CSFs \(k\) and \(l\) corresponding to the \(i\) +and \(j\) CFGs respectively. The overlap between the CSFs can be expanded in terms +of the BFs using the definition given in Eq: \ref{eq:org9412d75} and +Eq: \ref{eq:org9a932e6} as given in Eq: \ref{eq:orge9a0815}. + + +\begin{equation} +\label{eq:orge9a0815} +\braket{^S\Phi^k_i|^S\Phi^l_j} = \sum_m \sum_n \left( O^k_{i,m}\right)^{\dagger} \braket{^S\phi_m(i,k)|^S\phi_n(j,l)} O^l_{j,n} +\end{equation} + + +Therefore, the overlap between two CSFs can be expanded in terms of the overlap +between the constituent BFs. The overlap matrix \(S_{mn}\) is of dimension \(\left( N^k_{N_{BF}} , N^l_{N_{BF}} \right)\). +The equation shown above (Eq: \ref{eq:orge9a0815}) can be written in marix-form as +shown below in Eq: \ref{eq:orgd608801}. + +\begin{equation} +\label{eq:orgd608801} +\braket{^S\Phi_i|^S\Phi_j} = \left( C_{i,1} \right)^{\dagger} \mathbf{O}_i\cdot\mathbf{S}_{ij}\cdot\mathbf{O}_j C_{j,1} +\end{equation} + + +Note that the overlap between two CFGs does not depend on the orbital +labels. It only depends on the number of Singly Occupied Molecular Orbitals +(SOMOs) therefore it can be pretabulated. Actually, it is possible to +redefine the CSFs in terms of a linear combination of BFs such that +\(S_{ij}\) becomes the identity matrix. In this case, one needs to store the +orthogonalization matrix \(\mathbf{\tilde{O}}_i\) which is given by +\(\mathbf{O}_i\cdot S^{1/2}_i\) for a given CFG \(i\). Note that the a CFG +\(i\) is by definition of an orthonormal set of MOs automatically orthogonal +to a CFG \(j\) with a different occupation. + +\subsection{Definition of matrix-elements} +\label{sec:org4e0679d} + +The matrix-element (ME) evaluation follows a similar logic as the evalulation of +the overlap. However, here the metric is the one-, or two-particle operator \(\hat{E}_{pq}\) +or \(\hat{E}_{pq}\hat{E}_{rs}\) as shown in Eq: \ref{eq:org68e7cb8} and Eq: \ref{eq:orge4248f3}. + +\begin{equation} +\label{eq:org68e7cb8} +\braket{^S\Phi^k_i|\hat{O}_{pq}|^S\Phi^l_j} = \left( C_{i,1} \right)^{\dagger} \mathbf{O}_i\cdot\mathbf{A}^{pq}_{ij}\cdot\mathbf{O}_j C_{j,1} +\end{equation} + +\begin{equation} +\label{eq:orge4248f3} +\braket{^S\Phi^k_i|\hat{O}_{pq,rs}|^S\Phi^l_j} = \sum_K \left( C_{i,1} \right)^{\dagger} \mathbf{O}_i\cdot\mathbf{A}^{pq}_{ik}\cdot\mathbf{O}_k \mathbf{O}_k\cdot\mathbf{A}^{rs}_{kj}\cdot\mathbf{O}_j C_{j,1} +\end{equation} + + +Where, \(\hat{O}_{pq}\) and \(hat{O}_{pq,rs}\) represent an arbitrary one-, and +two-particle operators respectively. Importantly, the one-, and two-particle +matrix-element evaluation can be recast into an effecient matrix multiplication +form which is crucial for a fast evaluation of the action of the operators +\(\hat{O}_{pq}\) and \(hat{O}_{pq,rs}\). The matrix \(\mathbf{A}^{pq}_{ij}\) contains +the result of the operation \(\braket{^S\Phi^k_i|\hat{O}_{pq}|^S\Phi^l_j}\) in terms +of BFs and is therefore of size \(NCSF(i) \textit{x} NBF(i)\). In this formulation, the determinant basis is entirely avoided. +Note that the size and contents of the matrix \(\mathbf{A}^{pq}_{ij}\) depends +only on the total number of SOMOs and the total spin \(S\), therefore, an optimal +prototyping scheme can be deviced for a rapid calculaiton of these matrix contractions. +The resolution of identity (RI) is used to evaluate the two-particle operator since +this alleviates the necessacity to explicity construct two-particle matrix-elements +\(\braket{^S\Phi^k_i|\hat{O}_{pq,rs}|^S\Phi^l_j}\) directly. + +\subsection{Sigma-vector evaluation} +\label{sec:orge1be4a8} + +Once the \(\mathbf{A}^{pq}_{ij}\) matrices have been constructed for the given +selected list of CFGs, the prototype lists for the \(\mathbf{A}^{pq}_{ij}\) matrices +can be constructed. Following this, one can proceede to the evaluation of the sigma-vector +as defined in the Eq \ref{eq:org3f76f3d}. + + +\begin{equation} +\label{eq:org3f76f3d} +\sigma = \sum_{pq} \tilde{h}_{pq}\hat{E}_{pq}|\ket{^S\Phi^l_j} + \frac{1}{2}\sum_{pq,rs} g_{pq,rs} \hat{E}_{pq}\hat{E}_{rs}|\ket{^S\Phi^l_j} +\end{equation} + +The one-electron part of the sigma-vector can be calculated as shown in Eq: \ref{eq:org68e7cb8} +and the two-electron part can be calculated using the RI as shown in Eq: \ref{eq:orge4248f3}. +The most expensive part involves the two-particle operator as shown on the RHS of Eq: \ref{eq:org3f76f3d}. +In this CFG formulation, the cost intensive part of the sigma-vector evaluation has been recast +into an efficient BLAS matrix multiplication operation. Therefore, this formulation is the most efficient +albeit at the cost of storing the prototype matrices \(\mathbf{A}^{pq}_{ij}\). However, where the total spin +is small and the largest number of SOMOs does not exceed 14, the \(\mathbf{A}^{pq}_{ij}\) matrices +can be stored in memory. +\end{document} \ No newline at end of file diff --git a/Theory_CFG_CIPSI.org b/Theory_CFG_CIPSI.org deleted file mode 100644 index 089e296c..00000000 --- a/Theory_CFG_CIPSI.org +++ /dev/null @@ -1,181 +0,0 @@ -#+TITLE: CFG CIPSI -#+AUTHOR: Vijay Gopal Chilkuri (vijay.gopal.c@gmail.com) -#+DATE: 2020-12-08 Tue 08:27 -#+startup: latexpreview - -#+LATEX_HEADER: \usepackage{braket} - -* Biblio -* Theoretical background - - Here we describe the main theoretical background and definitions of the - Configuration (CFG) based CIPSI algorithm. The outline of the document is as follows. - First, we give some definitions of the CFG many-particle basis follwed by the - definitions of the overlap, one-particle, and two-particle matrix-elements. Finally, - an algorithm is presented for the sigma-vector (\( \sigma \)-vector defined later) calculation using - the CFG basis. - - -** Definitinon of CI basis - - In CFG based CIPSI, the wavefunction is represented in CFG basis - as shown in Eq: [[Eq:definebasis1]]. - - #+LATEX: \newcommand{\Ncfg}{N_{\text{CFG}}} - #+LATEX: \newcommand{\Ncsf}{N_{\text{CSF}}} - #+LATEX: \newcommand{\Nsomo}{N_{\text{SOMO}}} - #+NAME: Eq:definebasis1 - \begin{equation} - \ket{\Psi} = \sum_{i=1}^{\Ncfg} \sum_{j=1}^{\Ncsf(i)} c_{ij} {^S\ket{\Phi^j_i}} - \end{equation} - - - where the \(\ket{\Phi^j_i}\) represent Configuration State Functions (CSFs) - which are expanded in terms of Bonded functions (BFs) as shown in - [[Eq:definebasis2]]. - #+NAME: Eq:definebasis2 - \begin{equation} - \ket{\Phi^j_i} = \sum_k O^{\Nsomo(i)}_{kj} \ket{^S\phi_k(i,j)} - \end{equation} - where the functions \(\ket{^S\phi_k(i,j)}\) represent the BFs for the CFG - \(\ket{^S\Phi_i}\). - The coefficients \(O^b_{a,k}\) depend only on the number of SOMOs - in \(\Phi_i\). - - Each CFG contains a list of CSFs related to it which describes the - spin part of the wavefunction (see Eq: [[Eq:definebasis3]]) which is - encoded in the BFs as shown below in Eq: [[Eq:definebasis5]]. - - - #+NAME: Eq:definebasis3 - \begin{equation} - \ket{^S\Phi_i} = \left\{ \ket{^S\Phi^1_i}, \ket{^S\Phi^2_i}, \dots, \ket{^s\Phi^{\Ncsf}_i} \right\} - \end{equation} - - - - #+NAME: Eq:definebasis4 - \begin{equation} - \mathbf{c}_i = \left\{ c^1_i, c^2_i, \dots, c^{\Ncsf}_i \right\} - \end{equation} - - - Each of the CSFs belonging to the CFG \(\ket{^S\Phi_i}\) have coefficients - associated to them as shown in Eq: [[Eq:definebasis4]]. Crucially, the bonded functions - defined in Eq: [[Eq:definebasis5]] are not northogonal to each other. - - - #+NAME: Eq:definebasis5 - \begin{equation} - \ket{^S\phi_k(i,j)} = (a\bar{a})\dots (b\ c) (d (e - \end{equation} - $i$ is the index of the CFG and $j$ determines the coupling. - - - The bonded functions are made up of products of slater determinants. There are - three types of determinants, first, the closed shell pairs \((a\bar{a})\). Second, - the open-shell singlet pairs \((b\ c)\) which are expanded as - \((b\ c) = \frac{\ket{b\bar{c}}-\ket{\bar{b}c}}{\sqrt{2}}\). Third, the - open-shell SOMOs which are coupled parallel and account for the total spin of the - wavefunction \((l (m \dots\). They are shown as open brackets. - -** Overlap of the wavefunction - - Once the wavefunction has been expanded in terms of the CSFs, the most fundamental - operation is to calculate the overlap between two states. The overlap in the - basis of CSFs is defined as shown in Eq: [[Eq:defineovlp1]]. - - - #+NAME: Eq:defineovlp1 - \begin{equation} - \braket{^S\Phi_i|^S\Phi_j} = \sum_{kl} C_i C_j \braket{^S\Psi^k_i|^S\Psi^l_j} - \end{equation} - - - Where the sum is over the CSFs \(k\) and \(l\) corresponding to the \(i\) - and \(j\) CFGs respectively. The overlap between the CSFs can be expanded in terms - of the BFs using the definition given in Eq: [[Eq:definebasis2]] and - Eq: [[Eq:definebasis3]] as given in Eq: [[Eq:defineovlp2]]. - - - #+NAME: Eq:defineovlp2 - \begin{equation} - \braket{^S\Phi^k_i|^S\Phi^l_j} = \sum_m \sum_n \left( O^k_{i,m}\right)^{\dagger} \braket{^S\phi_m(i,k)|^S\phi_n(j,l)} O^l_{j,n} - \end{equation} - - - Therefore, the overlap between two CSFs can be expanded in terms of the overlap - between the constituent BFs. The overlap matrix \(S_{mn}\) is of dimension \(\left( N^k_{N_{BF}} , N^l_{N_{BF}} \right)\). - The equation shown above (Eq: [[Eq:defineovlp2]]) can be written in marix-form as - shown below in Eq: [[Eq:defineovlp3]]. - - #+NAME: Eq:defineovlp3 - \begin{equation} - \braket{^S\Phi_i|^S\Phi_j} = \left( C_{i,1} \right)^{\dagger} \mathbf{O}_i\cdot\mathbf{S}_{ij}\cdot\mathbf{O}_j C_{j,1} - \end{equation} - - - Note that the overlap between two CFGs does not depend on the orbital - labels. It only depends on the number of Singly Occupied Molecular Orbitals - (SOMOs) therefore it can be pretabulated. Actually, it is possible to - redefine the CSFs in terms of a linear combination of BFs such that - \(S_{ij}\) becomes the identity matrix. In this case, one needs to store the - orthogonalization matrix \(\mathbf{\tilde{O}}_i\) which is given by - \(\mathbf{O}_i\cdot S^{1/2}_i\) for a given CFG \(i\). Note that the a CFG - \(i\) is by definition of an orthonormal set of MOs automatically orthogonal - to a CFG \(j\) with a different occupation. - -** Definition of matrix-elements - - The matrix-element (ME) evaluation follows a similar logic as the evalulation of - the overlap. However, here the metric is the one-, or two-particle operator \(\hat{E}_{pq}\) - or \(\hat{E}_{pq}\hat{E}_{rs}\) as shown in Eq: [[Eq:defineme1]] and Eq: [[Eq:defineme2]]. - - #+NAME: Eq:defineme1 - \begin{equation} - \braket{^S\Phi^k_i|\hat{O}_{pq}|^S\Phi^l_j} = \left( C_{i,1} \right)^{\dagger} \mathbf{O}_i\cdot\mathbf{A}^{pq}_{ij}\cdot\mathbf{O}_j C_{j,1} - \end{equation} - - #+NAME: Eq:defineme2 - \begin{equation} - \braket{^S\Phi^k_i|\hat{O}_{pq,rs}|^S\Phi^l_j} = \sum_K \left( C_{i,1} \right)^{\dagger} \mathbf{O}_i\cdot\mathbf{A}^{pq}_{ik}\cdot\mathbf{O}_k \mathbf{O}_k\cdot\mathbf{A}^{rs}_{kj}\cdot\mathbf{O}_j C_{j,1} - \end{equation} - - - Where, \(\hat{O}_{pq}\) and \(hat{O}_{pq,rs}\) represent an arbitrary one-, and - two-particle operators respectively. Importantly, the one-, and two-particle - matrix-element evaluation can be recast into an effecient matrix multiplication - form which is crucial for a fast evaluation of the action of the operators - \(\hat{O}_{pq}\) and \(hat{O}_{pq,rs}\). The matrix \(\mathbf{A}^{pq}_{ij}\) contains - the result of the operation \(\braket{^S\Phi^k_i|\hat{O}_{pq}|^S\Phi^l_j}\) in terms - of BFs and is therefore of size \(NCSF(i) \textit{x} NBF(i)\). In this formulation, the determinant basis is entirely avoided. - Note that the size and contents of the matrix \(\mathbf{A}^{pq}_{ij}\) depends - only on the total number of SOMOs and the total spin \(S\), therefore, an optimal - prototyping scheme can be deviced for a rapid calculaiton of these matrix contractions. - The resolution of identity (RI) is used to evaluate the two-particle operator since - this alleviates the necessacity to explicity construct two-particle matrix-elements - \(\braket{^S\Phi^k_i|\hat{O}_{pq,rs}|^S\Phi^l_j}\) directly. - -** Sigma-vector evaluation - - Once the \(\mathbf{A}^{pq}_{ij}\) matrices have been constructed for the given - selected list of CFGs, the prototype lists for the \(\mathbf{A}^{pq}_{ij}\) matrices - can be constructed. Following this, one can proceede to the evaluation of the sigma-vector - as defined in the Eq [[Eq:definesigma1]]. - - - #+NAME: Eq:definesigma1 - \begin{equation} - \sigma = \sum_{pq} \tilde{h}_{pq}\hat{E}_{pq}|\ket{^S\Phi^l_j} + \frac{1}{2}\sum_{pq,rs} g_{pq,rs} \hat{E}_{pq}\hat{E}_{rs}|\ket{^S\Phi^l_j} - \end{equation} - - The one-electron part of the sigma-vector can be calculated as shown in Eq: [[Eq:defineme1]] - and the two-electron part can be calculated using the RI as shown in Eq: [[Eq:defineme2]]. - The most expensive part involves the two-particle operator as shown on the RHS of Eq: [[Eq:definesigma1]]. - In this CFG formulation, the cost intensive part of the sigma-vector evaluation has been recast - into an efficient BLAS matrix multiplication operation. Therefore, this formulation is the most efficient - albeit at the cost of storing the prototype matrices \(\mathbf{A}^{pq}_{ij}\). However, where the total spin - is small and the largest number of SOMOs does not exceed 14, the \(\mathbf{A}^{pq}_{ij}\) matrices - can be stored in memory. - - diff --git a/Theory_CFG_CIPSI.pdf b/Theory_CFG_CIPSI.pdf deleted file mode 100644 index e7f73c3e..00000000 Binary files a/Theory_CFG_CIPSI.pdf and /dev/null differ