Lines Matching refs:bqnk

1 #include <../src/tao/bound/impls/bqnk/bqnk.h> /*I "petsctao.h" I*/
7 TAO_BQNK *bqnk = (TAO_BQNK *)bnk->ctx;
14 PetscCall(PetscObjectReference((PetscObject)bqnk->B));
15 tao->hessian = bqnk->B;
16 PetscCall(PetscObjectReference((PetscObject)bqnk->B));
17 tao->hessian_pre = bqnk->B;
19 if (bqnk->is_spd) {
27 PetscCall(MatLMVMSymBroydenSetDelta(bqnk->B, delta));
35 PetscCall(PCLMVMSetIS(bqnk->pc, bnk->inactive_idx));
39 PetscCall(PCLMVMClearIS(bqnk->pc));
50 TAO_BQNK *bqnk = (TAO_BQNK *)bnk->ctx;
56 PetscCall(MatLMVMReset(bqnk->B, PETSC_FALSE));
57 PetscCall(MatLMVMUpdate(bqnk->B, tao->solution, bnk->unprojected_gradient));
65 TAO_BQNK *bqnk = (TAO_BQNK *)bnk->ctx;
66 Mat_LMVM *lmvm = (Mat_LMVM *)bqnk->B->data;
72 PetscCall(MatLMVMReset(bqnk->B, PETSC_FALSE));
82 PetscCall((*bqnk->solve)(tao));
89 TAO_BQNK *bqnk = (TAO_BQNK *)bnk->ctx;
97 PetscCall(MatSetSizes(bqnk->B, n, n, N, N));
98 PetscCall(MatLMVMAllocate(bqnk->B, tao->solution, bnk->unprojected_gradient));
99 PetscCall(PetscObjectBaseTypeCompare((PetscObject)bqnk->B, MATLMVM, &is_lmvm));
101 PetscCall(MatIsSymmetricKnown(bqnk->B, &is_set, &is_sym));
103 PetscCall(KSPGetPC(tao->ksp, &bqnk->pc));
104 PetscCall(PCSetType(bqnk->pc, PCLMVM));
105 PetscCall(PCLMVMSetMatLMVM(bqnk->pc, bqnk->B));
112 TAO_BQNK *bqnk = (TAO_BQNK *)bnk->ctx;
118 PetscCall(MatSetOptionsPrefix(bqnk->B, ((PetscObject)tao)->prefix));
119 PetscCall(MatAppendOptionsPrefix(bqnk->B, "tao_bqnk_"));
120 PetscCall(MatSetFromOptions(bqnk->B));
121 PetscCall(MatIsSPDKnown(bqnk->B, &is_set, &bqnk->is_spd));
122 if (!is_set) bqnk->is_spd = PETSC_FALSE;
129 TAO_BQNK *bqnk = (TAO_BQNK *)bnk->ctx;
137 PetscCall(MatView(bqnk->B, viewer));
146 TAO_BQNK *bqnk = (TAO_BQNK *)bnk->ctx;
151 PetscCall(MatDestroy(&bqnk->B));
160 TAO_BQNK *bqnk;
175 PetscCall(PetscNew(&bqnk));
176 bnk->ctx = (void *)bqnk;
177 bqnk->is_spd = PETSC_TRUE;
179 PetscCall(MatCreate(PetscObjectComm((PetscObject)tao), &bqnk->B));
180 PetscCall(PetscObjectIncrementTabLevel((PetscObject)bqnk->B, (PetscObject)tao, 1));
181 PetscCall(MatSetType(bqnk->B, MATLMVMSR1));
202 TAO_BQNK *bqnk = (TAO_BQNK *)bnk->ctx;
208 *B = bqnk->B;
230 TAO_BQNK *bqnk = (TAO_BQNK *)bnk->ctx;
238 if (bqnk->B) PetscCall(MatDestroy(&bqnk->B));
240 bqnk->B = B;