174962610SAlp Dener #ifndef __TAO_GPCG_H 274962610SAlp Dener #define __TAO_GPCG_H 374962610SAlp Dener #include <petsc/private/taoimpl.h> 474962610SAlp Dener #include <petsctaolinesearch.h> 574962610SAlp Dener 674962610SAlp Dener typedef struct { 774962610SAlp Dener /* Parameters */ 874962610SAlp Dener PetscReal pg_ftol; 974962610SAlp Dener PetscReal actred; 1074962610SAlp Dener PetscReal f_new; 1174962610SAlp Dener PetscReal minstep; 1274962610SAlp Dener PetscReal stepsize; 1374962610SAlp Dener PetscReal gnorm; 1474962610SAlp Dener 1574962610SAlp Dener PetscReal sigma1, sigma2, sigma3; 1674962610SAlp Dener 1774962610SAlp Dener PetscInt maxgpits; 1874962610SAlp Dener 1974962610SAlp Dener /* Problem variables, vectors and index sets */ 2074962610SAlp Dener 2174962610SAlp Dener /* Problem statistics */ 2274962610SAlp Dener 2374962610SAlp Dener PetscInt n; /* Dimension of the Problem */ 2474962610SAlp Dener 2574962610SAlp Dener PetscInt total_cgits; 2674962610SAlp Dener PetscInt cg_iterates; 2774962610SAlp Dener PetscInt total_gp_its; 2874962610SAlp Dener PetscInt gp_iterates; 2974962610SAlp Dener PetscInt cgits; 3074962610SAlp Dener 3174962610SAlp Dener Vec G_New; 3274962610SAlp Dener Vec DXFree; 3374962610SAlp Dener Vec R; 3474962610SAlp Dener Vec DX; 3574962610SAlp Dener Vec X; 3674962610SAlp Dener Vec X_New; 3774962610SAlp Dener Vec G, PG; 3874962610SAlp Dener Vec Work; 3974962610SAlp Dener 4074962610SAlp Dener Mat H; 4174962610SAlp Dener Vec B; 4274962610SAlp Dener PetscReal c; 4374962610SAlp Dener 4474962610SAlp Dener PetscReal f; 4574962610SAlp Dener PetscReal step; 4674962610SAlp Dener Mat Hsub; 4774962610SAlp Dener Mat Hsub_pre; 4874962610SAlp Dener 4974962610SAlp Dener IS Free_Local; /* Indices of local variables equal to lower bound */ 5074962610SAlp Dener IS TT; /* Indices of local variables equal to upper bound */ 5174962610SAlp Dener 5274962610SAlp Dener PetscInt n_free; /* Number of free variables */ 5374962610SAlp Dener PetscInt n_upper; 5474962610SAlp Dener PetscInt n_lower; 55*da81f932SPierre Jolivet PetscInt n_bind; /* Number of binding variables */ 5674962610SAlp Dener PetscInt ksp_type; 5774962610SAlp Dener PetscInt subset_type; 5874962610SAlp Dener } TAO_GPCG; 5974962610SAlp Dener 6074962610SAlp Dener #endif 61