Lines Matching refs:jac
17 PC_Galerkin *jac = (PC_Galerkin *)pc->data; in PCApply_Galerkin() local
20 if (jac->R) { in PCApply_Galerkin()
21 PetscCall(MatRestrict(jac->R, x, jac->b)); in PCApply_Galerkin()
23 PetscCall(MatRestrict(jac->P, x, jac->b)); in PCApply_Galerkin()
25 PetscCall(KSPSolve(jac->ksp, jac->b, jac->x)); in PCApply_Galerkin()
26 PetscCall(KSPCheckSolve(jac->ksp, pc, jac->x)); in PCApply_Galerkin()
27 if (jac->P) { in PCApply_Galerkin()
28 PetscCall(MatInterpolate(jac->P, jac->x, y)); in PCApply_Galerkin()
30 PetscCall(MatInterpolate(jac->R, jac->x, y)); in PCApply_Galerkin()
37 PC_Galerkin *jac = (PC_Galerkin *)pc->data; in PCSetUp_Galerkin() local
42 if (jac->computeasub) { in PCSetUp_Galerkin()
45 PetscCall((*jac->computeasub)(pc, pc->pmat, NULL, &Ap, jac->computeasub_ctx)); in PCSetUp_Galerkin()
46 PetscCall(KSPSetOperators(jac->ksp, Ap, Ap)); in PCSetUp_Galerkin()
49 PetscCall(KSPGetOperators(jac->ksp, NULL, &Ap)); in PCSetUp_Galerkin()
50 PetscCall((*jac->computeasub)(pc, pc->pmat, Ap, NULL, jac->computeasub_ctx)); in PCSetUp_Galerkin()
54 if (!jac->x) { in PCSetUp_Galerkin()
55 PetscCall(KSPGetOperatorsSet(jac->ksp, &a, NULL)); in PCSetUp_Galerkin()
57 PetscCall(KSPCreateVecs(jac->ksp, 1, &xx, 1, &yy)); in PCSetUp_Galerkin()
58 jac->x = *xx; in PCSetUp_Galerkin()
59 jac->b = *yy; in PCSetUp_Galerkin()
63 …PetscCheck(jac->R || jac->P, PetscObjectComm((PetscObject)pc), PETSC_ERR_ARG_WRONGSTATE, "Must set… in PCSetUp_Galerkin()
70 PC_Galerkin *jac = (PC_Galerkin *)pc->data; in PCReset_Galerkin() local
73 PetscCall(MatDestroy(&jac->R)); in PCReset_Galerkin()
74 PetscCall(MatDestroy(&jac->P)); in PCReset_Galerkin()
75 PetscCall(VecDestroy(&jac->x)); in PCReset_Galerkin()
76 PetscCall(VecDestroy(&jac->b)); in PCReset_Galerkin()
77 PetscCall(KSPReset(jac->ksp)); in PCReset_Galerkin()
83 PC_Galerkin *jac = (PC_Galerkin *)pc->data; in PCDestroy_Galerkin() local
87 PetscCall(KSPDestroy(&jac->ksp)); in PCDestroy_Galerkin()
94 PC_Galerkin *jac = (PC_Galerkin *)pc->data; in PCView_Galerkin() local
103 PetscCall(KSPView(jac->ksp, viewer)); in PCView_Galerkin()
109 PC_Galerkin *jac = (PC_Galerkin *)pc->data; in PCGalerkinGetKSP_Galerkin() local
112 *ksp = jac->ksp; in PCGalerkinGetKSP_Galerkin()
118 PC_Galerkin *jac = (PC_Galerkin *)pc->data; in PCGalerkinSetRestriction_Galerkin() local
122 PetscCall(MatDestroy(&jac->R)); in PCGalerkinSetRestriction_Galerkin()
123 jac->R = R; in PCGalerkinSetRestriction_Galerkin()
129 PC_Galerkin *jac = (PC_Galerkin *)pc->data; in PCGalerkinSetInterpolation_Galerkin() local
133 PetscCall(MatDestroy(&jac->P)); in PCGalerkinSetInterpolation_Galerkin()
134 jac->P = P; in PCGalerkinSetInterpolation_Galerkin()
140 PC_Galerkin *jac = (PC_Galerkin *)pc->data; in PCGalerkinSetComputeSubmatrix_Galerkin() local
143 jac->computeasub = computeAsub; in PCGalerkinSetComputeSubmatrix_Galerkin()
144 jac->computeasub_ctx = ctx; in PCGalerkinSetComputeSubmatrix_Galerkin()
270 PC_Galerkin *jac = (PC_Galerkin *)pc->data; in PCSetFromOptions_Galerkin() local
275 PetscCall(KSPGetOptionsPrefix(jac->ksp, &prefix)); in PCSetFromOptions_Galerkin()
279 PetscCall(KSPSetOptionsPrefix(jac->ksp, prefix)); in PCSetFromOptions_Galerkin()
280 PetscCall(KSPAppendOptionsPrefix(jac->ksp, "galerkin_")); in PCSetFromOptions_Galerkin()
284 if (jac->ksp) PetscCall(KSPSetFromOptions(jac->ksp)); in PCSetFromOptions_Galerkin()
317 PC_Galerkin *jac; in PCCreate_Galerkin() local
320 PetscCall(PetscNew(&jac)); in PCCreate_Galerkin()
330 PetscCall(KSPCreate(PetscObjectComm((PetscObject)pc), &jac->ksp)); in PCCreate_Galerkin()
331 PetscCall(KSPSetNestLevel(jac->ksp, pc->kspnestlevel)); in PCCreate_Galerkin()
332 PetscCall(KSPSetErrorIfNotConverged(jac->ksp, pc->erroriffailure)); in PCCreate_Galerkin()
333 PetscCall(PetscObjectIncrementTabLevel((PetscObject)jac->ksp, (PetscObject)pc, 1)); in PCCreate_Galerkin()
335 pc->data = (void *)jac; in PCCreate_Galerkin()