On Mon, Mar 23, 2009 at 11:06 AM, Rafael Santos Coelho <span dir="ltr">&lt;<a href="mailto:rafaelsantoscoelho@gmail.com">rafaelsantoscoelho@gmail.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hello everyone,<br><br>Lately I&#39;ve been running some tests with a matrix-free LU-SGS-like preconditioner and I&#39;ve noticed that although, broadly speaking, it has shown very good improvements on the convergence rate of my program, it does not decrease the runtime. Quite the opposite, the bigger the problem (mesh size), the more computational costlier it gets to be applied to the system, which is fairly natural to expect. So I&#39;ve tried using the -snes_lag_preconditioner command-line option, and it did help in a way to alleviate the &quot;numerical effort&quot; of the preconditioner, but the overall runtime, in comparison with the matrix-free unpreconditioned tests, is still prohibitive.<br>

<br>Given that, I was thinking of modifying the concept of &quot;lagged preconditioning&quot; in PETSc, I mean, instead of applying the preconditioner every &quot;p&quot; non-linear iterations, I want to apply it every &quot;p&quot; linear iterations within each non-linear iteration. How can I do that?</blockquote>
<div><br>You can wrap up your PC in a PCShell and have it only apply every p iterations. Note that if you start<br>changing the PC during the Krylov solve, you will need something like FGMRES.<br><br>  Matt<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>Thanks in advance,<br><font color="#888888"><br>Rafael<br>
</font></blockquote></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>