[petsc-users] Regarding changes in the 3.14 release
Barry Smith
bsmith at petsc.dev
Fri Oct 30 14:56:29 CDT 2020
> On Oct 28, 2020, at 7:56 PM, Sajid Ali <sajidsyed2021 at u.northwestern.edu> wrote:
>
> Hi Matt,
>
> Thanks for the clarification. The documentation <https://gitlab.com/petsc/petsc/-/blob/master/src/snes/interface/snes.c#L3304> for SNESSetLagPreconditioner states "If -1 is used before the very first nonlinear solve the preconditioner is still built because there is no previous preconditioner to use" which was true prior to 3.14, is this statement no longer valid ?
This looks like outdated information. We may have been less picky at one point. Will remove.
>
> What is the difference between having -snes_lag_preconditioner -2 and having -snes_lag_preconditioner_persists true ?
-2 -1 persist through more nonlinear solves but if the number is positive a new preconditioner will be built for each zero iteration of the Newton solve.
persists means that the recompute (say every 2 iterations) is done across all the solves not each individually.
Say the lag is 2. And 2 newton steps are done in the first iteration then.
without persistence
iter 0 total its 0 of first solve compute preconditioning
iter 1 1 do not
2 2 do
it 0 3 do
1 4 do not
with persistence
iter 0 0 e compute preconditioning
iter 1 1 do not
2 2 do
it 0 3 do not
1 4 do
so with persistence it does the mod over the second column the total iterations without persistence it does over the local iteration (the normal way).
Barry
>
> PS : The man pages for SNESSetLagJacobianPersists should perhaps not state the lag preconditioner options database keys and vice versa for clarity.
>
> Thank You,
> Sajid Ali | PhD Candidate
> Applied Physics
> Northwestern University
> s-sajid-ali.github.io <http://s-sajid-ali.github.io/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20201030/0b184c1f/attachment-0001.html>
More information about the petsc-users
mailing list