To whomever is interested in deflated Krylov solvers:

Deflation is very useful technique for accelerating the convergence of Krylov 
iterations. It seems to me that deflation is not supported in PETSc, except for 
the special case DGMRES, where eigenvectors are used to deflate GMRES. As a 
matter of fact, one does not need to use eigenvectors for deflation, nor 
deflation is dependent on a specific choice of the iterative method.

Coincidentally, Kees Vuik pointed to me an earlier paper of his:

http://ta.twi.tudelft.nl/nw/users/vuik/papers/Vui01F.pdf

which claims that the convergence of using block Jacobi/ILU(0) [the default 
preconditioner for PETSc] becomes in general better if deflation is included. 
In his paper, deflation means "coarse grid acceleration"; see page 935, the 
paragraph of equation (2).

So I think (including my personal experience), deflation is a general enough 
technique that may benefit every user of the KSP solver. Implementation-wise, 
my personal take is that the library needs to change the A-multiply to 
(A-AZ(Z'AZ)^{-1}Z'A)-multiply, where Z is the deflation matrix: tall, skinny, 
and with a small number of columns. PETSc can ask the user to define Z, and it 
can also predefine several choices of Z, one example choice is from the above 
mentioned paper. In principle, deflation should be independent of the KSP 
types, but I don't see how exactly it can be implemented without touching the 
code of every krylov solvers. Perhaps adding one more layer of abstraction is 
needed.

So for anyone who is interested in implementing deflation, I can provide a more 
detailed tutorial. The design of PETSc is becoming more and more complicated 
for me to digest, thus I think it may be unrealistic for me to implement 
deflation myself for the moment.

Jie



-- 
Jie Chen
Mathematics and Computer Science Division
Argonne National Laboratory
Address: 9700 S Cass Ave, Bldg 240, Lemont, IL 60439
Phone: (630) 252-3313
Email: jiechen at mcs.anl.gov
Homepage: http://www.mcs.anl.gov/~jiechen

Reply via email to