Moving diagonalization of overlap outside solver-loop