Lines Matching refs:appctx

84   AppCtx        appctx;               /* user-defined application context */  in main()  local
103 appctx.comm = PETSC_COMM_WORLD; in main()
107 PetscCall(PetscOptionsHasName(NULL, NULL, "-debug", &appctx.debug)); in main()
108 appctx.m = m; in main()
109 appctx.h = 1.0 / (m - 1.0); in main()
110 appctx.norm_2 = 0.0; in main()
111 appctx.norm_max = 0.0; in main()
125 PetscCall(DMDACreate1d(PETSC_COMM_WORLD, DM_BOUNDARY_NONE, m, 1, 1, NULL, &appctx.da)); in main()
126 PetscCall(DMSetFromOptions(appctx.da)); in main()
127 PetscCall(DMSetUp(appctx.da)); in main()
134 PetscCall(DMCreateGlobalVector(appctx.da, &u)); in main()
135 PetscCall(DMCreateLocalVector(appctx.da, &appctx.u_local)); in main()
141 PetscCall(VecDuplicate(appctx.u_local, &appctx.localwork)); in main()
142 PetscCall(VecDuplicate(u, &appctx.solution)); in main()
148 PetscCall(PetscViewerDrawOpen(PETSC_COMM_WORLD, 0, "", 80, 380, 400, 160, &appctx.viewer1)); in main()
149 PetscCall(PetscViewerDrawGetDraw(appctx.viewer1, 0, &draw)); in main()
151 PetscCall(PetscViewerDrawOpen(PETSC_COMM_WORLD, 0, "", 80, 0, 400, 160, &appctx.viewer2)); in main()
152 PetscCall(PetscViewerDrawGetDraw(appctx.viewer2, 0, &draw)); in main()
168 PetscCall(TSMonitorSet(ts, Monitor, &appctx, NULL)); in main()
188 PetscCall(TSSetRHSFunction(ts, NULL, TSComputeRHSFunctionLinear, &appctx)); in main()
189 PetscCall(TSSetRHSJacobian(ts, A, A, RHSMatrixHeat, &appctx)); in main()
197 PetscCall(RHSMatrixHeat(ts, 0.0, u, A, A, &appctx)); in main()
198 PetscCall(TSSetRHSFunction(ts, NULL, TSComputeRHSFunctionLinear, &appctx)); in main()
199 PetscCall(TSSetRHSJacobian(ts, A, A, TSComputeRHSJacobianConstant, &appctx)); in main()
204 PetscCall(TSSetRHSFunction(ts, NULL, RHSFunctionHeat, &appctx)); in main()
213 dt = appctx.h * appctx.h / 2.0; in main()
239 PetscCall(InitialConditions(u, &appctx)); in main()
252 …or (2 norm) = %g Avg. error (max norm) = %g\n", (double)(appctx.norm_2 / steps), (double)(appctx.n… in main()
262 PetscCall(PetscViewerDestroy(&appctx.viewer1)); in main()
263 PetscCall(PetscViewerDestroy(&appctx.viewer2)); in main()
264 PetscCall(VecDestroy(&appctx.localwork)); in main()
265 PetscCall(VecDestroy(&appctx.solution)); in main()
266 PetscCall(VecDestroy(&appctx.u_local)); in main()
267 PetscCall(DMDestroy(&appctx.da)); in main()
289 PetscErrorCode InitialConditions(Vec u, AppCtx *appctx) in InitialConditions() argument
291 PetscScalar *u_localptr, h = appctx->h; in InitialConditions()
327 if (appctx->debug) { in InitialConditions()
328 PetscCall(PetscPrintf(appctx->comm, "initial guess vector\n")); in InitialConditions()
345 PetscErrorCode ExactSolution(PetscReal t, Vec solution, AppCtx *appctx) in ExactSolution() argument
347 PetscScalar *s_localptr, h = appctx->h, ex1, ex2, sc1, sc2; in ExactSolution()
397 AppCtx *appctx = (AppCtx *)ctx; /* user-defined application context */ in Monitor() local
404 PetscCall(VecView(u, appctx->viewer2)); in Monitor()
409 PetscCall(ExactSolution(time, appctx->solution, appctx)); in Monitor()
414 if (appctx->debug) { in Monitor()
415 PetscCall(PetscPrintf(appctx->comm, "Computed solution vector\n")); in Monitor()
417 PetscCall(PetscPrintf(appctx->comm, "Exact solution vector\n")); in Monitor()
418 PetscCall(VecView(appctx->solution, PETSC_VIEWER_STDOUT_WORLD)); in Monitor()
424 PetscCall(VecAXPY(appctx->solution, -1.0, u)); in Monitor()
425 PetscCall(VecNorm(appctx->solution, NORM_2, &norm_2)); in Monitor()
426 norm_2 = PetscSqrtReal(appctx->h) * norm_2; in Monitor()
427 PetscCall(VecNorm(appctx->solution, NORM_MAX, &norm_max)); in Monitor()
435 …PetscCall(PetscPrintf(appctx->comm, "Timestep %" PetscInt_FMT ": time = %g 2-norm error = %g max n… in Monitor()
436 appctx->norm_2 += norm_2; in Monitor()
437 appctx->norm_max += norm_max; in Monitor()
442 PetscCall(VecView(appctx->solution, appctx->viewer1)); in Monitor()
447 if (appctx->debug) { in Monitor()
448 PetscCall(PetscPrintf(appctx->comm, "Error vector\n")); in Monitor()
449 PetscCall(VecView(appctx->solution, PETSC_VIEWER_STDOUT_WORLD)); in Monitor()
485 AppCtx *appctx = (AppCtx *)ctx; /* user-defined application context */ in RHSMatrixHeat() local
487 PetscScalar v[3], stwo = -2. / (appctx->h * appctx->h), sone = -.5 * stwo; in RHSMatrixHeat()
506 if (mend == appctx->m) { /* last processor only */ in RHSMatrixHeat()