Lines Matching refs:pc

5 static PetscErrorCode PCDeflationSetInitOnly_Deflation(PC pc, PetscBool flg)  in PCDeflationSetInitOnly_Deflation()  argument
7 PC_Deflation *def = (PC_Deflation *)pc->data; in PCDeflationSetInitOnly_Deflation()
32 PetscErrorCode PCDeflationSetInitOnly(PC pc, PetscBool flg) in PCDeflationSetInitOnly() argument
35 PetscValidHeaderSpecific(pc, PC_CLASSID, 1); in PCDeflationSetInitOnly()
36 PetscValidLogicalCollectiveBool(pc, flg, 2); in PCDeflationSetInitOnly()
37 PetscTryMethod(pc, "PCDeflationSetInitOnly_C", (PC, PetscBool), (pc, flg)); in PCDeflationSetInitOnly()
41 static PetscErrorCode PCDeflationSetLevels_Deflation(PC pc, PetscInt current, PetscInt max) in PCDeflationSetLevels_Deflation() argument
43 PC_Deflation *def = (PC_Deflation *)pc->data; in PCDeflationSetLevels_Deflation()
67 PetscErrorCode PCDeflationSetLevels(PC pc, PetscInt max) in PCDeflationSetLevels() argument
70 PetscValidHeaderSpecific(pc, PC_CLASSID, 1); in PCDeflationSetLevels()
71 PetscValidLogicalCollectiveInt(pc, max, 2); in PCDeflationSetLevels()
72 PetscTryMethod(pc, "PCDeflationSetLevels_C", (PC, PetscInt, PetscInt), (pc, 0, max)); in PCDeflationSetLevels()
76 static PetscErrorCode PCDeflationSetReductionFactor_Deflation(PC pc, PetscInt red) in PCDeflationSetReductionFactor_Deflation() argument
78 PC_Deflation *def = (PC_Deflation *)pc->data; in PCDeflationSetReductionFactor_Deflation()
104 PetscErrorCode PCDeflationSetReductionFactor(PC pc, PetscInt red) in PCDeflationSetReductionFactor() argument
107 PetscValidHeaderSpecific(pc, PC_CLASSID, 1); in PCDeflationSetReductionFactor()
108 PetscValidLogicalCollectiveInt(pc, red, 2); in PCDeflationSetReductionFactor()
109 PetscTryMethod(pc, "PCDeflationSetReductionFactor_C", (PC, PetscInt), (pc, red)); in PCDeflationSetReductionFactor()
113 static PetscErrorCode PCDeflationSetCorrectionFactor_Deflation(PC pc, PetscScalar fact) in PCDeflationSetCorrectionFactor_Deflation() argument
115 PC_Deflation *def = (PC_Deflation *)pc->data; in PCDeflationSetCorrectionFactor_Deflation()
146 PetscErrorCode PCDeflationSetCorrectionFactor(PC pc, PetscScalar fact) in PCDeflationSetCorrectionFactor() argument
149 PetscValidHeaderSpecific(pc, PC_CLASSID, 1); in PCDeflationSetCorrectionFactor()
150 PetscValidLogicalCollectiveScalar(pc, fact, 2); in PCDeflationSetCorrectionFactor()
151 PetscTryMethod(pc, "PCDeflationSetCorrectionFactor_C", (PC, PetscScalar), (pc, fact)); in PCDeflationSetCorrectionFactor()
155 static PetscErrorCode PCDeflationSetSpaceToCompute_Deflation(PC pc, PCDeflationSpaceType type, Pets… in PCDeflationSetSpaceToCompute_Deflation() argument
157 PC_Deflation *def = (PC_Deflation *)pc->data; in PCDeflationSetSpaceToCompute_Deflation()
188 PetscErrorCode PCDeflationSetSpaceToCompute(PC pc, PCDeflationSpaceType type, PetscInt size) in PCDeflationSetSpaceToCompute() argument
191 PetscValidHeaderSpecific(pc, PC_CLASSID, 1); in PCDeflationSetSpaceToCompute()
192 if (type) PetscValidLogicalCollectiveEnum(pc, type, 2); in PCDeflationSetSpaceToCompute()
193 if (size > 0) PetscValidLogicalCollectiveInt(pc, size, 3); in PCDeflationSetSpaceToCompute()
194 …PetscTryMethod(pc, "PCDeflationSetSpaceToCompute_C", (PC, PCDeflationSpaceType, PetscInt), (pc, ty… in PCDeflationSetSpaceToCompute()
198 static PetscErrorCode PCDeflationSetSpace_Deflation(PC pc, Mat W, PetscBool transpose) in PCDeflationSetSpace_Deflation() argument
200 PC_Deflation *def = (PC_Deflation *)pc->data; in PCDeflationSetSpace_Deflation()
238 PetscErrorCode PCDeflationSetSpace(PC pc, Mat W, PetscBool transpose) in PCDeflationSetSpace() argument
241 PetscValidHeaderSpecific(pc, PC_CLASSID, 1); in PCDeflationSetSpace()
243 PetscValidLogicalCollectiveBool(pc, transpose, 3); in PCDeflationSetSpace()
244 PetscTryMethod(pc, "PCDeflationSetSpace_C", (PC, Mat, PetscBool), (pc, W, transpose)); in PCDeflationSetSpace()
248 static PetscErrorCode PCDeflationSetProjectionNullSpaceMat_Deflation(PC pc, Mat mat) in PCDeflationSetProjectionNullSpaceMat_Deflation() argument
250 PC_Deflation *def = (PC_Deflation *)pc->data; in PCDeflationSetProjectionNullSpaceMat_Deflation()
272 PetscErrorCode PCDeflationSetProjectionNullSpaceMat(PC pc, Mat mat) in PCDeflationSetProjectionNullSpaceMat() argument
275 PetscValidHeaderSpecific(pc, PC_CLASSID, 1); in PCDeflationSetProjectionNullSpaceMat()
277 PetscTryMethod(pc, "PCDeflationSetProjectionNullSpaceMat_C", (PC, Mat), (pc, mat)); in PCDeflationSetProjectionNullSpaceMat()
281 static PetscErrorCode PCDeflationSetCoarseMat_Deflation(PC pc, Mat mat) in PCDeflationSetCoarseMat_Deflation() argument
283 PC_Deflation *def = (PC_Deflation *)pc->data; in PCDeflationSetCoarseMat_Deflation()
305 PetscErrorCode PCDeflationSetCoarseMat(PC pc, Mat mat) in PCDeflationSetCoarseMat() argument
308 PetscValidHeaderSpecific(pc, PC_CLASSID, 1); in PCDeflationSetCoarseMat()
310 PetscTryMethod(pc, "PCDeflationSetCoarseMat_C", (PC, Mat), (pc, mat)); in PCDeflationSetCoarseMat()
314 static PetscErrorCode PCDeflationGetCoarseKSP_Deflation(PC pc, KSP *ksp) in PCDeflationGetCoarseKSP_Deflation() argument
316 PC_Deflation *def = (PC_Deflation *)pc->data; in PCDeflationGetCoarseKSP_Deflation()
338 PetscErrorCode PCDeflationGetCoarseKSP(PC pc, KSP *ksp) in PCDeflationGetCoarseKSP() argument
341 PetscValidHeaderSpecific(pc, PC_CLASSID, 1); in PCDeflationGetCoarseKSP()
343 PetscTryMethod(pc, "PCDeflationGetCoarseKSP_C", (PC, KSP *), (pc, ksp)); in PCDeflationGetCoarseKSP()
347 static PetscErrorCode PCDeflationGetPC_Deflation(PC pc, PC *apc) in PCDeflationGetPC_Deflation() argument
349 PC_Deflation *def = (PC_Deflation *)pc->data; in PCDeflationGetPC_Deflation()
352 *apc = def->pc; in PCDeflationGetPC_Deflation()
371 PetscErrorCode PCDeflationGetPC(PC pc, PC *apc) in PCDeflationGetPC() argument
374 PetscValidHeaderSpecific(pc, PC_CLASSID, 1); in PCDeflationGetPC()
375 PetscAssertPointer(pc, 1); in PCDeflationGetPC()
376 PetscTryMethod(pc, "PCDeflationGetPC_C", (PC, PC *), (pc, apc)); in PCDeflationGetPC()
383 static PetscErrorCode PCPreSolve_Deflation(PC pc, KSP ksp, Vec b, Vec x) in PCPreSolve_Deflation() argument
385 PC_Deflation *def = (PC_Deflation *)pc->data; in PCPreSolve_Deflation()
394 PetscCall(PCGetOperators(pc, NULL, &A)); in PCPreSolve_Deflation()
423 static PetscErrorCode PCApply_Deflation(PC pc, Vec r, Vec z) in PCApply_Deflation() argument
425 PC_Deflation *def = (PC_Deflation *)pc->data; in PCApply_Deflation()
433 PetscCall(PCGetOperators(pc, NULL, &A)); in PCApply_Deflation()
435 PetscCall(PCApply(def->pc, r, z)); /* z <- M^{-1}*r */ in PCApply_Deflation()
453 static PetscErrorCode PCSetUp_Deflation(PC pc) in PCSetUp_Deflation() argument
455 PC_Deflation *def = (PC_Deflation *)pc->data; in PCSetUp_Deflation()
468 if (pc->setupcalled) PetscFunctionReturn(PETSC_SUCCESS); in PCSetUp_Deflation()
469 PetscCall(PetscObjectGetComm((PetscObject)pc, &comm)); in PCSetUp_Deflation()
470 PetscCall(PCGetOperators(pc, NULL, &Amat)); in PCSetUp_Deflation()
471 if (!def->lvl && !def->prefix) PetscCall(PCGetOptionsPrefix(pc, &def->prefix)); in PCSetUp_Deflation()
478 PetscCall(PCDeflationComputeSpace(pc)); in PCSetUp_Deflation()
581 PetscCall(KSPSetNestLevel(def->WtAWinv, pc->kspnestlevel)); in PCSetUp_Deflation()
622 PetscCall(PetscInfo(pc, "Auto choosing reduction factor %" PetscInt_FMT "\n", red)); in PCSetUp_Deflation()
657 if (!def->pc) { in PCSetUp_Deflation()
658 PetscCall(PCCreate(comm, &def->pc)); in PCSetUp_Deflation()
659 PetscCall(PCSetOperators(def->pc, Amat, Amat)); in PCSetUp_Deflation()
660 PetscCall(PCSetType(def->pc, PCNONE)); in PCSetUp_Deflation()
661 if (def->prefix) PetscCall(PCSetOptionsPrefix(def->pc, def->prefix)); in PCSetUp_Deflation()
662 PetscCall(PCAppendOptionsPrefix(def->pc, "deflation_")); in PCSetUp_Deflation()
663 PetscCall(PCAppendOptionsPrefix(def->pc, prefix)); in PCSetUp_Deflation()
664 PetscCall(PCAppendOptionsPrefix(def->pc, "pc_")); in PCSetUp_Deflation()
665 PetscCall(PCGetDM(pc, &dm)); in PCSetUp_Deflation()
666 PetscCall(PCSetDM(def->pc, dm)); in PCSetUp_Deflation()
667 PetscCall(PCSetFromOptions(def->pc)); in PCSetUp_Deflation()
668 PetscCall(PCSetUp(def->pc)); in PCSetUp_Deflation()
677 static PetscErrorCode PCReset_Deflation(PC pc) in PCReset_Deflation() argument
679 PC_Deflation *def = (PC_Deflation *)pc->data; in PCReset_Deflation()
689 PetscCall(PCDestroy(&def->pc)); in PCReset_Deflation()
693 static PetscErrorCode PCDestroy_Deflation(PC pc) in PCDestroy_Deflation() argument
696 PetscCall(PCReset_Deflation(pc)); in PCDestroy_Deflation()
697 PetscCall(PetscObjectComposeFunction((PetscObject)pc, "PCDeflationSetInitOnly_C", NULL)); in PCDestroy_Deflation()
698 PetscCall(PetscObjectComposeFunction((PetscObject)pc, "PCDeflationSetLevels_C", NULL)); in PCDestroy_Deflation()
699 PetscCall(PetscObjectComposeFunction((PetscObject)pc, "PCDeflationSetReductionFactor_C", NULL)); in PCDestroy_Deflation()
700 PetscCall(PetscObjectComposeFunction((PetscObject)pc, "PCDeflationSetCorrectionFactor_C", NULL)); in PCDestroy_Deflation()
701 PetscCall(PetscObjectComposeFunction((PetscObject)pc, "PCDeflationSetSpaceToCompute_C", NULL)); in PCDestroy_Deflation()
702 PetscCall(PetscObjectComposeFunction((PetscObject)pc, "PCDeflationSetSpace_C", NULL)); in PCDestroy_Deflation()
703 …PetscCall(PetscObjectComposeFunction((PetscObject)pc, "PCDeflationSetProjectionNullSpaceMat_C", NU… in PCDestroy_Deflation()
704 PetscCall(PetscObjectComposeFunction((PetscObject)pc, "PCDeflationSetCoarseMat_C", NULL)); in PCDestroy_Deflation()
705 PetscCall(PetscObjectComposeFunction((PetscObject)pc, "PCDeflationGetCoarseKSP_C", NULL)); in PCDestroy_Deflation()
706 PetscCall(PetscObjectComposeFunction((PetscObject)pc, "PCDeflationGetPC_C", NULL)); in PCDestroy_Deflation()
707 PetscCall(PetscFree(pc->data)); in PCDestroy_Deflation()
711 static PetscErrorCode PCView_Deflation(PC pc, PetscViewer viewer) in PCView_Deflation() argument
713 PC_Deflation *def = (PC_Deflation *)pc->data; in PCView_Deflation()
718 if (!pc->setupcalled) PetscFunctionReturn(PETSC_SUCCESS); in PCView_Deflation()
726 PetscCall(PCView(def->pc, viewer)); in PCView_Deflation()
739 static PetscErrorCode PCSetFromOptions_Deflation(PC pc, PetscOptionItems PetscOptionsObject) in PCSetFromOptions_Deflation() argument
741 PC_Deflation *def = (PC_Deflation *)pc->data; in PCSetFromOptions_Deflation()
837 PETSC_EXTERN PetscErrorCode PCCreate_Deflation(PC pc) in PCCreate_Deflation() argument
843 pc->data = (void *)def; in PCCreate_Deflation()
857 pc->ops->apply = PCApply_Deflation; in PCCreate_Deflation()
858 pc->ops->presolve = PCPreSolve_Deflation; in PCCreate_Deflation()
859 pc->ops->setup = PCSetUp_Deflation; in PCCreate_Deflation()
860 pc->ops->reset = PCReset_Deflation; in PCCreate_Deflation()
861 pc->ops->destroy = PCDestroy_Deflation; in PCCreate_Deflation()
862 pc->ops->setfromoptions = PCSetFromOptions_Deflation; in PCCreate_Deflation()
863 pc->ops->view = PCView_Deflation; in PCCreate_Deflation()
865 …PetscCall(PetscObjectComposeFunction((PetscObject)pc, "PCDeflationSetInitOnly_C", PCDeflationSetIn… in PCCreate_Deflation()
866 …PetscCall(PetscObjectComposeFunction((PetscObject)pc, "PCDeflationSetLevels_C", PCDeflationSetLeve… in PCCreate_Deflation()
867 …PetscCall(PetscObjectComposeFunction((PetscObject)pc, "PCDeflationSetReductionFactor_C", PCDeflati… in PCCreate_Deflation()
868 …PetscCall(PetscObjectComposeFunction((PetscObject)pc, "PCDeflationSetCorrectionFactor_C", PCDeflat… in PCCreate_Deflation()
869 …PetscCall(PetscObjectComposeFunction((PetscObject)pc, "PCDeflationSetSpaceToCompute_C", PCDeflatio… in PCCreate_Deflation()
870 …PetscCall(PetscObjectComposeFunction((PetscObject)pc, "PCDeflationSetSpace_C", PCDeflationSetSpace… in PCCreate_Deflation()
871 …PetscCall(PetscObjectComposeFunction((PetscObject)pc, "PCDeflationSetProjectionNullSpaceMat_C", PC… in PCCreate_Deflation()
872 …PetscCall(PetscObjectComposeFunction((PetscObject)pc, "PCDeflationSetCoarseMat_C", PCDeflationSetC… in PCCreate_Deflation()
873 …PetscCall(PetscObjectComposeFunction((PetscObject)pc, "PCDeflationGetCoarseKSP_C", PCDeflationGetC… in PCCreate_Deflation()
874 …PetscCall(PetscObjectComposeFunction((PetscObject)pc, "PCDeflationGetPC_C", PCDeflationGetPC_Defla… in PCCreate_Deflation()