Lines Matching refs:actx

26   Aircraft           actx = (Aircraft)ctx;  in RHSFunction()  local
34 PetscCall(VecGetArrayRead(actx->V, &v)); in RHSFunction()
35 PetscCall(VecGetArrayRead(actx->W, &w)); in RHSFunction()
40 PetscCall(VecRestoreArrayRead(actx->V, &v)); in RHSFunction()
41 PetscCall(VecRestoreArrayRead(actx->W, &w)); in RHSFunction()
48 Aircraft actx = (Aircraft)ctx; in RHSJacobianP() local
57 PetscCall(VecGetArrayRead(actx->V, &v)); in RHSJacobianP()
58 PetscCall(VecGetArrayRead(actx->W, &w)); in RHSJacobianP()
66 PetscCall(VecRestoreArrayRead(actx->V, &v)); in RHSJacobianP()
67 PetscCall(VecRestoreArrayRead(actx->W, &w)); in RHSJacobianP()
98 Aircraft actx = (Aircraft)ctx; in RHSHessianProductPP() local
107 PetscCall(VecGetArrayRead(actx->V, &v)); in RHSHessianProductPP()
108 PetscCall(VecGetArrayRead(actx->W, &w)); in RHSHessianProductPP()
136 Aircraft actx = (Aircraft)ctx; in IntegrandHessianProductUU() local
145 PetscCall(VecGetArrayRead(actx->V, &v)); in IntegrandHessianProductUU()
146 PetscCall(VecGetArrayRead(actx->W, &w)); in IntegrandHessianProductUU()
183 Aircraft actx = (Aircraft)ctx; in CostIntegrand() local
191 dx = u[0] - actx->lv * t * PetscCosReal(actx->lw); in CostIntegrand()
192 dy = u[1] - actx->lv * t * PetscSinReal(actx->lw); in CostIntegrand()
201 Aircraft actx = (Aircraft)ctx; in DRDUJacobianTranspose() local
209 dx = u[0] - actx->lv * t * PetscCosReal(actx->lw); in DRDUJacobianTranspose()
210 dy = u[1] - actx->lv * t * PetscSinReal(actx->lw); in DRDUJacobianTranspose()
437 Aircraft actx = (Aircraft)ctx; in FormObjFunctionGradient() local
438 TS ts = actx->ts; in FormObjFunctionGradient()
446 PetscCall(VecGetArray(actx->V, &v)); in FormObjFunctionGradient()
447 PetscCall(VecGetArray(actx->W, &w)); in FormObjFunctionGradient()
448 for (i = 0; i < actx->nsteps; i++) { in FormObjFunctionGradient()
453 PetscCall(VecRestoreArray(actx->V, &v)); in FormObjFunctionGradient()
454 PetscCall(VecRestoreArray(actx->W, &w)); in FormObjFunctionGradient()
459 PetscCall(TSSetTimeStep(ts, actx->ftime / actx->nsteps)); in FormObjFunctionGradient()
462 PetscCall(VecGetArray(actx->U, &u)); in FormObjFunctionGradient()
465 PetscCall(VecRestoreArray(actx->U, &u)); in FormObjFunctionGradient()
471 PetscCall(TSSolve(ts, actx->U)); in FormObjFunctionGradient()
474 PetscCall(VecSet(actx->Lambda[0], 0.0)); in FormObjFunctionGradient()
475 PetscCall(VecSet(actx->Mup[0], 0.0)); in FormObjFunctionGradient()
476 PetscCall(TSSetCostGradients(ts, 1, actx->Lambda, actx->Mup)); in FormObjFunctionGradient()
479 PetscCall(VecCopy(actx->Mup[0], G)); in FormObjFunctionGradient()
489 Aircraft actx = (Aircraft)ctx; in FormObjHessian() local
499 PetscCall(VecGetArray(actx->V, &v)); in FormObjHessian()
500 PetscCall(VecGetArray(actx->W, &w)); in FormObjHessian()
501 for (i = 0; i < actx->nsteps; i++) { in FormObjHessian()
506 PetscCall(VecRestoreArray(actx->V, &v)); in FormObjHessian()
507 PetscCall(VecRestoreArray(actx->W, &w)); in FormObjHessian()
509 PetscCall(PetscMalloc1(2 * actx->nsteps, &harr)); in FormObjHessian()
510 PetscCall(PetscMalloc1(2 * actx->nsteps, &cols)); in FormObjHessian()
511 for (i = 0; i < 2 * actx->nsteps; i++) cols[i] = i; in FormObjHessian()
513 for (i = 0; i < 2 * actx->nsteps; i++) { in FormObjHessian()
519 PetscCall(ComputeObjHessianWithSOA(Dir, harr, actx)); in FormObjHessian()
520 PetscCall(MatSetValues(H, 1, ind, 2 * actx->nsteps, cols, harr, INSERT_VALUES)); in FormObjHessian()
536 Aircraft actx = (Aircraft)ctx; in MatrixFreeObjHessian() local
543 PetscCall(VecGetArray(actx->V, &v)); in MatrixFreeObjHessian()
544 PetscCall(VecGetArray(actx->W, &w)); in MatrixFreeObjHessian()
545 for (i = 0; i < actx->nsteps; i++) { in MatrixFreeObjHessian()
550 PetscCall(VecRestoreArray(actx->V, &v)); in MatrixFreeObjHessian()
551 PetscCall(VecRestoreArray(actx->W, &w)); in MatrixFreeObjHessian()
568 PetscErrorCode ComputeObjHessianWithSOA(Vec Dir, PetscScalar arr[], Aircraft actx) in ComputeObjHessianWithSOA() argument
570 TS ts = actx->ts; in ComputeObjHessianWithSOA()
583 PetscCall(TSSetTimeStep(ts, actx->ftime / actx->nsteps)); in ComputeObjHessianWithSOA()
584 PetscCall(TSSetCostHessianProducts(actx->ts, 1, actx->Lambda2, actx->Mup2, Dir)); in ComputeObjHessianWithSOA()
587 PetscCall(VecGetArray(actx->U, &u)); in ComputeObjHessianWithSOA()
590 PetscCall(VecRestoreArray(actx->U, &u)); in ComputeObjHessianWithSOA()
597 PetscCall(MatZeroEntries(actx->Jacp)); in ComputeObjHessianWithSOA()
598 PetscCall(TSAdjointSetForward(ts, actx->Jacp)); in ComputeObjHessianWithSOA()
600 PetscCall(TSSolve(ts, actx->U)); in ComputeObjHessianWithSOA()
603 PetscCall(VecSet(actx->Lambda[0], 0.0)); in ComputeObjHessianWithSOA()
604 PetscCall(VecSet(actx->Mup[0], 0.0)); in ComputeObjHessianWithSOA()
605 PetscCall(VecSet(actx->Lambda2[0], 0.0)); in ComputeObjHessianWithSOA()
606 PetscCall(VecSet(actx->Mup2[0], 0.0)); in ComputeObjHessianWithSOA()
607 PetscCall(TSSetCostGradients(ts, 1, actx->Lambda, actx->Mup)); in ComputeObjHessianWithSOA()
615 PetscCall(VecGetArrayRead(actx->Mup2[0], &z_ptr)); in ComputeObjHessianWithSOA()
616 for (i = 0; i < 2 * actx->nsteps; i++) arr[i] = z_ptr[i]; in ComputeObjHessianWithSOA()
617 PetscCall(VecRestoreArrayRead(actx->Mup2[0], &z_ptr)); in ComputeObjHessianWithSOA()