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