:orphan: # KSPNASH Code to run conjugate gradient method subject to a constraint on the solution norm. ## Options Database Keys - ***-ksp_cg_radius -*** 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_NEG_CURVE if convergence is reached along a negative curvature direction, KSP_CONVERGED_STEP_LENGTH 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 [](ch_ksp), `KSPQCG`, `KSPGLTR`, `KSPSTCG`, `KSPCreate()`, `KSPSetType()`, `KSPType`, `KSP`, `KSPCGSetRadius()`, `KSPCGGetNormD()`, `KSPCGGetObjFcn()` ## Level developer ## Location src/ksp/ksp/impls/cg/nash/nash.c --- [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](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)