[petsc-users] Advise on choice of iterative solver

Jose E. Roman jroman at dsic.upv.es
Wed Jun 8 08:11:04 CDT 2011

El 08/06/2011, a las 14:05, Klaus Zimmermann escribió:

> Hi,
> I want to extract the most relevant eigenstates from a quadratic, complex symmetric generalized eigenvalue problem Ax = \lambda Bx. A is complex symmetric with 3*36 non-zeros per row, B is real with 36 non-zeros per row (subpattern), both with dimension of the order of up to 1e7. We use Krylov-Schur with shift-and-invert from slepc. With a direct solver for the inner part (at the moment mumps) everything works fine. To circumvent memory problems and improve parallelizability I would like to use an iterative solver for the inner part, but was unable to actually get one to work.
> What is also strange is that the setup as it is now works fine only with out true residuals. If we use the command line switch for true residuals the Krylov-Schur does not seem to convert.
> So my questions are:
> 1) Do you have any idea on why true residuals would work worse than the Krylov estimate?

With shift-and-invert the Krylov estimate might be too optimistic, especially if the shift is far from the eigenvalue. The true residual may be more accurate, but if the tolerance is too small then the solver might fail to attain it. Try with a larger tolerance. Anyway, the true residual option should be used only if the actual residual norms that you get are large.

> 2) What iterative solver/preconditioner would you suggest?

Note that using an iterative method for the inner linear system usually requires a small tolerance in order to maintain stability of the Krylov-Schur process. Unless you have a very good preconditioner, this is normally not competitive with respect to MUMPS.

As an alternative, consider using the new GD and JD solvers.


> Thanks in advance!
> Klaus

More information about the petsc-users mailing list