Actual source code: gpcg.h
1: #pragma once
2: #include <petsc/private/taoimpl.h>
3: #include <petsctaolinesearch.h>
5: typedef struct {
6: /* Parameters */
7: PetscReal pg_ftol;
8: PetscReal actred;
9: PetscReal f_new;
10: PetscReal minstep;
11: PetscReal stepsize;
12: PetscReal gnorm;
14: PetscReal sigma1, sigma2, sigma3;
16: PetscInt maxgpits;
18: /* Problem variables, vectors and index sets */
20: /* Problem statistics */
22: PetscInt n; /* Dimension of the Problem */
24: PetscInt total_cgits;
25: PetscInt cg_iterates;
26: PetscInt total_gp_its;
27: PetscInt gp_iterates;
28: PetscInt cgits;
30: Vec G_New;
31: Vec DXFree;
32: Vec R;
33: Vec DX;
34: Vec X;
35: Vec X_New;
36: Vec G, PG;
37: Vec Work;
39: Mat H;
40: Vec B;
41: PetscReal c;
43: PetscReal f;
44: PetscReal step;
45: Mat Hsub;
46: Mat Hsub_pre;
48: IS Free_Local; /* Indices of local variables equal to lower bound */
49: IS TT; /* Indices of local variables equal to upper bound */
51: PetscInt n_free; /* Number of free variables */
52: PetscInt n_upper;
53: PetscInt n_lower;
54: PetscInt n_bind; /* Number of binding variables */
55: PetscInt ksp_type;
56: PetscInt subset_type;
57: } TAO_GPCG;