# KSPNASH
Code to run conjugate gradient method subject to a constraint on the solution norm. 
## Options Database Keys

- ***-ksp_cg_radius <r> -*** Trust Region Radius





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

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

q(s) = g^T * s + 0.5 * s^T * H * s

subject to the trust region constraint

|| s || <= delta,

where

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

`KSPConvergedReason` may be
```none
  KSP_CONVERGED_CG_NEG_CURVE if convergence is reached along a negative curvature direction,
  KSP_CONVERGED_CG_CONSTRAINED if convergence is reached along a constrained step,
```

other `KSP` converged/diverged reasons

The preconditioner supplied should be symmetric and positive definite.


## Reference
Nash, Stephen G. Newton-type minimization via the Lanczos method. SIAM Journal on Numerical Analysis 21, no. 4 (1984): 770-788.


## See Also
 [](chapter_ksp), `KSPQCG`, `KSPGLTR`, `KSPSTCG`, `KSPCreate()`, `KSPSetType()`, `KSPType`, `KSP`, `KSPCGSetRadius()`, `KSPCGGetNormD()`, `KSPCGGetObjFcn()`

## Level
developer

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/ksp/impls/cg/nash/nash.c.html#KSPNASH">src/ksp/ksp/impls/cg/nash/nash.c</A>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/ksp/ksp/impls/cg/nash/nash.c)


[Index of all KSP routines](index.md)  
[Table of Contents for all manual pages](/docs/manualpages/index.md)  
[Index of all manual pages](/docs/manualpages/singleindex.md)  
