Why do some Krylov methods seem to print two residual norms per iteration?
> 1198 KSP Residual norm 1.366052062216e-04 > 1198 KSP Residual norm 1.931875025549e-04 > 1199 KSP Residual norm 1.366026406067e-04 > 1199 KSP Residual norm 1.931819426344e-04 Some Krylov methods, for example tfqmr, actually have a “sub-iteration” of size 2 inside the loop; each of the two substeps has its own matrix vector product and application of the preconditioner and updates the residual approximations. This is why you get this “funny” output where it looks like there are two residual norms per iteration. You can also think of it as twice as many iterations.