xref: /petsc/src/tao/quadratic/impls/gpcg/gpcg.h (revision 7496261024634544fd8f216ee18f68e2d44cf056)
1*74962610SAlp Dener #ifndef __TAO_GPCG_H
2*74962610SAlp Dener #define __TAO_GPCG_H
3*74962610SAlp Dener #include <petsc/private/taoimpl.h>
4*74962610SAlp Dener #include <petsctaolinesearch.h>
5*74962610SAlp Dener 
6*74962610SAlp Dener typedef struct{
7*74962610SAlp Dener 
8*74962610SAlp Dener   /* Parameters */
9*74962610SAlp Dener   PetscReal pg_ftol;
10*74962610SAlp Dener   PetscReal actred;
11*74962610SAlp Dener   PetscReal f_new;
12*74962610SAlp Dener   PetscReal minstep;
13*74962610SAlp Dener   PetscReal stepsize;
14*74962610SAlp Dener   PetscReal gnorm;
15*74962610SAlp Dener 
16*74962610SAlp Dener   PetscReal sigma1,sigma2,sigma3;
17*74962610SAlp Dener 
18*74962610SAlp Dener   PetscInt maxgpits;
19*74962610SAlp Dener 
20*74962610SAlp Dener   /* Problem variables, vectors and index sets */
21*74962610SAlp Dener 
22*74962610SAlp Dener   /* Problem statistics */
23*74962610SAlp Dener 
24*74962610SAlp Dener   PetscInt n;   /* Dimension of the Problem */
25*74962610SAlp Dener 
26*74962610SAlp Dener   PetscInt total_cgits;
27*74962610SAlp Dener   PetscInt cg_iterates;
28*74962610SAlp Dener   PetscInt total_gp_its;
29*74962610SAlp Dener   PetscInt gp_iterates;
30*74962610SAlp Dener   PetscInt cgits;
31*74962610SAlp Dener 
32*74962610SAlp Dener   Vec G_New;
33*74962610SAlp Dener   Vec DXFree;
34*74962610SAlp Dener   Vec R;
35*74962610SAlp Dener   Vec DX;
36*74962610SAlp Dener   Vec X;
37*74962610SAlp Dener   Vec X_New;
38*74962610SAlp Dener   Vec G, PG;
39*74962610SAlp Dener   Vec Work;
40*74962610SAlp Dener 
41*74962610SAlp Dener   Mat H;
42*74962610SAlp Dener   Vec B;
43*74962610SAlp Dener   PetscReal c;
44*74962610SAlp Dener 
45*74962610SAlp Dener   PetscReal f;
46*74962610SAlp Dener   PetscReal step;
47*74962610SAlp Dener   Mat Hsub;
48*74962610SAlp Dener   Mat Hsub_pre;
49*74962610SAlp Dener 
50*74962610SAlp Dener   IS Free_Local;  /* Indices of local variables equal to lower bound */
51*74962610SAlp Dener   IS TT;  /* Indices of local variables equal to upper bound */
52*74962610SAlp Dener 
53*74962610SAlp Dener   PetscInt n_free;       /* Number of free variables */
54*74962610SAlp Dener   PetscInt n_upper;
55*74962610SAlp Dener   PetscInt n_lower;
56*74962610SAlp Dener   PetscInt n_bind;       /* Number of binding varibles */
57*74962610SAlp Dener   PetscInt ksp_type;
58*74962610SAlp Dener   PetscInt subset_type;
59*74962610SAlp Dener }TAO_GPCG;
60*74962610SAlp Dener 
61*74962610SAlp Dener 
62*74962610SAlp Dener 
63*74962610SAlp Dener #endif
64*74962610SAlp Dener 
65*74962610SAlp Dener 
66*74962610SAlp Dener 
67*74962610SAlp Dener 
68*74962610SAlp Dener 
69*74962610SAlp Dener 
70