xref: /petsc/src/tao/bound/impls/blmvm/blmvm.h (revision f5766c097db85df4ee62e2acb750cb76ef9efd11)
1*f5766c09SAlp Dener /*
2*f5766c09SAlp Dener   Private data structure used for blmvm method.
3*f5766c09SAlp Dener */
4*f5766c09SAlp Dener 
5*f5766c09SAlp Dener #if !defined(__TAO_BLMVM_H)
6*f5766c09SAlp Dener #define __TAO_BLMVM_H
7*f5766c09SAlp Dener 
8*f5766c09SAlp Dener #include <petsc/private/taoimpl.h>
9*f5766c09SAlp Dener 
10*f5766c09SAlp Dener /*
11*f5766c09SAlp Dener  Context for limited memory variable metric method for bound constrained
12*f5766c09SAlp Dener  optimization.
13*f5766c09SAlp Dener */
14*f5766c09SAlp Dener typedef struct {
15*f5766c09SAlp Dener   Mat M;
16*f5766c09SAlp Dener 
17*f5766c09SAlp Dener   Vec unprojected_gradient;
18*f5766c09SAlp Dener   Vec Xold;
19*f5766c09SAlp Dener   Vec Gold;
20*f5766c09SAlp Dener 
21*f5766c09SAlp Dener   PetscInt n_free;
22*f5766c09SAlp Dener   PetscInt n_bind;
23*f5766c09SAlp Dener 
24*f5766c09SAlp Dener   PetscInt grad;
25*f5766c09SAlp Dener   PetscInt reset;
26*f5766c09SAlp Dener   Mat      H0;
27*f5766c09SAlp Dener 
28*f5766c09SAlp Dener   PetscBool recycle;
29*f5766c09SAlp Dener } TAO_BLMVM;
30*f5766c09SAlp Dener 
31*f5766c09SAlp Dener #endif  /* if !defined(__TAO_BLMVM_H) */