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