On Tue, Sep 13, 2011 at 3:03 AM, Michele De Stefano <span dir="ltr"><<a href="mailto:mstefano@milan.westerngeco.slb.com">mstefano@milan.westerngeco.slb.com</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<u></u>
<div bgcolor="#ffffff" text="#000000">
Jed and others,<br>
<br>
we would like to explore more in detail the possibility to have a
completely matrix-free preconditioner.<br>
May you explain which are the "few methods" that we should implement
and that you was talking of ?<br>
<br>
Second question: are there algorithms for creating matrix-free
preconditioners ?<br>
If yes, may you suggest at least one, please ?<br></div></blockquote><div><br></div><div>There is really no conceptual difference between Krylov methods and "preconditioners" in that they are</div><div>both approximate linear solvers. The distinction was made mostly because Krylov solvers only need the</div>
<div>action of the matrix (or its transpose) and thus are "matrix-free". Therefore, "matrix-free preconditioner"</div><div>basically means Krylov method (where I include Chebychev, which is a KSP in PETSc).</div>
<div><br></div><div>So what many scalable solvers do is combine KSPs in a nice way, like a multigrid iteration.</div><div><br></div><div>There may be things you can do for your particular equations, like analytic simplifications, but these</div>
<div>would not be in PETSc since they are not generic.</div><div><br></div><div> Thanks,</div><div><br></div><div> Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div bgcolor="#ffffff" text="#000000">
Thank you in advance.<br>
Best regards,<br>
<br>
Michele<br>
<br>
Jed Brown wrote:
<blockquote type="cite">
<div class="gmail_quote">On Mon, Sep 12, 2011 at 16:28, Michele De
Stefano <span dir="ltr"><<a href="mailto:mstefano@milan.westerngeco.slb.com" target="_blank">mstefano@milan.westerngeco.slb.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="border-left:1px solid rgb(204, 204, 204);margin:0pt 0pt 0pt 0.8ex;padding-left:1ex">
<div>KSPSetOperators is able to accept a shell matrix for
the "Amat" and the manual<br>
says that the "Pmat" is usually the same as the "Amat". Does this
really work<br>
also when "Amat" is a shell matrix ?<br>
<br>
I mean, in the multi-process case, the default preconditioning method
is block<br>
Jacobi ... but does this work also when "Pmat" is a shell matrix ?</div>
</blockquote>
</div>
<br>
<div>Only if a few methods are implemented for the shell matrix. This
is usually not practical. It would be more common to assemble some
approximation Pmat (e.g. in AIJ format) and use that for
preconditioning. To do everything matrix-free, you would normally have
to put some effort into writing your own custom preconditioner.</div>
</blockquote>
<br>
<div>-- <br>
Michele De Stefano
<br>
Senior Geophysicist - REMS
<br>
Integrated EM Center of Excellence
<br>
<br>
WesternGeco GeoSolutions,
<br>
Via Clericetti 42/A,
<br>
20133, Milan - Italy
<br>
<br>
<a href="tel:%2B39%2002%20266279232" value="+3902266279232" target="_blank">+39 02 266279232</a> (direct)
<br>
<a href="tel:%2B39%2002%20266279279" value="+3902266279279" target="_blank">+39 02 266279279</a> (fax)
<br>
<br>
<a href="mailto:mstefano@slb.com" target="_blank">mstefano@slb.com</a>
<br>
<br>
Schlumberger Private
</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<br>