Lines Matching refs:tao
17 PetscErrorCode TaoSetVariableBounds(Tao tao, Vec XL, Vec XU) in TaoSetVariableBounds() argument
20 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoSetVariableBounds()
25 PetscCall(VecDestroy(&tao->XL)); in TaoSetVariableBounds()
26 PetscCall(VecDestroy(&tao->XU)); in TaoSetVariableBounds()
27 tao->XL = XL; in TaoSetVariableBounds()
28 tao->XU = XU; in TaoSetVariableBounds()
29 tao->bounded = (PetscBool)(XL || XU); in TaoSetVariableBounds()
56 PetscErrorCode TaoSetVariableBoundsRoutine(Tao tao, PetscErrorCode (*func)(Tao tao, Vec xl, Vec xu,… in TaoSetVariableBoundsRoutine() argument
59 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoSetVariableBoundsRoutine()
60 tao->user_boundsP = ctx; in TaoSetVariableBoundsRoutine()
61 tao->ops->computebounds = func; in TaoSetVariableBoundsRoutine()
62 tao->bounded = func ? PETSC_TRUE : PETSC_FALSE; in TaoSetVariableBoundsRoutine()
82 PetscErrorCode TaoGetVariableBounds(Tao tao, Vec *XL, Vec *XU) in TaoGetVariableBounds() argument
85 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoGetVariableBounds()
86 if (XL) *XL = tao->XL; in TaoGetVariableBounds()
87 if (XU) *XU = tao->XU; in TaoGetVariableBounds()
104 PetscErrorCode TaoComputeVariableBounds(Tao tao) in TaoComputeVariableBounds() argument
107 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoComputeVariableBounds()
108 if (tao->ops->computebounds) { in TaoComputeVariableBounds()
109 if (!tao->XL) { in TaoComputeVariableBounds()
110 PetscCall(VecDuplicate(tao->solution, &tao->XL)); in TaoComputeVariableBounds()
111 PetscCall(VecSet(tao->XL, PETSC_NINFINITY)); in TaoComputeVariableBounds()
113 if (!tao->XU) { in TaoComputeVariableBounds()
114 PetscCall(VecDuplicate(tao->solution, &tao->XU)); in TaoComputeVariableBounds()
115 PetscCall(VecSet(tao->XU, PETSC_INFINITY)); in TaoComputeVariableBounds()
117 …PetscCallBack("Tao callback variable bounds", (*tao->ops->computebounds)(tao, tao->XL, tao->XU, ta… in TaoComputeVariableBounds()
136 PetscErrorCode TaoSetInequalityBounds(Tao tao, Vec IL, Vec IU) in TaoSetInequalityBounds() argument
139 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoSetInequalityBounds()
144 PetscCall(VecDestroy(&tao->IL)); in TaoSetInequalityBounds()
145 PetscCall(VecDestroy(&tao->IU)); in TaoSetInequalityBounds()
146 tao->IL = IL; in TaoSetInequalityBounds()
147 tao->IU = IU; in TaoSetInequalityBounds()
148 tao->ineq_doublesided = (PetscBool)(IL || IU); in TaoSetInequalityBounds()
168 PetscErrorCode TaoGetInequalityBounds(Tao tao, Vec *IL, Vec *IU) in TaoGetInequalityBounds() argument
171 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoGetInequalityBounds()
172 if (IL) *IL = tao->IL; in TaoGetInequalityBounds()
173 if (IU) *IU = tao->IU; in TaoGetInequalityBounds()
194 PetscErrorCode TaoComputeConstraints(Tao tao, Vec X, Vec C) in TaoComputeConstraints() argument
197 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoComputeConstraints()
200 PetscCheckSameComm(tao, 1, X, 2); in TaoComputeConstraints()
201 PetscCheckSameComm(tao, 1, C, 3); in TaoComputeConstraints()
202 PetscCall(PetscLogEventBegin(TAO_ConstraintsEval, tao, X, C, NULL)); in TaoComputeConstraints()
203 …PetscCallBack("Tao callback constraints", (*tao->ops->computeconstraints)(tao, X, C, tao->user_con… in TaoComputeConstraints()
204 PetscCall(PetscLogEventEnd(TAO_ConstraintsEval, tao, X, C, NULL)); in TaoComputeConstraints()
205 tao->nconstraints++; in TaoComputeConstraints()
230 PetscErrorCode TaoSetConstraintsRoutine(Tao tao, Vec c, PetscErrorCode (*func)(Tao tao, Vec x, Vec … in TaoSetConstraintsRoutine() argument
233 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoSetConstraintsRoutine()
236 PetscCall(VecDestroy(&tao->constraints)); in TaoSetConstraintsRoutine()
237 tao->constrained = func ? PETSC_TRUE : PETSC_FALSE; in TaoSetConstraintsRoutine()
238 tao->constraints = c; in TaoSetConstraintsRoutine()
239 tao->user_conP = ctx; in TaoSetConstraintsRoutine()
240 tao->ops->computeconstraints = func; in TaoSetConstraintsRoutine()
266 PetscErrorCode TaoComputeDualVariables(Tao tao, Vec DL, Vec DU) in TaoComputeDualVariables() argument
269 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoComputeDualVariables()
272 PetscCheckSameComm(tao, 1, DL, 2); in TaoComputeDualVariables()
273 PetscCheckSameComm(tao, 1, DU, 3); in TaoComputeDualVariables()
274 if (tao->ops->computedual) { in TaoComputeDualVariables()
275 PetscUseTypeMethod(tao, computedual, DL, DU); in TaoComputeDualVariables()
299 PetscErrorCode TaoGetDualVariables(Tao tao, Vec *DE, Vec *DI) in TaoGetDualVariables() argument
302 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoGetDualVariables()
303 if (DE) *DE = tao->DE; in TaoGetDualVariables()
304 if (DI) *DI = tao->DI; in TaoGetDualVariables()
329 PetscErrorCode TaoSetEqualityConstraintsRoutine(Tao tao, Vec ce, PetscErrorCode (*func)(Tao tao, Ve… in TaoSetEqualityConstraintsRoutine() argument
332 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoSetEqualityConstraintsRoutine()
335 PetscCall(VecDestroy(&tao->constraints_equality)); in TaoSetEqualityConstraintsRoutine()
336 tao->eq_constrained = func ? PETSC_TRUE : PETSC_FALSE; in TaoSetEqualityConstraintsRoutine()
337 tao->constraints_equality = ce; in TaoSetEqualityConstraintsRoutine()
338 tao->user_con_equalityP = ctx; in TaoSetEqualityConstraintsRoutine()
339 tao->ops->computeequalityconstraints = func; in TaoSetEqualityConstraintsRoutine()
366 PetscErrorCode TaoGetEqualityConstraintsRoutine(Tao tao, Vec *ci, PetscErrorCode (**func)(Tao tao, … in TaoGetEqualityConstraintsRoutine() argument
369 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoGetEqualityConstraintsRoutine()
370 if (ci) *ci = tao->constraints_equality; in TaoGetEqualityConstraintsRoutine()
371 if (func) *func = tao->ops->computeequalityconstraints; in TaoGetEqualityConstraintsRoutine()
372 if (ctx) *(void **)ctx = tao->user_con_equalityP; in TaoGetEqualityConstraintsRoutine()
397 PetscErrorCode TaoSetInequalityConstraintsRoutine(Tao tao, Vec ci, PetscErrorCode (*func)(Tao tao, … in TaoSetInequalityConstraintsRoutine() argument
400 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoSetInequalityConstraintsRoutine()
403 PetscCall(VecDestroy(&tao->constraints_inequality)); in TaoSetInequalityConstraintsRoutine()
404 tao->constraints_inequality = ci; in TaoSetInequalityConstraintsRoutine()
405 tao->ineq_constrained = func ? PETSC_TRUE : PETSC_FALSE; in TaoSetInequalityConstraintsRoutine()
406 tao->user_con_inequalityP = ctx; in TaoSetInequalityConstraintsRoutine()
407 tao->ops->computeinequalityconstraints = func; in TaoSetInequalityConstraintsRoutine()
434 PetscErrorCode TaoGetInequalityConstraintsRoutine(Tao tao, Vec *ci, PetscErrorCode (**func)(Tao tao… in TaoGetInequalityConstraintsRoutine() argument
437 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoGetInequalityConstraintsRoutine()
438 if (ci) *ci = tao->constraints_inequality; in TaoGetInequalityConstraintsRoutine()
439 if (func) *func = tao->ops->computeinequalityconstraints; in TaoGetInequalityConstraintsRoutine()
440 if (ctx) *(void **)ctx = tao->user_con_inequalityP; in TaoGetInequalityConstraintsRoutine()
461 PetscErrorCode TaoComputeEqualityConstraints(Tao tao, Vec X, Vec CE) in TaoComputeEqualityConstraints() argument
464 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoComputeEqualityConstraints()
467 PetscCheckSameComm(tao, 1, X, 2); in TaoComputeEqualityConstraints()
468 PetscCheckSameComm(tao, 1, CE, 3); in TaoComputeEqualityConstraints()
469 PetscCall(PetscLogEventBegin(TAO_ConstraintsEval, tao, X, CE, NULL)); in TaoComputeEqualityConstraints()
470 …scCallBack("Tao callback equality constraints", (*tao->ops->computeequalityconstraints)(tao, X, CE… in TaoComputeEqualityConstraints()
471 PetscCall(PetscLogEventEnd(TAO_ConstraintsEval, tao, X, CE, NULL)); in TaoComputeEqualityConstraints()
472 tao->nconstraints++; in TaoComputeEqualityConstraints()
493 PetscErrorCode TaoComputeInequalityConstraints(Tao tao, Vec X, Vec CI) in TaoComputeInequalityConstraints() argument
496 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoComputeInequalityConstraints()
499 PetscCheckSameComm(tao, 1, X, 2); in TaoComputeInequalityConstraints()
500 PetscCheckSameComm(tao, 1, CI, 3); in TaoComputeInequalityConstraints()
501 PetscCall(PetscLogEventBegin(TAO_ConstraintsEval, tao, X, CI, NULL)); in TaoComputeInequalityConstraints()
502 …allBack("Tao callback inequality constraints", (*tao->ops->computeinequalityconstraints)(tao, X, C… in TaoComputeInequalityConstraints()
503 PetscCall(PetscLogEventEnd(TAO_ConstraintsEval, tao, X, CI, NULL)); in TaoComputeInequalityConstraints()
504 tao->nconstraints++; in TaoComputeInequalityConstraints()