KSPLSQRConvergedDefault#

Determines convergence of the KSPLSQR Krylov method.

Synopsis#

#include "petscksp.h" 
PetscErrorCode KSPLSQRConvergedDefault(KSP ksp, PetscInt n, PetscReal rnorm, KSPConvergedReason *reason, void *ctx)

Collective

Input Parameters#

  • ksp - iterative context

  • n - iteration number

  • rnorm - 2-norm residual value (may be estimated)

  • ctx - convergence context which must be created by KSPConvergedDefaultCreate()

reason is set to#

  • positive - if the iteration has converged;

  • negative - if residual norm exceeds divergence threshold;

  • 0 - otherwise.

Notes#

KSPConvergedDefault() is called first to check for convergence in Ax=b. If that does not determine convergence then checks convergence for the least squares problem, i.e. in min{|b-Ax|}. Possible convergence for the least squares problem (which is based on the residual of the normal equations) are KSP_CONVERGED_RTOL_NORMAL norm and KSP_CONVERGED_ATOL_NORMAL.

KSP_CONVERGED_RTOL_NORMAL is returned if ||A’*r|| < rtol * ||A|| * ||r||. Matrix norm ||A|| is iteratively refined estimate, see KSPLSQRGetNorms(). This criterion is now largely compatible with that in MATLAB lsqr().

See Also#

KSP: Linear System Solvers, KSPLSQR, KSPSetConvergenceTest(), KSPSetTolerances(), KSPConvergedSkip(), KSPConvergedReason, KSPGetConvergedReason(), KSPConvergedDefaultSetUIRNorm(), KSPConvergedDefaultSetUMIRNorm(), KSPConvergedDefaultCreate(), KSPConvergedDefaultDestroy(), KSPConvergedDefault(), KSPLSQRGetNorms(), KSPLSQRSetExactMatNorm()

Level#

intermediate

Location#

src/ksp/ksp/impls/lsqr/lsqr.c


Edit on GitLab

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