Home
last modified time | relevance | path

Searched refs:bnk (Results 1 – 9 of 9) sorted by relevance

/petsc/src/tao/bound/impls/bnk/
H A Dbnk.c13 TAO_BNK *bnk = (TAO_BNK *)tao->data; in TaoBNKComputeSubHessian() local
16 PetscCall(MatDestroy(&bnk->Hpre_inactive)); in TaoBNKComputeSubHessian()
17 PetscCall(MatDestroy(&bnk->H_inactive)); in TaoBNKComputeSubHessian()
18 if (bnk->active_idx) { in TaoBNKComputeSubHessian()
19 …PetscCall(MatCreateSubMatrix(tao->hessian, bnk->inactive_idx, bnk->inactive_idx, MAT_INITIAL_MATRI… in TaoBNKComputeSubHessian()
21 PetscCall(PetscObjectReference((PetscObject)bnk->H_inactive)); in TaoBNKComputeSubHessian()
22 bnk->Hpre_inactive = bnk->H_inactive; in TaoBNKComputeSubHessian()
24 …tscCall(MatCreateSubMatrix(tao->hessian_pre, bnk->inactive_idx, bnk->inactive_idx, MAT_INITIAL_MAT… in TaoBNKComputeSubHessian()
26 if (bnk->bfgs_pre) PetscCall(PCLMVMSetIS(bnk->bfgs_pre, bnk->inactive_idx)); in TaoBNKComputeSubHessian()
29 bnk->H_inactive = tao->hessian; in TaoBNKComputeSubHessian()
[all …]
H A Dbntl.c108 TAO_BNK *bnk = (TAO_BNK *)tao->data; in TaoSolve_BNTL() local
119 PetscCall(TaoBNKInitialize(tao, bnk->init_type, &needH)); in TaoSolve_BNTL()
127 PetscCall(TaoComputeObjective(tao, tao->solution, &bnk->f)); in TaoSolve_BNTL()
130 if (needH && bnk->inactive_idx) { in TaoSolve_BNTL()
134 tao->reason = bnk->bncg->reason; in TaoSolve_BNTL()
138 PetscCall((*bnk->computehessian)(tao)); in TaoSolve_BNTL()
143 PetscCall((*bnk->computestep)(tao, shift, &ksp_reason, &stepType)); in TaoSolve_BNTL()
147 bnk->fold = bnk->f; in TaoSolve_BNTL()
148 PetscCall(VecCopy(tao->solution, bnk->Xold)); in TaoSolve_BNTL()
149 PetscCall(VecCopy(tao->gradient, bnk->Gold)); in TaoSolve_BNTL()
[all …]
H A Dbntr.c91 TAO_BNK *bnk = (TAO_BNK *)tao->data; in TaoSolve_BNTR() local
101 PetscCall(TaoBNKInitialize(tao, bnk->init_type, &needH)); in TaoSolve_BNTR()
109 PetscCall(TaoComputeObjective(tao, tao->solution, &bnk->f)); in TaoSolve_BNTR()
112 if (needH && bnk->inactive_idx) { in TaoSolve_BNTR()
116 tao->reason = bnk->bncg->reason; in TaoSolve_BNTR()
120 PetscCall((*bnk->computehessian)(tao)); in TaoSolve_BNTR()
125 bnk->fold = bnk->f; in TaoSolve_BNTR()
126 PetscCall(VecCopy(tao->solution, bnk->Xold)); in TaoSolve_BNTR()
127 PetscCall(VecCopy(tao->gradient, bnk->Gold)); in TaoSolve_BNTR()
128 PetscCall(VecCopy(bnk->unprojected_gradient, bnk->unprojected_gradient_old)); in TaoSolve_BNTR()
[all …]
H A Dbnls.c90 TAO_BNK *bnk = (TAO_BNK *)tao->data; in TaoSolve_BNLS() local
100 PetscCall(TaoBNKInitialize(tao, bnk->init_type, &needH)); in TaoSolve_BNLS()
108 PetscCall(TaoComputeObjective(tao, tao->solution, &bnk->f)); in TaoSolve_BNLS()
111 if (needH && bnk->inactive_idx) { in TaoSolve_BNLS()
115 tao->reason = bnk->bncg->reason; in TaoSolve_BNLS()
119 PetscCall((*bnk->computehessian)(tao)); in TaoSolve_BNLS()
124 PetscCall((*bnk->computestep)(tao, shift, &ksp_reason, &stepType)); in TaoSolve_BNLS()
128 bnk->fold = bnk->f; in TaoSolve_BNLS()
129 PetscCall(VecCopy(tao->solution, bnk->Xold)); in TaoSolve_BNLS()
130 PetscCall(VecCopy(tao->gradient, bnk->Gold)); in TaoSolve_BNLS()
[all …]
/petsc/src/tao/bound/impls/bqnls/
H A Dbqnls.c7 TAO_BNK *bnk = (TAO_BNK *)tao->data; in TaoBQNLSComputeHessian() local
8 TAO_BQNK *bqnk = (TAO_BQNK *)bnk->ctx; in TaoBQNLSComputeHessian()
13 gnorm2 = bnk->gnorm * bnk->gnorm; in TaoBQNLSComputeHessian()
15 if (bnk->f == 0.0) delta = 2.0 / gnorm2; in TaoBQNLSComputeHessian()
16 else delta = 2.0 * PetscAbsScalar(bnk->f) / gnorm2; in TaoBQNLSComputeHessian()
18 PetscCall(MatLMVMUpdate(bqnk->B, tao->solution, bnk->unprojected_gradient)); in TaoBQNLSComputeHessian()
24 TAO_BNK *bnk = (TAO_BNK *)tao->data; in TaoBQNLSComputeStep() local
25 TAO_BQNK *bqnk = (TAO_BQNK *)bnk->ctx; in TaoBQNLSComputeStep()
31 PetscCall(TaoBNKBoundStep(tao, bnk->as_type, tao->stepdirection)); in TaoBQNLSComputeStep()
41 TAO_BNK *bnk = (TAO_BNK *)tao->data; in TaoSetFromOptions_BQNLS() local
[all …]
/petsc/src/tao/bound/impls/bqnk/
H A Dbqnk.c6 TAO_BNK *bnk = (TAO_BNK *)tao->data; in TaoBQNKComputeHessian() local
7 TAO_BQNK *bqnk = (TAO_BQNK *)bnk->ctx; in TaoBQNKComputeHessian()
20 gnorm2 = bnk->gnorm * bnk->gnorm; in TaoBQNKComputeHessian()
22 if (bnk->f == 0.0) { in TaoBQNKComputeHessian()
25 delta = 2.0 * PetscAbsScalar(bnk->f) / gnorm2; in TaoBQNKComputeHessian()
29 PetscCall(MatLMVMUpdate(tao->hessian, tao->solution, bnk->unprojected_gradient)); in TaoBQNKComputeHessian()
32 PetscCall(MatDestroy(&bnk->H_inactive)); in TaoBQNKComputeHessian()
33 if (bnk->active_idx) { in TaoBQNKComputeHessian()
34 …PetscCall(MatCreateSubMatrixVirtual(tao->hessian, bnk->inactive_idx, bnk->inactive_idx, &bnk->H_in… in TaoBQNKComputeHessian()
35 PetscCall(PCLMVMSetIS(bqnk->pc, bnk->inactive_idx)); in TaoBQNKComputeHessian()
[all …]
H A Dbqnkls.c16 TAO_BNK *bnk; in TaoCreate_BQNKLS() local
21 bnk = (TAO_BNK *)tao->data; in TaoCreate_BQNKLS()
22 bnk->update_type = BNK_UPDATE_STEP; in TaoCreate_BQNKLS()
23 bqnk = (TAO_BQNK *)bnk->ctx; in TaoCreate_BQNKLS()
H A Dbqnktl.c29 TAO_BNK *bnk; in TaoCreate_BQNKTL() local
35 bnk = (TAO_BNK *)tao->data; in TaoCreate_BQNKTL()
36 bqnk = (TAO_BQNK *)bnk->ctx; in TaoCreate_BQNKTL()
H A Dbqnktr.c30 TAO_BNK *bnk; in TaoCreate_BQNKTR() local
36 bnk = (TAO_BNK *)tao->data; in TaoCreate_BQNKTR()
37 bqnk = (TAO_BQNK *)bnk->ctx; in TaoCreate_BQNKTR()