Lines Matching refs:appctx
51 AppCtx appctx; /* user-defined application context */ in main() local
65 appctx.nz = nz; in main()
68 appctx.m = m; in main()
69 appctx.max_probsz = nz; in main()
70 appctx.debug = PETSC_FALSE; in main()
71 appctx.useAlhs = PETSC_FALSE; in main()
74 PetscCall(PetscOptionsName("-debug", NULL, NULL, &appctx.debug)); in main()
75 PetscCall(PetscOptionsName("-useAlhs", NULL, NULL, &appctx.useAlhs)); in main()
87 PetscCall(VecDuplicate(init_sol, &appctx.solution)); in main()
91 PetscCall(MatCreateSeqAIJ(PETSC_COMM_WORLD, m, m, 3, NULL, &appctx.Amat)); in main()
92 PetscCall(MatSetFromOptions(appctx.Amat)); in main()
93 PetscCall(MatSetUp(appctx.Amat)); in main()
97 appctx.z = z; in main()
98 PetscCall(femA(&appctx, nz, z)); in main()
108 PetscCall(VecDuplicate(init_sol, &appctx.ksp_rhs)); in main()
109 PetscCall(VecDuplicate(init_sol, &appctx.ksp_sol)); in main()
129 PetscCall(TSMonitorSet(ts, Monitor, &appctx, NULL)); in main()
131 …HSFunction(ts, NULL, (PetscErrorCode (*)(TS, PetscScalar, Vec, Vec, void *))RHSfunction, &appctx)); in main()
133 if (appctx.useAlhs) { in main()
140 PetscCall(TSSetIFunction(ts, NULL, TSComputeIFunctionLinear, &appctx)); in main()
141 PetscCall(TSSetIJacobian(ts, appctx.Amat, appctx.Amat, TSComputeIJacobianConstant, &appctx)); in main()
157 …PetscCheck(!sundialstype || !appctx.useAlhs, PETSC_COMM_SELF, PETSC_ERR_SUP, "Cannot use Alhs form… in main()
183 PetscCall(MatDestroy(&appctx.Amat)); in main()
185 PetscCall(VecDestroy(&appctx.ksp_rhs)); in main()
186 PetscCall(VecDestroy(&appctx.ksp_sol)); in main()
188 PetscCall(VecDestroy(&appctx.solution)); in main()
227 AppCtx *appctx = (AppCtx *)ctx; in Monitor() local
228 PetscInt i, m = appctx->m; in Monitor()
234 PetscCall(VecGetArrayWrite(appctx->solution, &u_exact)); in Monitor()
235 for (i = 0; i < m; i++) u_exact[i] = exact(appctx->z[i + 1], time); in Monitor()
236 PetscCall(VecRestoreArrayWrite(appctx->solution, &u_exact)); in Monitor()
239 if (appctx->debug) { in Monitor()
243 PetscCall(VecView(appctx->solution, PETSC_VIEWER_STDOUT_SELF)); in Monitor()
247 PetscCall(VecAXPY(appctx->solution, -1.0, u)); in Monitor()
248 PetscCall(VecNorm(appctx->solution, NORM_2, &norm_2)); in Monitor()
251 PetscCall(VecNorm(appctx->solution, NORM_MAX, &norm_max)); in Monitor()
257 if (appctx->debug) { in Monitor()
259 PetscCall(VecView(appctx->solution, PETSC_VIEWER_STDOUT_SELF)); in Monitor()