[petsc-users] More about SNESSetLagPreconditioner

Jed Brown jedbrown at mcs.anl.gov
Wed Oct 3 22:28:17 CDT 2012


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:
>
>> Hi,
>> 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/20121003/9cb73bee/attachment.html>


More information about the petsc-users mailing list