Lines Matching refs:bnk
90 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()
131 PetscCall(VecCopy(bnk->unprojected_gradient, bnk->unprojected_gradient_old)); in TaoSolve_BNLS()
139 bnk->f = bnk->fold; in TaoSolve_BNLS()
140 PetscCall(VecCopy(bnk->Xold, tao->solution)); in TaoSolve_BNLS()
141 PetscCall(VecCopy(bnk->Gold, tao->gradient)); in TaoSolve_BNLS()
142 PetscCall(VecCopy(bnk->unprojected_gradient_old, bnk->unprojected_gradient)); in TaoSolve_BNLS()
149 PetscCall(TaoBNKEstimateActiveSet(tao, bnk->as_type)); in TaoSolve_BNLS()
150 PetscCall(VecCopy(bnk->unprojected_gradient, tao->gradient)); in TaoSolve_BNLS()
151 if (bnk->active_idx) PetscCall(VecISSet(tao->gradient, bnk->active_idx, 0.0)); in TaoSolve_BNLS()
152 PetscCall(TaoGradientNorm(tao, tao->gradient, NORM_2, &bnk->gnorm)); in TaoSolve_BNLS()
158 PetscCall(TaoSetRecycleHistory(bnk->bncg, PETSC_TRUE)); in TaoSolve_BNLS()
162 PetscCall(VecFischer(tao->solution, bnk->unprojected_gradient, tao->XL, tao->XU, bnk->W)); in TaoSolve_BNLS()
163 PetscCall(VecNorm(bnk->W, NORM_2, &resnorm)); in TaoSolve_BNLS()
166 PetscCall(TaoLogConvergenceHistory(tao, bnk->f, resnorm, 0.0, tao->ksp_its)); in TaoSolve_BNLS()
167 PetscCall(TaoMonitor(tao, tao->niter, bnk->f, resnorm, 0.0, steplen)); in TaoSolve_BNLS()
186 TAO_BNK *bnk; in TaoCreate_BNLS() local
192 bnk = (TAO_BNK *)tao->data; in TaoCreate_BNLS()
193 bnk->init_type = BNK_INIT_DIRECTION; in TaoCreate_BNLS()
194 bnk->update_type = BNK_UPDATE_STEP; /* trust region updates based on line search step length */ in TaoCreate_BNLS()