xref: /petsc/src/tao/bound/impls/bqnk/bqnk.h (revision 2f613bf53f46f9356e00a2ca2bd69453be72fc31)
1 /*
2 Context for bounded quasi-Newton-Krylov type optimization algorithms
3 */
4 
5 #if !defined(__TAO_BQNK_H)
6 #define __TAO_BQNK_H
7 
8 #include <../src/tao/bound/impls/bnk/bnk.h>
9 #include <../src/ksp/ksp/utils/lmvm/lmvm.h>
10 #include <../src/ksp/ksp/utils/lmvm/symbrdn/symbrdn.h>
11 
12 typedef struct {
13   PetscErrorCode (*solve)(Tao);
14   Mat B;
15   PC pc;
16   PetscBool is_spd;
17 } TAO_BQNK;
18 
19 #define BQNK_INIT_CONSTANT         0
20 #define BQNK_INIT_DIRECTION        1
21 #define BQNK_INIT_TYPES            2
22 
23 PETSC_INTERN PetscErrorCode TaoSolve_BQNK(Tao);
24 PETSC_INTERN PetscErrorCode TaoSetUp_BQNK(Tao);
25 PETSC_INTERN PetscErrorCode TaoCreate_BQNK(Tao);
26 
27 #endif /* if !defined(__TAO_BQNK_H) */
28