Actual source code: nashimpl.h
1: /*
2: Context for using preconditioned conjugate gradient method to minimized a
3: quadratic function subject to a trust region constraint. If the matrix
4: is indefinite, a direction of negative curvature may be encountered. If
5: a direction of negative curvature is found during the first iteration,
6: then it is a preconditioned gradient direction and we follow it to the
7: boundary of the trust region. If a direction of negative curvature is
8: encountered on subsequent iterations, then we terminate the algorithm.
10: This method is described in:
11: S. Nash, "Newton-type Minimization via the Lanczos Method", SIAM
12: Journal on Numerical Analysis, 21, pages 553-572, 1984.
13: */
15: #pragma once
17: #include <petsc/private/kspimpl.h>
19: typedef struct {
20: PetscReal radius;
21: PetscReal norm_d;
22: PetscReal o_fcn;
23: PetscInt dtype;
24: } KSPCG_NASH;