Lines Matching refs:appctx
71 AppCtx appctx; /* user-defined application context */ in main() local
92 appctx.comm = PETSC_COMM_WORLD; in main()
93 appctx.m = 60; in main()
94 PetscCall(PetscOptionsGetInt(NULL, NULL, "-M", &appctx.m, NULL)); in main()
97 PetscCall(PetscOptionsHasName(NULL, NULL, "-debug", &appctx.debug)); in main()
99 appctx.h = 1.0 / (appctx.m - 1.0); in main()
110 PetscCall(DMDACreate1d(PETSC_COMM_WORLD, DM_BOUNDARY_NONE, appctx.m, 1, 1, NULL, &appctx.da)); in main()
111 PetscCall(DMSetFromOptions(appctx.da)); in main()
112 PetscCall(DMSetUp(appctx.da)); in main()
119 PetscCall(DMCreateGlobalVector(appctx.da, &u)); in main()
120 PetscCall(DMCreateLocalVector(appctx.da, &appctx.u_local)); in main()
126 PetscCall(VecDuplicate(appctx.u_local, &appctx.localwork)); in main()
127 PetscCall(VecDuplicate(u, &appctx.solution)); in main()
134 PetscCall(SetBounds(xl, xu, ul, uh, &appctx)); in main()
143 PetscCall(TSSetRHSFunction(ts, r, RHSFunction, &appctx)); in main()
149 if (mymonitor) PetscCall(TSMonitorSet(ts, Monitor, &appctx, NULL)); in main()
159 PetscCall(MatSetSizes(A, PETSC_DECIDE, PETSC_DECIDE, appctx.m, appctx.m)); in main()
162 PetscCall(TSSetRHSJacobian(ts, A, A, RHSJacobian, &appctx)); in main()
168 dt = appctx.h / 2.0; in main()
196 PetscCall(InitialConditions(u, &appctx)); in main()
214 PetscCall(DMDestroy(&appctx.da)); in main()
215 PetscCall(VecDestroy(&appctx.localwork)); in main()
216 PetscCall(VecDestroy(&appctx.solution)); in main()
217 PetscCall(VecDestroy(&appctx.u_local)); in main()
239 PetscErrorCode InitialConditions(Vec u, AppCtx *appctx) in InitialConditions() argument
241 PetscScalar *u_localptr, h = appctx->h, x; in InitialConditions()
280 if (appctx->debug) { in InitialConditions()
281 PetscCall(PetscPrintf(appctx->comm, "initial guess vector\n")); in InitialConditions()
298 PetscErrorCode SetBounds(Vec xl, Vec xu, PetscScalar ul, PetscScalar uh, AppCtx *appctx) in SetBounds() argument
311 PetscCallMPI(MPI_Comm_rank(appctx->comm, &rank)); in SetBounds()
312 PetscCallMPI(MPI_Comm_size(appctx->comm, &size)); in SetBounds()
338 PetscErrorCode ExactSolution(PetscReal t, Vec solution, AppCtx *appctx) in ExactSolution() argument
340 PetscScalar *s_localptr, h = appctx->h, x; in ExactSolution()
389 AppCtx *appctx = (AppCtx *)ctx; /* user-defined application context */ in Monitor() local
405 PetscCall(PetscViewerDrawGetDraw(PETSC_VIEWER_DRAW_(appctx->comm), 0, &draw)); in Monitor()
407 PetscCall(VecView(u, PETSC_VIEWER_DRAW_(appctx->comm))); in Monitor()
412 PetscCall(ExactSolution(time, appctx->solution, appctx)); in Monitor()
417 if (appctx->debug) { in Monitor()
418 PetscCall(PetscPrintf(appctx->comm, "Computed solution vector\n")); in Monitor()
420 PetscCall(PetscPrintf(appctx->comm, "Exact solution vector\n")); in Monitor()
421 PetscCall(VecView(appctx->solution, PETSC_VIEWER_STDOUT_WORLD)); in Monitor()
427 PetscCall(VecAXPY(appctx->solution, -1.0, u)); in Monitor()
428 PetscCall(VecNorm(appctx->solution, NORM_2, &en2)); in Monitor()
429 en2s = PetscSqrtReal(appctx->h) * en2; /* scale the 2-norm by the grid spacing */ in Monitor()
430 PetscCall(VecNorm(appctx->solution, NORM_MAX, &enmax)); in Monitor()
436 …PetscCall(PetscPrintf(appctx->comm, "Timestep %" PetscInt_FMT ": time = %g,2-norm error = %g, max … in Monitor()
466 AppCtx *appctx = (AppCtx *)ctx; /* user-defined application context */ in RHSFunction() local
467 DM da = appctx->da; /* distributed array */ in RHSFunction()
468 Vec local_in = appctx->u_local; /* local ghosted input vector */ in RHSFunction()
469 Vec localwork = appctx->localwork; /* local ghosted work vector */ in RHSFunction()
498 sc = 1.0 / (appctx->h * appctx->h * 2.0 * (1.0 + t) * (1.0 + t)); in RHSFunction()
518 PetscCallMPI(MPI_Comm_rank(appctx->comm, &rank)); in RHSFunction()
519 PetscCallMPI(MPI_Comm_size(appctx->comm, &size)); in RHSFunction()
579 AppCtx *appctx = (AppCtx *)ctx; /* user-defined application context */ in RHSJacobian() local
580 Vec local_in = appctx->u_local; /* local ghosted input vector */ in RHSJacobian()
581 DM da = appctx->da; /* distributed array */ in RHSJacobian()
631 if (mend == appctx->m) { in RHSJacobian()
641 sc = 1.0 / (appctx->h * appctx->h * 2.0 * (1.0 + t) * (1.0 + t)); in RHSJacobian()