KSPSetLagNorm#
Lags the residual norm calculation so that it is computed as part of the MPI_Allreduce()
used for computing the inner products needed for the next iteration.
Synopsis#
#include "petscksp.h"
PetscErrorCode KSPSetLagNorm(KSP ksp, PetscBool flg)
Logically Collective
Input Parameters#
ksp - Krylov solver context
flg -
PETSC_TRUE
orPETSC_FALSE
Options Database Key#
-ksp_lag_norm - lag the calculated residual norm
Notes#
Currently only works with KSPIBCGS
.
This can reduce communication costs at the expense of doing
one additional iteration because the norm used in the convergence test of KSPSolve()
is one iteration behind the actual
current residual norm (which has not yet been computed due to the lag).
Use KSPSetNormType
(ksp,KSP_NORM_NONE
) to never check the norm
If you lag the norm and run with, for example, -ksp_monitor
, the residual norm reported will be the lagged one.
KSPSetCheckNormIteration()
is an alternative way of avoiding the expense of computing the residual norm at each iteration.
See Also#
KSP: Linear System Solvers, KSPSetUp()
, KSPSolve()
, KSPDestroy()
, KSPConvergedSkip()
, KSPSetNormType()
, KSPSetCheckNormIteration()
Level#
advanced
Location#
src/ksp/ksp/interface/itcreate.c
Index of all KSP routines
Table of Contents for all manual pages
Index of all manual pages