# A preconditioner for self-consistent iteration

I tried to derive a preconditioner for self-consistent iteration similar to section IX in arXiv:0804.2583. For simplicity, consider here only one orbital (one or two electrons) systems.

Suppose that the iteration starts with function $$f_1$$ and write $$f_1 = \psi_0 + \Delta \psi_0$$, where $$\psi_0$$ is the normalized exact solution of the Schrödinger equation. Suppose also that $$H$$ is real and Hermitian, $$H \psi_0 = E \psi_0$$, and $$\psi_0$$ and $$\Delta \psi_0$$ are real. Assume that $$\Delta \psi_0$$ is small.

Define $$\Lambda := \left< f_1 \vert H f_1 \right>$$ and $$g := H f_1 - \Lambda f_1$$. We have $$\Lambda = E + 2 \left< H \psi_0 \vert \Delta \psi_0 \right> + \left< \Delta \psi_0 \vert H \Delta \psi_0 \right>$$ and we approximate $$\Lambda \approx E + 2 \left< H \psi_0 \vert \Delta \psi_0 \right> .$$ We have $$g = E \psi_0 + H \Delta \psi_0 - \Lambda \psi_0 - \Lambda \Delta \psi_0$$ from which it follows that $$(H - \Lambda) \Delta \psi_0 = (\Lambda - E) \psi_0 + g \approx 2 \left< H \psi_0 \vert \Delta \psi_0 \right> \psi_0 + g \tag{1}$$ We have $$\begin{eqnarray} 2 \left< H \psi_0 \vert \Delta \psi_0 \right> \psi_0 & = & 2( f_1 - \Delta \psi_0) \left< H(f_1 - \Delta \psi_0) \vert \Delta \psi_0 \right> \nonumber \\ & = & 2( f_1 - \Delta \psi_0) \left( \left< H f_1 \vert \Delta \psi_0 \right> - \left< H \Delta \psi_0 \vert \Delta \psi_0 \right> \right) \nonumber \end{eqnarray}$$ and we approximate $$2 \left< H \psi_0 \vert \Delta \psi_0 \right> \psi_0 \approx 2 \left< H f_1 \vert \Delta \psi_0 \right> f_1$$ We define linear function $$G$$ by $$G(x) := 2 \left< H f_1 \vert x \right> f_1 .$$ Now it follows from equation (1) that $$(H - \Lambda - G) \Delta \psi_0 \approx g$$ Consequently we approximate $$\Delta \psi_0$$ by $$\tilde{g} := (H - \Lambda - G)^{-1} g$$ and set $$f_2 := \frac{f_1 - \tilde{g}}{\Vert f_1 - \tilde{g} \Vert}$$ for the next iteration. Unless we have an one electron system we also compute the new Hartree potential and the new Hamiltonian operator for the next iteration.

I tried this method for the hydrogen atom and the hydrogen molecule. For hydrogen atom I computed the approximate wavefunction with Arnoldi method and then tried to enhance the result with this method. The iteration converged well until both the gradient norm and quantity $$\Vert H \psi - E \psi \Vert$$ were about $$4 \cdot 10^{-15}$$ and then stopped converging. For hydrogen molecule I computed the initial orbitals with Arnoldi method setting Hartree potential to zero. The SC iteration converged well until the gradient norm was about $$10^{-4}$$ and $$\Vert H \psi - E \psi \Vert \approx 10^{-6}$$. After that the SC iteration stopped converging.

Q: Is the derivation of the preconditioner correct?

Q: Is there some reason why the method does not work when the iteration gets close to a self-consistent solution?

• Isn't $10^{-15}$ enough? – nicoguaro Jun 26 at 14:43
• Yes, but $10^{-6}$ is not enough for the hydrogen molecule. – Tommi Höynälänmaa Jun 29 at 17:00