[petsc-users] More about SNESSetLagPreconditioner

Gong Ding gdiso at ustc.edu
Wed Oct 3 23:07:51 CDT 2012

call SNESSetLagPreconditioner before SNESSolve is useless.
It seems SNESSetLagPreconditioner does not reset the internal information.
If you are calling SNESSolve(), just call SNESSetLagPreconditioner() again before each solve.
On Wed, Oct 3, 2012 at 10:25 PM, Gong Ding<gdiso at ustc.edu> wrote:
Only implemented this strategy in TS is not enough, i.e. DC sweep (each DC point requires nonlinear iteration) may also need it.  
 Will you implement it into the SNES and send me the patch?
For example, a flag -3 to SNESSetLagPreconditioner.
At the first ineration of each SENSSolve call, the PC will be built and never change in the same SENSSolve iteration. 
 I'd like to try it asap since this strategy improves simulation speed significantly.
Gong Ding
I've been meaning to implement this for a while. You can put custom SNES control into a pre-stage or pre-step hook, but this particular case should, in my opinion, be provided as a TS option.
 On Wed, Oct 3, 2012 at 11:00 AM, Gong Ding<gdiso at ustc.edu> wrote:
 I am doing a nonlinear transient simulation. For each time step, a SNESSolve is called.
 I want to do a LU factorization at the first Newton iteration of EACH time step, and for the following Newton steps (in the same time step), no factorization any more. For the next time step, the LU factorization should be done again.
 SNESSetLagPreconditioner(-1) seems just skips all the following factorization, even in the different time step.
 How can I do?
 Gong Ding
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20121004/b6142938/attachment.html>

More information about the petsc-users mailing list