Lines Matching refs:aircraft
230 struct _n_aircraft aircraft; in main() local
245 aircraft.ftime = 1.; /* time interval in hour */ in main()
246 aircraft.nsteps = 10; /* number of steps */ in main()
247 aircraft.lv = 2.0; /* leader speed in kmph */ in main()
248 aircraft.lw = PETSC_PI / 4.; /* leader heading angle */ in main()
250 PetscCall(PetscOptionsGetReal(NULL, NULL, "-ftime", &aircraft.ftime, NULL)); in main()
251 PetscCall(PetscOptionsGetInt(NULL, NULL, "-nsteps", &aircraft.nsteps, NULL)); in main()
252 PetscCall(PetscOptionsHasName(NULL, NULL, "-matrixfree", &aircraft.mf)); in main()
253 PetscCall(PetscOptionsHasName(NULL, NULL, "-exacthessian", &aircraft.eh)); in main()
260 PetscCall(MatCreate(PETSC_COMM_WORLD, &aircraft.A)); in main()
261 PetscCall(MatSetSizes(aircraft.A, PETSC_DECIDE, PETSC_DECIDE, 2, 2)); in main()
262 PetscCall(MatSetFromOptions(aircraft.A)); in main()
263 PetscCall(MatSetUp(aircraft.A)); in main()
265 PetscCall(MatAssemblyBegin(aircraft.A, MAT_FINAL_ASSEMBLY)); in main()
266 PetscCall(MatAssemblyEnd(aircraft.A, MAT_FINAL_ASSEMBLY)); in main()
267 PetscCall(MatShift(aircraft.A, 1)); in main()
268 PetscCall(MatShift(aircraft.A, -1)); in main()
270 PetscCall(MatCreate(PETSC_COMM_WORLD, &aircraft.Jacp)); in main()
271 PetscCall(MatSetSizes(aircraft.Jacp, PETSC_DECIDE, PETSC_DECIDE, 2, 2 * aircraft.nsteps)); in main()
272 PetscCall(MatSetFromOptions(aircraft.Jacp)); in main()
273 PetscCall(MatSetUp(aircraft.Jacp)); in main()
274 PetscCall(MatSetOption(aircraft.Jacp, MAT_NEW_NONZERO_ALLOCATION_ERR, PETSC_FALSE)); in main()
275 …ateDense(PETSC_COMM_WORLD, PETSC_DECIDE, PETSC_DECIDE, 2 * aircraft.nsteps, 1, NULL, &aircraft.DRD… in main()
276 PetscCall(MatSetUp(aircraft.DRDP)); in main()
277 …PetscCall(MatCreateDense(PETSC_COMM_WORLD, PETSC_DECIDE, PETSC_DECIDE, 2, 1, NULL, &aircraft.DRDU)… in main()
278 PetscCall(MatSetUp(aircraft.DRDU)); in main()
281 PetscCall(TSCreate(PETSC_COMM_WORLD, &aircraft.ts)); in main()
282 PetscCall(TSSetType(aircraft.ts, TSRK)); in main()
283 PetscCall(TSSetRHSFunction(aircraft.ts, NULL, RHSFunction, &aircraft)); in main()
284 …PetscCall(TSSetRHSJacobian(aircraft.ts, aircraft.A, aircraft.A, TSComputeRHSJacobianConstant, &air… in main()
285 PetscCall(TSSetRHSJacobianP(aircraft.ts, aircraft.Jacp, RHSJacobianP, &aircraft)); in main()
286 PetscCall(TSSetExactFinalTime(aircraft.ts, TS_EXACTFINALTIME_MATCHSTEP)); in main()
287 …PetscCall(TSSetEquationType(aircraft.ts, TS_EQ_ODE_EXPLICIT)); /* less Jacobian evaluations when a… in main()
290 PetscCall(MatCreateVecs(aircraft.A, &aircraft.U, NULL)); in main()
291 PetscCall(TSSetSolution(aircraft.ts, aircraft.U)); in main()
292 PetscCall(VecGetArray(aircraft.U, &u)); in main()
295 PetscCall(VecRestoreArray(aircraft.U, &u)); in main()
296 PetscCall(VecCreate(PETSC_COMM_WORLD, &aircraft.V)); in main()
297 PetscCall(VecSetSizes(aircraft.V, PETSC_DECIDE, aircraft.nsteps)); in main()
298 PetscCall(VecSetUp(aircraft.V)); in main()
299 PetscCall(VecDuplicate(aircraft.V, &aircraft.W)); in main()
300 PetscCall(VecSet(aircraft.V, 1.)); in main()
301 PetscCall(VecSet(aircraft.W, PETSC_PI / 4.)); in main()
304 PetscCall(TSSetSaveTrajectory(aircraft.ts)); in main()
307 PetscCall(TSCreateQuadratureTS(aircraft.ts, PETSC_FALSE, &aircraft.quadts)); in main()
308 PetscCall(TSSetRHSFunction(aircraft.quadts, NULL, (TSRHSFunctionFn *)CostIntegrand, &aircraft)); in main()
309 …PetscCall(TSSetRHSJacobian(aircraft.quadts, aircraft.DRDU, aircraft.DRDU, (TSRHSJacobian)DRDUJacob… in main()
310 …PetscCall(TSSetRHSJacobianP(aircraft.quadts, aircraft.DRDP, (TSRHSJacobianPFn *)DRDPJacobianTransp… in main()
311 PetscCall(MatCreateVecs(aircraft.A, &aircraft.Lambda[0], NULL)); in main()
312 PetscCall(MatCreateVecs(aircraft.Jacp, &aircraft.Mup[0], NULL)); in main()
313 if (aircraft.eh) { in main()
314 PetscCall(MatCreateVecs(aircraft.A, &aircraft.rhshp1[0], NULL)); in main()
315 PetscCall(MatCreateVecs(aircraft.A, &aircraft.rhshp2[0], NULL)); in main()
316 PetscCall(MatCreateVecs(aircraft.Jacp, &aircraft.rhshp3[0], NULL)); in main()
317 PetscCall(MatCreateVecs(aircraft.Jacp, &aircraft.rhshp4[0], NULL)); in main()
318 PetscCall(MatCreateVecs(aircraft.DRDU, &aircraft.inthp1[0], NULL)); in main()
319 PetscCall(MatCreateVecs(aircraft.DRDU, &aircraft.inthp2[0], NULL)); in main()
320 PetscCall(MatCreateVecs(aircraft.DRDP, &aircraft.inthp3[0], NULL)); in main()
321 PetscCall(MatCreateVecs(aircraft.DRDP, &aircraft.inthp4[0], NULL)); in main()
322 PetscCall(MatCreateVecs(aircraft.Jacp, &aircraft.Dir, NULL)); in main()
323 …aircraft.ts, aircraft.rhshp1, RHSHessianProductUU, aircraft.rhshp2, RHSHessianProductUP, aircraft.… in main()
324 …aircraft.quadts, aircraft.inthp1, IntegrandHessianProductUU, aircraft.inthp2, IntegrandHessianProd… in main()
325 PetscCall(MatCreateVecs(aircraft.A, &aircraft.Lambda2[0], NULL)); in main()
326 PetscCall(MatCreateVecs(aircraft.Jacp, &aircraft.Mup2[0], NULL)); in main()
328 PetscCall(TSSetFromOptions(aircraft.ts)); in main()
329 PetscCall(TSSetMaxTime(aircraft.ts, aircraft.ftime)); in main()
330 PetscCall(TSSetTimeStep(aircraft.ts, aircraft.ftime / aircraft.nsteps)); in main()
333 PetscCall(MatCreateVecs(aircraft.Jacp, &P, NULL)); in main()
335 for (i = 0; i < aircraft.nsteps; i++) { in main()
343 for (i = 0; i < aircraft.nsteps; i++) { in main()
349 for (i = 0; i < aircraft.nsteps; i++) { in main()
358 PetscCall(TaoSetObjectiveAndGradient(tao, NULL, FormObjFunctionGradient, (void *)&aircraft)); in main()
360 if (aircraft.eh) { in main()
361 if (aircraft.mf) { in main()
362 …OMM_WORLD, PETSC_DECIDE, PETSC_DECIDE, 2 * aircraft.nsteps, 2 * aircraft.nsteps, (void *)&aircraft… in main()
363 PetscCall(MatShellSetOperation(aircraft.H, MATOP_MULT, (PetscErrorCodeFn *)MyMatMult)); in main()
364 PetscCall(MatSetOption(aircraft.H, MAT_SYMMETRIC, PETSC_TRUE)); in main()
365 … PetscCall(TaoSetHessian(tao, aircraft.H, aircraft.H, MatrixFreeObjHessian, (void *)&aircraft)); in main()
367 …COMM_WORLD, PETSC_DETERMINE, PETSC_DETERMINE, 2 * aircraft.nsteps, 2 * aircraft.nsteps, NULL, &air… in main()
368 PetscCall(MatSetOption(aircraft.H, MAT_SYMMETRIC, PETSC_TRUE)); in main()
369 PetscCall(TaoSetHessian(tao, aircraft.H, aircraft.H, FormObjHessian, (void *)&aircraft)); in main()
391 PetscCall(TSDestroy(&aircraft.ts)); in main()
392 PetscCall(MatDestroy(&aircraft.A)); in main()
393 PetscCall(VecDestroy(&aircraft.U)); in main()
394 PetscCall(VecDestroy(&aircraft.V)); in main()
395 PetscCall(VecDestroy(&aircraft.W)); in main()
399 PetscCall(MatDestroy(&aircraft.Jacp)); in main()
400 PetscCall(MatDestroy(&aircraft.DRDU)); in main()
401 PetscCall(MatDestroy(&aircraft.DRDP)); in main()
402 PetscCall(VecDestroy(&aircraft.Lambda[0])); in main()
403 PetscCall(VecDestroy(&aircraft.Mup[0])); in main()
405 if (aircraft.eh) { in main()
406 PetscCall(VecDestroy(&aircraft.Lambda2[0])); in main()
407 PetscCall(VecDestroy(&aircraft.Mup2[0])); in main()
408 PetscCall(VecDestroy(&aircraft.Dir)); in main()
409 PetscCall(VecDestroy(&aircraft.rhshp1[0])); in main()
410 PetscCall(VecDestroy(&aircraft.rhshp2[0])); in main()
411 PetscCall(VecDestroy(&aircraft.rhshp3[0])); in main()
412 PetscCall(VecDestroy(&aircraft.rhshp4[0])); in main()
413 PetscCall(VecDestroy(&aircraft.inthp1[0])); in main()
414 PetscCall(VecDestroy(&aircraft.inthp2[0])); in main()
415 PetscCall(VecDestroy(&aircraft.inthp3[0])); in main()
416 PetscCall(VecDestroy(&aircraft.inthp4[0])); in main()
417 PetscCall(MatDestroy(&aircraft.H)); in main()