Determines when the preconditioner is rebuilt in the nonlinear solve.


#include "petscsnes.h"  
PetscErrorCode SNESSetLagPreconditioner(SNES snes, PetscInt lag)

Logically Collective

Input Parameters#

  • snes - the SNES context

  • lag - 1 means rebuild every time the Jacobian is computed within a single nonlinear solve, 2 means every second time the Jacobian is built etc. -2 indicates rebuild preconditioner at next chance but then never rebuild after that

Options Database Keys#

  • -snes_lag_jacobian_persists <true,false> - sets the persistence

  • -snes_lag_jacobian <- 2,1,2,…> - sets the lag

  • -snes_lag_preconditioner_persists <true,false> - sets the persistence

  • -snes_lag_preconditioner <- 2,1,2,…> - sets the lag


The default is 1 The preconditioner is ALWAYS built in the first iteration of a nonlinear solve unless lag is -1 or SNESSetLagPreconditionerPersists() was called

SNESSetLagPreconditionerPersists() allows using the same uniform lagging (for example every second linear solve) across multiple nonlinear solves.

See Also#

SNESSetTrustRegionTolerance(), SNESGetLagPreconditioner(), SNESSetLagJacobian(), SNESGetLagJacobian(), SNESSetLagPreconditionerPersists(), SNESSetLagJacobianPersists(), SNES, SNESSolve()





Edit on GitLab

Index of all SNES routines
Table of Contents for all manual pages
Index of all manual pages