xref: /petsc/src/tao/bound/impls/bqnk/bqnk.h (revision 414d97d33157b14bf619cafd0d5a004382ae017e)
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>
9*414d97d3SAlp Dener #include <../src/ksp/ksp/utils/lmvm/lmvm.h>
10*414d97d3SAlp Dener #include <../src/ksp/ksp/utils/lmvm/symbrdn/symbrdn.h>
11e0ed867bSAlp Dener 
12e0ed867bSAlp Dener typedef struct {
13*414d97d3SAlp Dener   PetscErrorCode (*solve)(Tao);
14d5ae2380SAlp Dener   Mat B;
154f4fdda4SAlp Dener   PC pc;
16f5766c09SAlp Dener   PetscBool is_spd;
17e0ed867bSAlp Dener } TAO_BQNK;
18e0ed867bSAlp Dener 
196b591159SAlp Dener #define BQNK_INIT_CONSTANT         0
206b591159SAlp Dener #define BQNK_INIT_DIRECTION        1
216b591159SAlp Dener #define BQNK_INIT_TYPES            2
226b591159SAlp Dener 
23*414d97d3SAlp Dener PETSC_INTERN PetscErrorCode TaoSolve_BQNK(Tao);
246b591159SAlp Dener PETSC_INTERN PetscErrorCode TaoSetUp_BQNK(Tao);
25e0ed867bSAlp Dener PETSC_INTERN PetscErrorCode TaoCreate_BQNK(Tao);
26e0ed867bSAlp Dener 
27e0ed867bSAlp Dener #endif /* if !defined(__TAO_BQNK_H) */
28