A different kind of lagged preconditioner

Matthew Knepley knepley at gmail.com
Mon Mar 23 11:13:43 CDT 2009

On Mon, Mar 23, 2009 at 11:06 AM, Rafael Santos Coelho <
rafaelsantoscoelho at gmail.com> wrote:

> Hello everyone,
> Lately I've been running some tests with a matrix-free LU-SGS-like
> preconditioner and I'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've tried using the
> -snes_lag_preconditioner command-line option, and it did help in a way to
> alleviate the "numerical effort" of the preconditioner, but the overall
> runtime, in comparison with the matrix-free unpreconditioned tests, is still
> prohibitive.
> Given that, I was thinking of modifying the concept of "lagged
> preconditioning" in PETSc, I mean, instead of applying the preconditioner
> every "p" non-linear iterations, I want to apply it every "p" linear
> iterations within each non-linear iteration. How can I do that?

You can wrap up your PC in a PCShell and have it only apply every p
iterations. Note that if you start
changing the PC during the Krylov solve, you will need something like


> Thanks in advance,
> Rafael
What most experimenters take for granted before they begin their experiments
is infinitely more interesting than any results to which their experiments
-- Norbert Wiener
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20090323/6b4760f8/attachment.htm>

More information about the petsc-users mailing list