Actual source code: bqnktl.c
1: #include <../src/tao/bound/impls/bqnk/bqnk.h>
3: static PetscErrorCode TaoSetUp_BQNKTL(Tao tao)
4: {
5: KSP ksp;
6: PetscVoidFunction valid;
8: TaoSetUp_BQNK(tao);
9: TaoGetKSP(tao, &ksp);
10: PetscObjectQueryFunction((PetscObject)ksp, "KSPCGSetRadius_C", &valid);
12: return 0;
13: }
15: /*MC
16: TAOBQNKTL - Bounded Quasi-Newton-Krylov Trust-region with Line-search fallback, for nonlinear
17: minimization with bound constraints. This method approximates the Hessian-vector
18: product using a limited-memory quasi-Newton formula, and iteratively inverts the
19: Hessian with a Krylov solver. The quasi-Newton matrix and its settings can be
20: accessed via the prefix `-tao_bqnk_`. For options database, see `TAOBNK`
22: Level: beginner
24: .seealso: `Tao`, `TaoType`, `TAOBNK`, `TAOBQNKTR`, `TAOBQNKLS`
25: M*/
26: PETSC_EXTERN PetscErrorCode TaoCreate_BQNKTL(Tao tao)
27: {
28: TAO_BNK *bnk;
29: TAO_BQNK *bqnk;
31: TaoCreate_BQNK(tao);
32: tao->ops->setup = TaoSetUp_BQNKTL;
33: bnk = (TAO_BNK *)tao->data;
34: bqnk = (TAO_BQNK *)bnk->ctx;
35: bqnk->solve = TaoSolve_BNTL;
36: return 0;
37: }