petsc-3.14.6 2021-03-30
Report Typos and Errors

KSPLSQRConvergedDefault

Determines convergence of the LSQR Krylov method.

Synopsis

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

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 A*x=b. If that does not determine convergence then checks convergence for the least squares problem, i.e. in min{|b-A*x|}. 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

KSPLSQR, KSPSetConvergenceTest(), KSPSetTolerances(), KSPConvergedSkip(), KSPConvergedReason, KSPGetConvergedReason(),
KSPConvergedDefaultSetUIRNorm(), KSPConvergedDefaultSetUMIRNorm(), KSPConvergedDefaultCreate(), KSPConvergedDefaultDestroy(), KSPConvergedDefault(), KSPLSQRGetNorms(), KSPLSQRSetExactMatNorm()

Level

intermediate

Location

src/ksp/ksp/impls/lsqr/lsqr.c
Index of all KSP routines
Table of Contents for all manual pages
Index of all manual pages