petsc-3.12.4 2020-02-04
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