<div dir="ltr">On Wed, Feb 27, 2013 at 12:20 AM, Jed Brown <span dir="ltr"><<a href="mailto:jedbrown@mcs.anl.gov" target="_blank">jedbrown@mcs.anl.gov</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Interesting. I've always thought of deflation as being about the construction of the deflation vectors rather than application of the projection, which I think can be implemented by composing PCComposite and PCGalerkin (or with a degenerate Galerkin two-level multigrid cycle). Note that the DGMRES construction has some similarities to Bootstrap AMG in that low-energy eigenvectors are processed incrementally and used to define the new coarse grid.</div>
</div></blockquote><div><br></div><div style>I think the problem with that approach to deflation is preconditioning, unless you use injection as Vuik does. You can easily get</div><div style>this kind of projection by using MatShell.</div>
<div style><br></div><div style>I tried Ronald Morgan's stuff when I was in grad school and it never made a bit of difference. Is there any situation where deflation</div><div style>is useful and cannot be phrased as our current MG?</div>
<div style><br></div><div style>    Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div class="h5">On Tue, Feb 26, 2013 at 11:58 PM, Jie Chen <span dir="ltr"><<a href="mailto:jiechen@mcs.anl.gov" target="_blank">jiechen@mcs.anl.gov</a>></span> wrote:<br>
<div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">To whomever is interested in deflated Krylov solvers:<br>
<br>
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.<br>


<br>
Coincidentally, Kees Vuik pointed to me an earlier paper of his:<br>
<br>
<a href="http://ta.twi.tudelft.nl/nw/users/vuik/papers/Vui01F.pdf" target="_blank">http://ta.twi.tudelft.nl/nw/users/vuik/papers/Vui01F.pdf</a><br>
<br>
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).<br>


<br>
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.<br>


<br>
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.<br>


<span><font color="#888888"><br>
Jie<br>
<br>
<br>
<br>
--<br>
Jie Chen<br>
Mathematics and Computer Science Division<br>
Argonne National Laboratory<br>
Address: 9700 S Cass Ave, Bldg 240, Lemont, IL 60439<br>
Phone: <a href="tel:%28630%29%20252-3313" value="+16302523313" target="_blank">(630) 252-3313</a><br>
Email: <a href="mailto:jiechen@mcs.anl.gov" target="_blank">jiechen@mcs.anl.gov</a><br>
Homepage: <a href="http://www.mcs.anl.gov/~jiechen" target="_blank">http://www.mcs.anl.gov/~jiechen</a><br>
</font></span></blockquote></div><br></div></div></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
-- Norbert Wiener
</div></div>