Actual source code: diagbrdn.h
petsc-3.11.4 2019-09-28
1: #include <../src/ksp/ksp/utils/lmvm/lmvm.h>
3: /*
4: "Full" memory implementation of only the diagonal terms in a symmetric Broyden approximation.
5: */
7: typedef struct {
8: Vec invDnew, invD, BFGS, DFP, U, V, W; /* work vectors for diagonal scaling */
9: PetscReal *yts, *yty, *sts; /* scalar arrays for recycling dot products */
10: PetscReal theta, rho, alpha, beta; /* convex combination factors for the scalar or diagonal scaling */
11: PetscReal delta, delta_min, delta_max, sigma, tol;
12: PetscInt sigma_hist; /* length of update history to be used for scaling */
13: PetscBool allocated;
14: PetscBool forward;
15: } Mat_DiagBrdn;