\documentstyle[11pt]{report} \pagestyle{empty} \textwidth = 16 cm \textheight = 25 cm \topmargin = -1.0 cm \oddsidemargin = 0.0 cm \begin{document} {\bf Generalized problem}. \par\noindent The problem: minimize \begin{equation} f_j={1\over 2} <\psi_j|H|\psi_j> \end{equation} under the constraints: \begin{equation} <\psi_j|S|\psi_j>=1, \qquad <\psi_j|S|\psi_k>=0,\quad k \ne 0$ } ...This is equivalent to solve the Euler-Lagrange problem of minimising \begin{equation} \widetilde f_j={1\over 2} <\psi_j|H|\psi_j> - \epsilon_j (<\psi_j|S|\psi_j>-1) - \sum_{k \end{equation} If we consider the gradient of the expression above we have: \begin{equation}\label{prima} |g_j>=H|\psi_j> - \epsilon_j S|\psi_j> - \sum_{k \end{equation} but we are not able to find a simple expression for $\epsilon_j$ and $\lambda_{jk}$ in order to have $=0$ because $<\psi_j|S^2|\psi_k> \ne 0$. \\ So we use a slightly different approach: we firstly consider only the first constraint. The problem is equivalent to the minimization of \begin{equation} \widetilde f_j={1\over 2} <\psi_j|H|\psi_j> - \epsilon_j (<\psi_j|S|\psi_j>-1) \end{equation} {\bf First step.} For any given index $j$ we assume a starting vector $|\psi^0_j>$ such that \begin{equation} <\psi^0_j|S|\psi^0_j>=1,\qquad <\psi^0_j|S|\psi_k>=0, \quad k$ is \begin{equation} |g^0_j>=H|\psi^0_j> - \epsilon^{0^*}_j S|\psi^0_j> \end{equation} where \begin{equation} \epsilon^{0^*}_j = { <\psi^0_j|SH|\psi^0_j> \over <\psi^0_j|S^2|\psi^0_j>} \end{equation} ensures that $=0$. We also define: \begin{equation} \epsilon^{0}_j = <\psi^0_j|H|\psi^0_j> \end{equation} which is an approximation for the true eigenvalue $\epsilon_j$ of H. The second set of constraints is accounted requiring that \begin{equation} =0 \end{equation} This is obtained by an explicit Gram-Shmidt orthogonalization, with the overlap matrix S, of $|g^0_j>$ to $|\psi_k>, k = H|\psi^0_j> - \epsilon^{0^*}_j S|\psi^0_j> - \sum_{k \end{equation} where \begin{equation} \lambda^0_{kj}= \end{equation} Note that equation \ref{seconda} is very much different from equation \ref{prima}, the last term of the right hand side is $ \sum_{k $ instead of $\sum_{k$.\\ Now: let us consider the conjugate direction $|h^0_j>=|g^0_j>$ and the normalized direction $|\widetilde h^0_j>$: \begin{equation} |\widetilde h^0_j> = {|h^0_j>\over ^{1/2}} \end{equation} By construction \begin{equation} <\widetilde h^0_j|S|\widetilde h^0_j>=1, \quad <\widetilde h^0_j|S|\psi^0_j>=0, \quad <\widetilde h^0_j|S|\psi_k>=0 \quad \end{equation} Consider the vector \begin{equation} |\psi^1_j(\theta)>= \cos\theta |\psi^0_j> + \sin\theta|\widetilde h^0_j> \end{equation} By construction, \begin{equation} <\psi^1_j(\theta)|S|\psi^1_j(\theta)>=1, \qquad <\psi^1_j(\theta)|S|\psi_k>=0,\quad k \end{equation} The solution is \begin{equation} \theta^0_j={1\over 2} \mbox{arctag}\left({a^0_j\over\epsilon^0_j-b^0_j}\right) \end{equation} where \begin{equation} a^0_j=< \psi^0_j|H|\widetilde h^0_j> + c.c., \quad b^0_j=< \widetilde h^0_j|H|\widetilde h^0_j> \end{equation} and \begin{equation} \epsilon^1_j = {\epsilon^0_j+b^0_j - \sqrt{(\epsilon^0_j-b^0_j)^2 +(a^0_j)^2}\over 2} \end{equation} which is a new approximation for $\epsilon_j$.\\ {\bf Following steps.} We construct the new gradient $|g^n_j>$ as above and the new conjugate direction $|h^n_j>$ as in the conjugate gradient method. We define \begin{equation} |u^n_j>=|g^n_j>+\gamma^{n-1}_j|h^{n-1}_j> \end{equation} \begin{equation} \gamma^{n-1}_j={\over} \simeq{\over} \end{equation} By construction, \begin{equation} =0 \longrightarrow =0 \end{equation} but \begin{equation} \beta^n_j= =\gamma^{n-1}_j =\gamma^{n-1}_j\sin\theta^{n-1}_j \neq 0 \end{equation} so that explicit orthogonalization of $|\psi^n_j>$ to $|u^n_j>$ is needed (it is a consequence of the constraint of unitary norm): \begin{equation} |h^n_j>=|u^n_j> - \beta^n_j |\psi^n_j> \end{equation} Then one proceeds as above, finds $\epsilon^n_j$ and check if $\epsilon^n_j - \epsilon^{n-1}_j < tol$, where $tol$ is a small number which defines the precision of $\epsilon_j$. \par\bigskip {\bf Preconditioning.} We define a (diagonal) preconditioning matrix $P$ and auxiliary functions $|y>$ : \begin{equation} |y_j>=P^{-1}|\psi_j> \end{equation} One has to solve the equivalent problem of minimizing \begin{equation} f_j={1\over 2} \end{equation} under the constraints that \begin{equation} =1, \qquad =0,\quad k - \widetilde\epsilon_j (-1) \end{equation} The gradient $|g_j>$ is now given by \begin{equation} |g_j>=(PHP)|y_j> - \widetilde\epsilon_j(PSP)|y_j> \end{equation} where \begin{equation} \widetilde\epsilon_j = { \over } \end{equation} ensures that \begin{equation} = 0 \end{equation} Now we have to care about the second set of constraints. We want that \begin{equation} = 0 \end{equation} And again this is obtained by orthogonalizing, with the overlap matrix $S$, $|Pg_j>$ to $|\psi_k> ,k = |Pg^0_j> - \sum_{k|\psi_k> \end{equation} {\bf Modified preconditioned algorithm}. Starting from an initial guess $|\psi^0_j>$ (where $<\psi_k|S|\psi^0_j>=0$, $<\psi^0_j|S|\psi^0_j>=1$), one searches for new vector as: \begin{equation} |\psi^n_j(\theta)>= \cos\theta |\psi^{n-1}_j> + \sin\theta |P\widetilde h^{n-1}_j> \end{equation} where \begin{equation} |P\widetilde h^n_j> = {|Ph^n_j>\over ^{1/2}} \end{equation} and $|Ph^n_j>$ is the conjugate gradient. We define \begin{equation} |Pu^n_j>=|Pg^n_j>+\gamma^{n-1}_j|Ph^{n-1}_j>, \end{equation} \begin{equation} \gamma^{n-1}_j={ \over} \simeq{ \over} \end{equation} with $\gamma^{-1}_j=0$. The gradient $|Pg^n_j>$ is given by \begin{equation} |Pg^n_j>=P^2H|\psi^n_j> - \widetilde\epsilon^n_j SP^2|\psi^n_j>- \sum_{k \end{equation} where \begin{equation} \lambda_{jk}^n = <\psi_k|S(P^2H-\widetilde\epsilon^n_j SP^2)|\psi^n_j>, \qquad \widetilde\epsilon_j^n = {<\psi^n_j| SP^2 H|\psi^n_j> \over <\psi^n_j| S^2P^2| \psi^n_j>} \end{equation} $|Pu^n_j>$ is by construction orthogonal to $|\psi_k>$ but not to $|\psi^n_j>$: \begin{equation} \beta^n_j= = \gamma^{n-1}_j =\gamma^{n-1}_j\sin\theta^{n-1}_j \neq 0 \end{equation} One gets the conjugate direction $|Ph^n_j>$ from \begin{equation} |Ph^n_j>=|Pu^n_j> - \beta^n_j |\psi^n_j> \end{equation} Note that only $P^2$ (or $P^{-2}$) is actually used. \end{document}