xref: /petsc/src/tao/bound/impls/bqnk/bqnk.h (revision 6b5911594195c27bb116de24bb31df463a3cffa7)
1e0ed867bSAlp Dener /*
2e0ed867bSAlp Dener Context for bounded quasi-Newton-Krylov type optimization algorithms
3e0ed867bSAlp Dener */
4e0ed867bSAlp Dener 
5e0ed867bSAlp Dener #if !defined(__TAO_BQNK_H)
6e0ed867bSAlp Dener #define __TAO_BQNK_H
7e0ed867bSAlp Dener 
8e0ed867bSAlp Dener #include <../src/tao/bound/impls/bnk/bnk.h>
9e0ed867bSAlp Dener 
10e0ed867bSAlp Dener typedef struct {
114f4fdda4SAlp Dener   Mat B, Bscale;
124f4fdda4SAlp Dener   PC pc;
134f4fdda4SAlp Dener   PetscBool no_scale;
14e0ed867bSAlp Dener } TAO_BQNK;
15e0ed867bSAlp Dener 
16*6b591159SAlp Dener #define BQNK_INIT_CONSTANT         0
17*6b591159SAlp Dener #define BQNK_INIT_DIRECTION        1
18*6b591159SAlp Dener #define BQNK_INIT_TYPES            2
19*6b591159SAlp Dener 
20*6b591159SAlp Dener static const char *BQNK_INIT[64] = {"constant", "direction", "interpolation"};
21*6b591159SAlp Dener 
22*6b591159SAlp Dener PETSC_INTERN PetscErrorCode TaoSetUp_BQNK(Tao);
23e0ed867bSAlp Dener PETSC_INTERN PetscErrorCode TaoCreate_BQNK(Tao);
24e0ed867bSAlp Dener 
25e0ed867bSAlp Dener #endif /* if !defined(__TAO_BQNK_H) */