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