practically optimal convergence.

Deflating the CG {#sec:back_initCG}
----------------

Once a set of seed vectors $U$ have been computed, there are several ways to use $U$ to “deflate” subsequent CG runs. Assume that the solution $x$ of the system $Ax = b$ has significant components in $U$. Given an initial guess $\tilde x_0$, we can consider another guess whose $U$ components are removed ahead of time. This is performed by the Galerkin oblique projection [@Saad_linear]: $$\begin{aligned}
\label{eq:initCG}
x_0 = \tilde x_0 + U(U^HAU)^{-1}U^H(b-A\tilde x_0).\end{aligned}$$ Then $x_0$ is passed as initial guess to CG. These two steps are often called [@TFC_WLW_94; @Giraud_Ruiz_Touhami_06; @initCG]. The init-CG approach works well when $U$ approximates relatively accurately the eigenvectors with eigenvalues closest to zero.

When $U$ spans an approximate eigenspace that has been computed to $\epsilon$ accuracy, init-CG converges similarly to deflated CG up to $\epsilon$ accuracy for the linear system. After that point, convergence plateaus and eventually becomes similar to the original CG [@Giraud_Ruiz_Touhami_06]. A variety of techniques can be employed to solve this problem: using $U$ as a “spectral preconditioner” [@Erhel_precg_mrhs; @Nicolaides_deflation; @Giraud_spectral; @Brower:1995vx], including $U$ as an explicit orthogonalization constraint in CG [@Kaasschieter; @Wang_Sturler_Paulino], or combinations of methods as reviewed in [@Giraud_Ruiz_Touhami_06]. Typically, 