Lines Matching refs:tao
27 PetscErrorCode TaoSetHessian(Tao tao, Mat H, Mat Hpre, PetscErrorCode (*func)(Tao tao, Vec x, Mat H… in TaoSetHessian() argument
30 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoSetHessian()
33 PetscCheckSameComm(tao, 1, H, 2); in TaoSetHessian()
37 PetscCheckSameComm(tao, 1, Hpre, 3); in TaoSetHessian()
39 if (ctx) tao->user_hessP = ctx; in TaoSetHessian()
40 if (func) tao->ops->computehessian = func; in TaoSetHessian()
43 PetscCall(MatDestroy(&tao->hessian)); in TaoSetHessian()
44 tao->hessian = H; in TaoSetHessian()
48 PetscCall(MatDestroy(&tao->hessian_pre)); in TaoSetHessian()
49 tao->hessian_pre = Hpre; in TaoSetHessian()
79 PetscErrorCode TaoGetHessian(Tao tao, Mat *H, Mat *Hpre, PetscErrorCode (**func)(Tao tao, Vec x, Ma… in TaoGetHessian() argument
82 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoGetHessian()
83 if (H) *H = tao->hessian; in TaoGetHessian()
84 if (Hpre) *Hpre = tao->hessian_pre; in TaoGetHessian()
85 if (ctx) *(void **)ctx = tao->user_hessP; in TaoGetHessian()
86 if (func) *func = tao->ops->computehessian; in TaoGetHessian()
90 PetscErrorCode TaoTestHessian(Tao tao) in TaoTestHessian() argument
93 Vec x = tao->solution; in TaoTestHessian()
105 PetscObjectOptionsBegin((PetscObject)tao); in TaoTestHessian()
112 PetscCall(PetscObjectGetComm((PetscObject)tao, &comm)); in TaoTestHessian()
115 PetscCall(PetscViewerASCIISetTab(viewer, ((PetscObject)tao)->tablevel)); in TaoTestHessian()
128 PetscCall(PetscObjectTypeCompare((PetscObject)tao->hessian, MATMFFD, &flg)); in TaoTestHessian()
129 if (!flg) hessian = tao->hessian; in TaoTestHessian()
130 else hessian = tao->hessian_pre; in TaoTestHessian()
149 PetscCall(TaoDefaultComputeHessian(tao, x, B, B, NULL)); in TaoTestHessian()
203 if (hessian != tao->hessian_pre) { in TaoTestHessian()
204 hessian = tao->hessian_pre; in TaoTestHessian()
250 PetscErrorCode TaoComputeHessian(Tao tao, Vec X, Mat H, Mat Hpre) in TaoComputeHessian() argument
253 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoComputeHessian()
255 PetscCheckSameComm(tao, 1, X, 2); in TaoComputeHessian()
256 …PetscCheck(tao->ops->computehessian, PetscObjectComm((PetscObject)tao), PETSC_ERR_ARG_WRONGSTATE, … in TaoComputeHessian()
258 ++tao->nhess; in TaoComputeHessian()
260 PetscCall(PetscLogEventBegin(TAO_HessianEval, tao, X, H, Hpre)); in TaoComputeHessian()
261 …PetscCallBack("Tao callback Hessian", (*tao->ops->computehessian)(tao, X, H, Hpre, tao->user_hessP… in TaoComputeHessian()
262 PetscCall(PetscLogEventEnd(TAO_HessianEval, tao, X, H, Hpre)); in TaoComputeHessian()
265 PetscCall(TaoTestHessian(tao)); in TaoComputeHessian()
295 PetscErrorCode TaoComputeJacobian(Tao tao, Vec X, Mat J, Mat Jpre) in TaoComputeJacobian() argument
298 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoComputeJacobian()
300 PetscCheckSameComm(tao, 1, X, 2); in TaoComputeJacobian()
301 ++tao->njac; in TaoComputeJacobian()
303 PetscCall(PetscLogEventBegin(TAO_JacobianEval, tao, X, J, Jpre)); in TaoComputeJacobian()
304 …PetscCallBack("Tao callback Jacobian", (*tao->ops->computejacobian)(tao, X, J, Jpre, tao->user_jac… in TaoComputeJacobian()
305 PetscCall(PetscLogEventEnd(TAO_JacobianEval, tao, X, J, Jpre)); in TaoComputeJacobian()
336 PetscErrorCode TaoComputeResidualJacobian(Tao tao, Vec X, Mat J, Mat Jpre) in TaoComputeResidualJacobian() argument
339 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoComputeResidualJacobian()
341 PetscCheckSameComm(tao, 1, X, 2); in TaoComputeResidualJacobian()
342 ++tao->njac; in TaoComputeResidualJacobian()
344 PetscCall(PetscLogEventBegin(TAO_JacobianEval, tao, X, J, Jpre)); in TaoComputeResidualJacobian()
345 …Tao callback least-squares residual Jacobian", (*tao->ops->computeresidualjacobian)(tao, X, J, Jpr… in TaoComputeResidualJacobian()
346 PetscCall(PetscLogEventEnd(TAO_JacobianEval, tao, X, J, Jpre)); in TaoComputeResidualJacobian()
374 PetscErrorCode TaoComputeJacobianState(Tao tao, Vec X, Mat J, Mat Jpre, Mat Jinv) in TaoComputeJacobianState() argument
377 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoComputeJacobianState()
379 PetscCheckSameComm(tao, 1, X, 2); in TaoComputeJacobianState()
380 ++tao->njac_state; in TaoComputeJacobianState()
382 PetscCall(PetscLogEventBegin(TAO_JacobianEval, tao, X, J, Jpre)); in TaoComputeJacobianState()
383 …etscCallBack("Tao callback Jacobian(state)", (*tao->ops->computejacobianstate)(tao, X, J, Jpre, Ji… in TaoComputeJacobianState()
384 PetscCall(PetscLogEventEnd(TAO_JacobianEval, tao, X, J, Jpre)); in TaoComputeJacobianState()
410 PetscErrorCode TaoComputeJacobianDesign(Tao tao, Vec X, Mat J) in TaoComputeJacobianDesign() argument
413 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoComputeJacobianDesign()
415 PetscCheckSameComm(tao, 1, X, 2); in TaoComputeJacobianDesign()
416 ++tao->njac_design; in TaoComputeJacobianDesign()
418 PetscCall(PetscLogEventBegin(TAO_JacobianEval, tao, X, J, NULL)); in TaoComputeJacobianDesign()
419 …PetscCallBack("Tao callback Jacobian(design)", (*tao->ops->computejacobiandesign)(tao, X, J, tao->… in TaoComputeJacobianDesign()
420 PetscCall(PetscLogEventEnd(TAO_JacobianEval, tao, X, J, NULL)); in TaoComputeJacobianDesign()
449 PetscErrorCode TaoSetJacobianRoutine(Tao tao, Mat J, Mat Jpre, PetscErrorCode (*func)(Tao tao, Vec … in TaoSetJacobianRoutine() argument
452 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoSetJacobianRoutine()
455 PetscCheckSameComm(tao, 1, J, 2); in TaoSetJacobianRoutine()
459 PetscCheckSameComm(tao, 1, Jpre, 3); in TaoSetJacobianRoutine()
461 if (ctx) tao->user_jacP = ctx; in TaoSetJacobianRoutine()
462 if (func) tao->ops->computejacobian = func; in TaoSetJacobianRoutine()
465 PetscCall(MatDestroy(&tao->jacobian)); in TaoSetJacobianRoutine()
466 tao->jacobian = J; in TaoSetJacobianRoutine()
470 PetscCall(MatDestroy(&tao->jacobian_pre)); in TaoSetJacobianRoutine()
471 tao->jacobian_pre = Jpre; in TaoSetJacobianRoutine()
501 PetscErrorCode TaoSetJacobianResidualRoutine(Tao tao, Mat J, Mat Jpre, PetscErrorCode (*func)(Tao t… in TaoSetJacobianResidualRoutine() argument
504 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoSetJacobianResidualRoutine()
507 PetscCheckSameComm(tao, 1, J, 2); in TaoSetJacobianResidualRoutine()
511 PetscCheckSameComm(tao, 1, Jpre, 3); in TaoSetJacobianResidualRoutine()
513 if (ctx) tao->user_lsjacP = ctx; in TaoSetJacobianResidualRoutine()
514 if (func) tao->ops->computeresidualjacobian = func; in TaoSetJacobianResidualRoutine()
517 PetscCall(MatDestroy(&tao->ls_jac)); in TaoSetJacobianResidualRoutine()
518 tao->ls_jac = J; in TaoSetJacobianResidualRoutine()
522 PetscCall(MatDestroy(&tao->ls_jac_pre)); in TaoSetJacobianResidualRoutine()
523 tao->ls_jac_pre = Jpre; in TaoSetJacobianResidualRoutine()
556 …etscErrorCode TaoSetJacobianStateRoutine(Tao tao, Mat J, Mat Jpre, Mat Jinv, PetscErrorCode (*func… in TaoSetJacobianStateRoutine() argument
559 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoSetJacobianStateRoutine()
562 PetscCheckSameComm(tao, 1, J, 2); in TaoSetJacobianStateRoutine()
566 PetscCheckSameComm(tao, 1, Jpre, 3); in TaoSetJacobianStateRoutine()
570 PetscCheckSameComm(tao, 1, Jinv, 4); in TaoSetJacobianStateRoutine()
572 if (ctx) tao->user_jac_stateP = ctx; in TaoSetJacobianStateRoutine()
573 if (func) tao->ops->computejacobianstate = func; in TaoSetJacobianStateRoutine()
576 PetscCall(MatDestroy(&tao->jacobian_state)); in TaoSetJacobianStateRoutine()
577 tao->jacobian_state = J; in TaoSetJacobianStateRoutine()
581 PetscCall(MatDestroy(&tao->jacobian_state_pre)); in TaoSetJacobianStateRoutine()
582 tao->jacobian_state_pre = Jpre; in TaoSetJacobianStateRoutine()
586 PetscCall(MatDestroy(&tao->jacobian_state_inv)); in TaoSetJacobianStateRoutine()
587 tao->jacobian_state_inv = Jinv; in TaoSetJacobianStateRoutine()
616 PetscErrorCode TaoSetJacobianDesignRoutine(Tao tao, Mat J, PetscErrorCode (*func)(Tao tao, Vec x, M… in TaoSetJacobianDesignRoutine() argument
619 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoSetJacobianDesignRoutine()
622 PetscCheckSameComm(tao, 1, J, 2); in TaoSetJacobianDesignRoutine()
624 if (ctx) tao->user_jac_designP = ctx; in TaoSetJacobianDesignRoutine()
625 if (func) tao->ops->computejacobiandesign = func; in TaoSetJacobianDesignRoutine()
628 PetscCall(MatDestroy(&tao->jacobian_design)); in TaoSetJacobianDesignRoutine()
629 tao->jacobian_design = J; in TaoSetJacobianDesignRoutine()
650 PetscErrorCode TaoSetStateDesignIS(Tao tao, IS s_is, IS d_is) in TaoSetStateDesignIS() argument
654 PetscCall(ISDestroy(&tao->state_is)); in TaoSetStateDesignIS()
655 tao->state_is = s_is; in TaoSetStateDesignIS()
657 PetscCall(ISDestroy(&tao->design_is)); in TaoSetStateDesignIS()
658 tao->design_is = d_is; in TaoSetStateDesignIS()
684 PetscErrorCode TaoComputeJacobianEquality(Tao tao, Vec X, Mat J, Mat Jpre) in TaoComputeJacobianEquality() argument
687 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoComputeJacobianEquality()
689 PetscCheckSameComm(tao, 1, X, 2); in TaoComputeJacobianEquality()
690 ++tao->njac_equality; in TaoComputeJacobianEquality()
692 PetscCall(PetscLogEventBegin(TAO_JacobianEval, tao, X, J, Jpre)); in TaoComputeJacobianEquality()
693 …tscCallBack("Tao callback Jacobian(equality)", (*tao->ops->computejacobianequality)(tao, X, J, Jpr… in TaoComputeJacobianEquality()
694 PetscCall(PetscLogEventEnd(TAO_JacobianEval, tao, X, J, Jpre)); in TaoComputeJacobianEquality()
721 PetscErrorCode TaoComputeJacobianInequality(Tao tao, Vec X, Mat J, Mat Jpre) in TaoComputeJacobianInequality() argument
724 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoComputeJacobianInequality()
726 PetscCheckSameComm(tao, 1, X, 2); in TaoComputeJacobianInequality()
727 ++tao->njac_inequality; in TaoComputeJacobianInequality()
729 PetscCall(PetscLogEventBegin(TAO_JacobianEval, tao, X, J, Jpre)); in TaoComputeJacobianInequality()
730 …allBack("Tao callback Jacobian (inequality)", (*tao->ops->computejacobianinequality)(tao, X, J, Jp… in TaoComputeJacobianInequality()
731 PetscCall(PetscLogEventEnd(TAO_JacobianEval, tao, X, J, Jpre)); in TaoComputeJacobianInequality()
762 PetscErrorCode TaoSetJacobianEqualityRoutine(Tao tao, Mat J, Mat Jpre, PetscErrorCode (*func)(Tao t… in TaoSetJacobianEqualityRoutine() argument
765 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoSetJacobianEqualityRoutine()
768 PetscCheckSameComm(tao, 1, J, 2); in TaoSetJacobianEqualityRoutine()
772 PetscCheckSameComm(tao, 1, Jpre, 3); in TaoSetJacobianEqualityRoutine()
774 if (ctx) tao->user_jac_equalityP = ctx; in TaoSetJacobianEqualityRoutine()
775 if (func) tao->ops->computejacobianequality = func; in TaoSetJacobianEqualityRoutine()
778 PetscCall(MatDestroy(&tao->jacobian_equality)); in TaoSetJacobianEqualityRoutine()
779 tao->jacobian_equality = J; in TaoSetJacobianEqualityRoutine()
783 PetscCall(MatDestroy(&tao->jacobian_equality_pre)); in TaoSetJacobianEqualityRoutine()
784 tao->jacobian_equality_pre = Jpre; in TaoSetJacobianEqualityRoutine()
814 PetscErrorCode TaoGetJacobianEqualityRoutine(Tao tao, Mat *J, Mat *Jpre, PetscErrorCode (**func)(Ta… in TaoGetJacobianEqualityRoutine() argument
817 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoGetJacobianEqualityRoutine()
818 if (J) *J = tao->jacobian_equality; in TaoGetJacobianEqualityRoutine()
819 if (Jpre) *Jpre = tao->jacobian_equality_pre; in TaoGetJacobianEqualityRoutine()
820 if (func) *func = tao->ops->computejacobianequality; in TaoGetJacobianEqualityRoutine()
821 if (ctx) *(void **)ctx = tao->user_jac_equalityP; in TaoGetJacobianEqualityRoutine()
851 …etscErrorCode TaoSetJacobianInequalityRoutine(Tao tao, Mat J, Mat Jpre, PetscErrorCode (*func)(Tao… in TaoSetJacobianInequalityRoutine() argument
854 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoSetJacobianInequalityRoutine()
857 PetscCheckSameComm(tao, 1, J, 2); in TaoSetJacobianInequalityRoutine()
861 PetscCheckSameComm(tao, 1, Jpre, 3); in TaoSetJacobianInequalityRoutine()
863 if (ctx) tao->user_jac_inequalityP = ctx; in TaoSetJacobianInequalityRoutine()
864 if (func) tao->ops->computejacobianinequality = func; in TaoSetJacobianInequalityRoutine()
867 PetscCall(MatDestroy(&tao->jacobian_inequality)); in TaoSetJacobianInequalityRoutine()
868 tao->jacobian_inequality = J; in TaoSetJacobianInequalityRoutine()
872 PetscCall(MatDestroy(&tao->jacobian_inequality_pre)); in TaoSetJacobianInequalityRoutine()
873 tao->jacobian_inequality_pre = Jpre; in TaoSetJacobianInequalityRoutine()
903 …tscErrorCode TaoGetJacobianInequalityRoutine(Tao tao, Mat *J, Mat *Jpre, PetscErrorCode (**func)(T… in TaoGetJacobianInequalityRoutine() argument
906 PetscValidHeaderSpecific(tao, TAO_CLASSID, 1); in TaoGetJacobianInequalityRoutine()
907 if (J) *J = tao->jacobian_inequality; in TaoGetJacobianInequalityRoutine()
908 if (Jpre) *Jpre = tao->jacobian_inequality_pre; in TaoGetJacobianInequalityRoutine()
909 if (func) *func = tao->ops->computejacobianinequality; in TaoGetJacobianInequalityRoutine()
910 if (ctx) *(void **)ctx = tao->user_jac_inequalityP; in TaoGetJacobianInequalityRoutine()