Skip to main content
`Ctrl`+`K`

# KSPMINRES

This code implements the MINRES (Minimum Residual) method and its QLP variant [PS75], [CPS11], [LR22] for solving linear systems using `KSP`.

## Options Database Keys

- -ksp_minres_qlp <bool> - activates QLP code

- -ksp_minres_radius <real> - maximum allowed solution norm

- -ksp_minres_trancond <real> - threshold on condition number to dynamically switch to QLP iterations when QLP has been activated

- -ksp_minres_monitor - monitors convergence quantities

- -ksp_minres_nutol <real> - inexactness tolerance (see https://arxiv.org/pdf/2208.07095.pdf)

## Notes

The matrix (operator) and the preconditioner must be symmetric and the preconditioner must also be positive definite for this method.

`KSPMINRES` is often the best Krylov method for symmetric indefinite matrices.

Supports only left preconditioning.

## Contributed by

Original MINRES code - Robert Scheichl: maprs@maths.bath.ac.uk QLP variant adapted from: https://stanford.edu/group/SOL/software/minresqlp/minresqlp-matlab/CPS11.zip

## References

[CPS11]

Sou-Cheng T Choi, Christopher C Paige, and Michael A Saunders. MINRES-QLP: a Krylov subspace method for indefinite or singular symmetric systems. SIAM Journal on Scientific Computing, 33(4):1810–1836, 2011.

[LR22]

Yang Liu and Fred Roosta. A Newton-MR algorithm with complexity guarantees for nonconvex smooth unconstrained optimization. arXiv preprint arXiv:2208.07095, 2022.

[PS75]

C. C. Paige and M. A. Saunders. Solution of sparse indefinite systems of linear equations. SIAM Journal on Numerical Analysis, 12:617–629, 1975.

## See Also

KSP: Linear System Solvers, `KSPCreate()`, `KSPSetType()`, `KSPType`, `KSP`, `KSPCG`, `KSPCR`, `KSPMINRESGetUseQLP()`, `KSPMINRESSetUseQLP()`, `KSPMINRESSetRadius()`

## Level

beginner

## Location

src/ksp/ksp/impls/minres/minres.c

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