1*a4963045SJacob Faibussowitsch #pragma once 2a7e14dcfSSatish Balay 3af0996ceSBarry Smith #include <petsc/private/taoimpl.h> 4aaa7dc30SBarry Smith #include <petscis.h> 5a7e14dcfSSatish Balay 6a7e14dcfSSatish Balay typedef struct { 7a7e14dcfSSatish Balay /* Parameters */ 8a7e14dcfSSatish Balay PetscReal pg_ftol; 9a7e14dcfSSatish Balay PetscReal actred; 10a7e14dcfSSatish Balay PetscReal f_new; 11a7e14dcfSSatish Balay 12a7e14dcfSSatish Balay PetscReal eta1, eta2, eta3, eta4; 13a7e14dcfSSatish Balay PetscReal sigma1, sigma2, sigma3; 14a7e14dcfSSatish Balay 15a7e14dcfSSatish Balay PetscInt maxgpits; 16a7e14dcfSSatish Balay 17a7e14dcfSSatish Balay /* Problem variables, vectors and index sets */ 18a7e14dcfSSatish Balay PetscReal stepsize; 19a7e14dcfSSatish Balay PetscReal pgstepsize; 20a7e14dcfSSatish Balay 21a7e14dcfSSatish Balay /* Problem statistics */ 22a7e14dcfSSatish Balay 23a7e14dcfSSatish Balay PetscInt n; /* Dimension of the Problem */ 24a7e14dcfSSatish Balay PetscReal delta; /* Trust region size */ 25a7e14dcfSSatish Balay PetscReal gnorm; 26a7e14dcfSSatish Balay PetscReal f; 27a7e14dcfSSatish Balay 28a7e14dcfSSatish Balay PetscInt total_gp_its; 29a7e14dcfSSatish Balay PetscInt gp_iterates; 30a7e14dcfSSatish Balay 31a7e14dcfSSatish Balay Vec X_New; 32a7e14dcfSSatish Balay Vec G_New; 33a7e14dcfSSatish Balay Vec Work; 34a7e14dcfSSatish Balay 35a7e14dcfSSatish Balay /* Subvectors and submatrices */ 36a7e14dcfSSatish Balay Vec DXFree; 37a7e14dcfSSatish Balay Vec R; 38a7e14dcfSSatish Balay Vec rmask; 39a7e14dcfSSatish Balay Vec diag; 40a7e14dcfSSatish Balay Mat H_sub; 41a7e14dcfSSatish Balay Mat Hpre_sub; 42a7e14dcfSSatish Balay 43a7e14dcfSSatish Balay IS Free_Local; /* Indices of local variables equal to lower bound */ 44a7e14dcfSSatish Balay VecScatter scatter; 45a7e14dcfSSatish Balay 46a7e14dcfSSatish Balay PetscInt n_free; /* Number of free variables */ 47a7e14dcfSSatish Balay PetscInt n_free_last; 48a7e14dcfSSatish Balay 49a7e14dcfSSatish Balay } TAO_TRON; 50