Actual source code: bqnk.h
1: /*
2: Context for bounded quasi-Newton-Krylov type optimization algorithms
3: */
5: #pragma once
7: #include <../src/tao/bound/impls/bnk/bnk.h>
8: #include <../src/ksp/ksp/utils/lmvm/lmvm.h>
9: #include <../src/ksp/ksp/utils/lmvm/symbrdn/symbrdn.h>
11: typedef struct {
12: PetscErrorCode (*solve)(Tao);
13: Mat B;
14: PC pc;
15: PetscBool is_spd;
16: } TAO_BQNK;
18: #define BQNK_INIT_CONSTANT 0
19: #define BQNK_INIT_DIRECTION 1
20: #define BQNK_INIT_TYPES 2
22: PETSC_INTERN PetscErrorCode TaoSolve_BQNK(Tao);
23: PETSC_INTERN PetscErrorCode TaoSetUp_BQNK(Tao);
24: PETSC_INTERN PetscErrorCode TaoCreate_BQNK(Tao);