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.

Jose


> 
> Thanks in advance!
> Klaus

Reply via email to