KSPQCG#

Code to run conjugate gradient method subject to a constraint on the solution norm [Ste83].

Options Database Key#

  • -ksp_qcg_trustregionradius - Trust Region Radius

Notes#

This is rarely used directly, ir 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)=gTs+.5sTHs q(s) = g^T * s + .5 * s^T * H * s subject to the Euclidean norm trust region constraint Dsdelta || D * s || \le delta, where

     delta is the trust region radius,
     g is the gradient vector, and
     H is Hessian matrix,
     D is a scaling matrix.

KSPConvergedReason may include

Note#

Allows symmetric preconditioning with the following scaling matrices#

      `PCNONE`:   D = Identity matrix
      `PCJACOBI`: D = diag [d_1, d_2, ...., d_n], where d_i = sqrt(H[i,i])
      `PCICC`:    D = L^T, implemented with forward and backward solves. Here L is an incomplete Cholesky factor of H.

References#

[Ste83]

Trond Steihaug. The conjugate gradient method and trust regions in large scale optimization. SIAM J. Numer. Anal., 20:626–637, 1983.

See Also#

KSP: Linear System Solvers, KSPNASH, KSPGLTR, KSPSTCG, KSPCreate(), KSPSetType(), KSPType, KSP, KSPQCGSetTrustRegionRadius() KSPQCGGetTrialStepNorm(), KSPQCGGetQuadratic()

Level#

developer

Location#

src/ksp/ksp/impls/qcg/qcg.c


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