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