xref: /petsc/src/tao/bound/impls/tron/tron.h (revision 9dd11ecf0918283bb567d8b33a92f53ac4ea7840)
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