Skip to main content
`Ctrl`+`K`

# KSPGLTR

Code to run conjugate gradient method subject to a constraint on the solution norm, used within trust region methods [GLRT99]

## Options Database Key

- -ksp_cg_radius <r> - Trust Region Radius

## Notes

Uses preconditioned conjugate gradient to compute an approximate minimizer of the quadratic function

\[ q(s) = g^T * s + .5 * s^T * H * s \]

subject to the trust region constraint

\[ || s || \le delta, \]

where

         delta is the trust region radius,
         g is the gradient vector,
         H is the Hessian approximation,
         M is the positive definite preconditioner matrix.

`KSPConvergedReason` may have the additional values

- `KSP_CONVERGED_NEG_CURVE` - if convergence is reached along a negative curvature direction,

- `KSP_CONVERGED_STEP_LENGTH` - if convergence is reached along a constrained step.

The operator and the preconditioner supplied must be symmetric and positive definite.

This is rarely used directly, it is used in Trust Region methods for nonlinear equations, `SNESNEWTONTR`

## References

[GLRT99]

Nicholas IM Gould, Stefano Lucidi, Massimo Roma, and Philippe L Toint. Solving the trust-region subproblem using the lanczos method. SIAM Journal on Optimization, 9(2):504–525, 1999.

## See Also

KSP: Linear System Solvers, `KSPQCG`, `KSPNASH`, `KSPSTCG`, `KSPCreate()`, `KSPSetType()`, `KSPType`, `KSP`, `KSPCGSetRadius()`, `KSPCGGetNormD()`, `KSPCGGetObjFcn()`, `KSPGLTRGetMinEig()`, `KSPGLTRGetLambda()`, `KSPCG`

## Level

developer

## Location

src/ksp/ksp/impls/cg/gltr/gltr.c

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