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
23: .seealso `TAOBNK`, `TAOBQNKTR`, `TAOBQNKLS`
24: M*/
25: PETSC_EXTERN PetscErrorCode TaoCreate_BQNKTL(Tao tao)
26: {
27: TAO_BNK *bnk;
28: TAO_BQNK *bqnk;
30: TaoCreate_BQNK(tao);
31: tao->ops->setup = TaoSetUp_BQNKTL;
32: bnk = (TAO_BNK *)tao->data;
33: bqnk = (TAO_BQNK *)bnk->ctx;
34: bqnk->solve = TaoSolve_BNTL;
35: return 0;
36: }