# A different kind of lagged preconditioner

Rafael Santos Coelho rafaelsantoscoelho at gmail.com
Mon Mar 23 13:39:36 CDT 2009

```Hey, Barry

>   Lagging the preconditioner does NOT mean applying the preconditioner
> every p non-linear iterations. It means RECOMPUTING the preconditioner (with
> LU that means doing a new LU numerical factorization) every p nonlinear
> iterations. The preconditioner is still APPLIED at every iteration of the
> Krylov method.
>

Thanks for the clarification :D

>
>  Within the linear solve inside Newton there is never a recomputation of
> the preconditioner (because the matrix stays the same inside the linear
> solve) so lagging inside the linear solve doesn't make sense.
>

The thing is, as far as I know, that I do have to "recompute" my matrix-free
preconditioner every linear iteration inside Newton's method because the
input vector changes throughtout the execution of the Krylov solver.

Let me give you a clearer and brief explanation of how the preconditioner
works. Choosing left preconditioning, we have M^(-1)J(x)s = -M^(-1)F(x),
where J(x) = L + D + U and M = (D + wU)^(-1)D(D + wL)^(-1). So, as this is a
matrix-free preconditioner, everytime there is a jacobian-vector product
J(x)v, PETSc uses the finite-difference approximation  (F(x + hM^(-1)v) -
F(x)) / h, right? So, the PCApply routine is called every linear iteration.
My intention is to make that call periodically in hopes of lowering the
runtime. Doesn't that make sense?

Rafael
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20090323/2d54ed35/attachment.htm>
```