A different kind of lagged preconditioner

Rafael Santos Coelho rafaelsantoscoelho at gmail.com
Mon Mar 23 11:45:52 CDT 2009


Matt,

I tried what you suggested but it didn't work. I inserted the following
lines in my "PCApply" routine:

(...)

    ierr = SNESGetKSP(snes, &ksp); CHKERRQ(ierr);
    ierr = KSPGetIterationNumber(ksp, &its); CHKERRQ(ierr);

    if(its % pc->lag)
    {
// skip the preconditioning phase
        return 0;
    }

// else apply preconditioner

Then I ran a test and here's what happened:

$ ./sbratu -xdiv 32 -ydiv 32 -snes_mf -user_precond -snes_converged_reason
-snes_monitor -ksp_converged_reason -smfulusgs_lag 2
  0 SNES Function norm 1.165810453479e+00
Linear solve did not converge due to DIVERGED_NULL iterations 1
Nonlinear solve did not converge due to DIVERGED_LINEAR_SOLVE

What's wrong with this?

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


More information about the petsc-users mailing list