Lines Matching refs:appctx
69 AppCtx appctx; /* user-defined application context */ in main() local
87 appctx.comm = PETSC_COMM_WORLD; in main()
88 appctx.m = 60; in main()
90 PetscCall(PetscOptionsGetInt(NULL, NULL, "-M", &appctx.m, NULL)); in main()
91 PetscCall(PetscOptionsHasName(NULL, NULL, "-debug", &appctx.debug)); in main()
94 appctx.h = 1.0 / (appctx.m - 1.0); in main()
105 PetscCall(DMDACreate1d(PETSC_COMM_WORLD, DM_BOUNDARY_NONE, appctx.m, 1, 1, NULL, &appctx.da)); in main()
106 PetscCall(DMSetFromOptions(appctx.da)); in main()
107 PetscCall(DMSetUp(appctx.da)); in main()
114 PetscCall(DMCreateGlobalVector(appctx.da, &u)); in main()
115 PetscCall(DMCreateLocalVector(appctx.da, &appctx.u_local)); in main()
121 PetscCall(VecDuplicate(appctx.u_local, &appctx.localwork)); in main()
122 PetscCall(VecDuplicate(u, &appctx.solution)); in main()
131 PetscCall(TSSetRHSFunction(ts, NULL, RHSFunction, &appctx)); in main()
137 if (mymonitor) PetscCall(TSMonitorSet(ts, Monitor, &appctx, NULL)); in main()
147 PetscCall(MatSetSizes(A, PETSC_DECIDE, PETSC_DECIDE, appctx.m, appctx.m)); in main()
150 PetscCall(TSSetRHSJacobian(ts, A, A, RHSJacobian, &appctx)); in main()
156 dt = appctx.h / 2.0; in main()
182 PetscCall(InitialConditions(u, &appctx)); in main()
197 PetscCall(DMDestroy(&appctx.da)); in main()
198 PetscCall(VecDestroy(&appctx.localwork)); in main()
199 PetscCall(VecDestroy(&appctx.solution)); in main()
200 PetscCall(VecDestroy(&appctx.u_local)); in main()
222 PetscErrorCode InitialConditions(Vec u, AppCtx *appctx) in InitialConditions() argument
224 PetscScalar *u_localptr, h = appctx->h, x; in InitialConditions()
263 if (appctx->debug) { in InitialConditions()
264 PetscCall(PetscPrintf(appctx->comm, "initial guess vector\n")); in InitialConditions()
281 PetscErrorCode ExactSolution(PetscReal t, Vec solution, AppCtx *appctx) in ExactSolution() argument
283 PetscScalar *s_localptr, h = appctx->h, x; in ExactSolution()
332 AppCtx *appctx = (AppCtx *)ctx; /* user-defined application context */ in Monitor() local
348 PetscCall(PetscViewerDrawGetDraw(PETSC_VIEWER_DRAW_(appctx->comm), 0, &draw)); in Monitor()
350 PetscCall(VecView(u, PETSC_VIEWER_DRAW_(appctx->comm))); in Monitor()
355 PetscCall(ExactSolution(time, appctx->solution, appctx)); in Monitor()
360 if (appctx->debug) { in Monitor()
361 PetscCall(PetscPrintf(appctx->comm, "Computed solution vector\n")); in Monitor()
363 PetscCall(PetscPrintf(appctx->comm, "Exact solution vector\n")); in Monitor()
364 PetscCall(VecView(appctx->solution, PETSC_VIEWER_STDOUT_WORLD)); in Monitor()
370 PetscCall(VecAXPY(appctx->solution, -1.0, u)); in Monitor()
371 PetscCall(VecNorm(appctx->solution, NORM_2, &en2)); in Monitor()
372 en2s = PetscSqrtReal(appctx->h) * en2; /* scale the 2-norm by the grid spacing */ in Monitor()
373 PetscCall(VecNorm(appctx->solution, NORM_MAX, &enmax)); in Monitor()
379 …PetscCall(PetscPrintf(appctx->comm, "Timestep %" PetscInt_FMT ": time = %g 2-norm error = %g max … in Monitor()
384 if (appctx->debug) { in Monitor()
385 PetscCall(PetscPrintf(appctx->comm, "Error vector\n")); in Monitor()
386 PetscCall(VecView(appctx->solution, PETSC_VIEWER_STDOUT_WORLD)); in Monitor()
409 AppCtx *appctx = (AppCtx *)ctx; /* user-defined application context */ in RHSFunction() local
410 DM da = appctx->da; /* distributed array */ in RHSFunction()
411 Vec local_in = appctx->u_local; /* local ghosted input vector */ in RHSFunction()
412 Vec localwork = appctx->localwork; /* local ghosted work vector */ in RHSFunction()
441 sc = 1.0 / (appctx->h * appctx->h * 2.0 * (1.0 + t) * (1.0 + t)); in RHSFunction()
461 PetscCallMPI(MPI_Comm_rank(appctx->comm, &rank)); in RHSFunction()
462 PetscCallMPI(MPI_Comm_size(appctx->comm, &size)); in RHSFunction()
486 if (appctx->debug) { in RHSFunction()
487 PetscCall(PetscPrintf(appctx->comm, "RHS function vector\n")); in RHSFunction()
522 AppCtx *appctx = (AppCtx *)ctx; /* user-defined application context */ in RHSJacobian() local
523 Vec local_in = appctx->u_local; /* local ghosted input vector */ in RHSJacobian()
524 DM da = appctx->da; /* distributed array */ in RHSJacobian()
574 if (mend == appctx->m) { in RHSJacobian()
584 sc = 1.0 / (appctx->h * appctx->h * 2.0 * (1.0 + t) * (1.0 + t)); in RHSJacobian()