Lines Matching refs:mglevels
119 PC_MG_Levels **mglevels = mg->levels; in PCMGGetCoarseSolve() local
123 *ksp = mglevels[0]->smoothd; in PCMGGetCoarseSolve()
146 PC_MG_Levels **mglevels = mg->levels; in PCMGSetResidual() local
150 …PetscCheck(mglevels, PetscObjectComm((PetscObject)pc), PETSC_ERR_ARG_WRONGSTATE, "Must set MG leve… in PCMGSetResidual()
151 if (residual) mglevels[l]->residual = residual; in PCMGSetResidual()
152 if (!mglevels[l]->residual) mglevels[l]->residual = PCMGResidualDefault; in PCMGSetResidual()
153 mglevels[l]->matresidual = PCMGMatResidualDefault; in PCMGSetResidual()
155 PetscCall(MatDestroy(&mglevels[l]->A)); in PCMGSetResidual()
156 mglevels[l]->A = mat; in PCMGSetResidual()
180 PC_MG_Levels **mglevels = mg->levels; in PCMGSetResidualTranspose() local
184 …PetscCheck(mglevels, PetscObjectComm((PetscObject)pc), PETSC_ERR_ARG_WRONGSTATE, "Must set MG leve… in PCMGSetResidualTranspose()
185 if (residualt) mglevels[l]->residualtranspose = residualt; in PCMGSetResidualTranspose()
186 …if (!mglevels[l]->residualtranspose) mglevels[l]->residualtranspose = PCMGResidualTransposeDefault; in PCMGSetResidualTranspose()
187 mglevels[l]->matresidualtranspose = PCMGMatResidualTransposeDefault; in PCMGSetResidualTranspose()
189 PetscCall(MatDestroy(&mglevels[l]->A)); in PCMGSetResidualTranspose()
190 mglevels[l]->A = mat; in PCMGSetResidualTranspose()
219 PC_MG_Levels **mglevels = mg->levels; in PCMGSetInterpolation() local
223 …PetscCheck(mglevels, PetscObjectComm((PetscObject)pc), PETSC_ERR_ARG_WRONGSTATE, "Must set MG leve… in PCMGSetInterpolation()
226 PetscCall(MatDestroy(&mglevels[l]->interpolate)); in PCMGSetInterpolation()
228 mglevels[l]->interpolate = mat; in PCMGSetInterpolation()
250 PC_MG_Levels **mglevels = mg->levels; in PCMGSetOperators() local
256 …PetscCheck(mglevels, PetscObjectComm((PetscObject)pc), PETSC_ERR_ARG_WRONGSTATE, "Must set MG leve… in PCMGSetOperators()
257 PetscCall(KSPSetOperators(mglevels[l]->smoothd, Amat, Pmat)); in PCMGSetOperators()
281 PC_MG_Levels **mglevels = mg->levels; in PCMGGetInterpolation() local
286 …PetscCheck(mglevels, PetscObjectComm((PetscObject)pc), PETSC_ERR_ARG_WRONGSTATE, "Must set MG leve… in PCMGGetInterpolation()
288 …if (!mglevels[l]->interpolate && mglevels[l]->restrct) PetscCall(PCMGSetInterpolation(pc, l, mglev… in PCMGGetInterpolation()
289 if (mat) *mat = mglevels[l]->interpolate; in PCMGGetInterpolation()
321 PC_MG_Levels **mglevels = mg->levels; in PCMGSetRestriction() local
326 …PetscCheck(mglevels, PetscObjectComm((PetscObject)pc), PETSC_ERR_ARG_WRONGSTATE, "Must set MG leve… in PCMGSetRestriction()
329 PetscCall(MatDestroy(&mglevels[l]->restrct)); in PCMGSetRestriction()
331 mglevels[l]->restrct = mat; in PCMGSetRestriction()
355 PC_MG_Levels **mglevels = mg->levels; in PCMGGetRestriction() local
360 …PetscCheck(mglevels, PetscObjectComm((PetscObject)pc), PETSC_ERR_ARG_WRONGSTATE, "Must set MG leve… in PCMGGetRestriction()
362 …if (!mglevels[l]->restrct && mglevels[l]->interpolate) PetscCall(PCMGSetRestriction(pc, l, mglevel… in PCMGGetRestriction()
363 if (mat) *mat = mglevels[l]->restrct; in PCMGGetRestriction()
388 PC_MG_Levels **mglevels = mg->levels; in PCMGSetRScale() local
392 …PetscCheck(mglevels, PetscObjectComm((PetscObject)pc), PETSC_ERR_ARG_WRONGSTATE, "Must set MG leve… in PCMGSetRScale()
395 PetscCall(VecDestroy(&mglevels[l]->rscale)); in PCMGSetRScale()
397 mglevels[l]->rscale = rscale; in PCMGSetRScale()
422 PC_MG_Levels **mglevels = mg->levels; in PCMGGetRScale() local
426 …PetscCheck(mglevels, PetscObjectComm((PetscObject)pc), PETSC_ERR_ARG_WRONGSTATE, "Must set MG leve… in PCMGGetRScale()
428 if (!mglevels[l]->rscale) { in PCMGGetRScale()
448 mglevels[l]->rscale = coarse; in PCMGGetRScale()
450 *rscale = mglevels[l]->rscale; in PCMGGetRScale()
472 PC_MG_Levels **mglevels = mg->levels; in PCMGSetInjection() local
477 …PetscCheck(mglevels, PetscObjectComm((PetscObject)pc), PETSC_ERR_ARG_WRONGSTATE, "Must set MG leve… in PCMGSetInjection()
480 PetscCall(MatDestroy(&mglevels[l]->inject)); in PCMGSetInjection()
482 mglevels[l]->inject = mat; in PCMGSetInjection()
506 PC_MG_Levels **mglevels = mg->levels; in PCMGGetInjection() local
511 …PetscCheck(mglevels, PetscObjectComm((PetscObject)pc), PETSC_ERR_ARG_WRONGSTATE, "Must set MG leve… in PCMGGetInjection()
513 if (mat) *mat = mglevels[l]->inject; in PCMGGetInjection()
544 PC_MG_Levels **mglevels = mg->levels; in PCMGGetSmoother() local
548 *ksp = mglevels[l]->smoothd; in PCMGGetSmoother()
575 PC_MG_Levels **mglevels = mg->levels; in PCMGGetSmootherUp() local
587 if (mglevels[l]->smoothu == mglevels[l]->smoothd) { in PCMGGetSmootherUp()
594 PetscCall(PetscObjectGetComm((PetscObject)mglevels[l]->smoothd, &comm)); in PCMGGetSmootherUp()
595 PetscCall(KSPGetOptionsPrefix(mglevels[l]->smoothd, &prefix)); in PCMGGetSmootherUp()
596 PetscCall(KSPGetTolerances(mglevels[l]->smoothd, &rtol, &abstol, &dtol, &maxits)); in PCMGGetSmootherUp()
597 PetscCall(KSPGetType(mglevels[l]->smoothd, &ksptype)); in PCMGGetSmootherUp()
598 PetscCall(KSPGetNormType(mglevels[l]->smoothd, &normtype)); in PCMGGetSmootherUp()
599 PetscCall(KSPGetPC(mglevels[l]->smoothd, &ipc)); in PCMGGetSmootherUp()
602 PetscCall(KSPCreate(comm, &mglevels[l]->smoothu)); in PCMGGetSmootherUp()
603 PetscCall(KSPSetNestLevel(mglevels[l]->smoothu, pc->kspnestlevel)); in PCMGGetSmootherUp()
604 PetscCall(KSPSetErrorIfNotConverged(mglevels[l]->smoothu, pc->erroriffailure)); in PCMGGetSmootherUp()
605 …PetscCall(PetscObjectIncrementTabLevel((PetscObject)mglevels[l]->smoothu, (PetscObject)pc, mglevel… in PCMGGetSmootherUp()
606 PetscCall(KSPSetOptionsPrefix(mglevels[l]->smoothu, prefix)); in PCMGGetSmootherUp()
607 PetscCall(KSPSetTolerances(mglevels[l]->smoothu, rtol, abstol, dtol, maxits)); in PCMGGetSmootherUp()
608 PetscCall(KSPSetType(mglevels[l]->smoothu, ksptype)); in PCMGGetSmootherUp()
609 PetscCall(KSPSetNormType(mglevels[l]->smoothu, normtype)); in PCMGGetSmootherUp()
610 PetscCall(KSPSetConvergenceTest(mglevels[l]->smoothu, KSPConvergedSkip, NULL, NULL)); in PCMGGetSmootherUp()
611 PetscCall(KSPGetPC(mglevels[l]->smoothu, &ipc)); in PCMGGetSmootherUp()
613 …PetscCall(PetscObjectComposedDataSetInt((PetscObject)mglevels[l]->smoothu, PetscMGLevelId, mglevel… in PCMGGetSmootherUp()
615 if (ksp) *ksp = mglevels[l]->smoothu; in PCMGGetSmootherUp()
643 PC_MG_Levels **mglevels = mg->levels; in PCMGGetSmootherDown() local
649 *ksp = mglevels[l]->smoothd; in PCMGGetSmootherDown()
670 PC_MG_Levels **mglevels = mg->levels; in PCMGSetCycleTypeOnLevel() local
674 …PetscCheck(mglevels, PetscObjectComm((PetscObject)pc), PETSC_ERR_ARG_WRONGSTATE, "Must set MG leve… in PCMGSetCycleTypeOnLevel()
677 mglevels[l]->cycles = c; in PCMGSetCycleTypeOnLevel()
701 PC_MG_Levels **mglevels = mg->levels; in PCMGSetRhs() local
705 …PetscCheck(mglevels, PetscObjectComm((PetscObject)pc), PETSC_ERR_ARG_WRONGSTATE, "Must set MG leve… in PCMGSetRhs()
706 …PetscCheck(l != mglevels[0]->levels - 1, PetscObjectComm((PetscObject)pc), PETSC_ERR_ARG_INCOMP, "… in PCMGSetRhs()
708 PetscCall(VecDestroy(&mglevels[l]->b)); in PCMGSetRhs()
710 mglevels[l]->b = c; in PCMGSetRhs()
734 PC_MG_Levels **mglevels = mg->levels; in PCMGSetX() local
738 …PetscCheck(mglevels, PetscObjectComm((PetscObject)pc), PETSC_ERR_ARG_WRONGSTATE, "Must set MG leve… in PCMGSetX()
739 …PetscCheck(l != mglevels[0]->levels - 1, PetscObjectComm((PetscObject)pc), PETSC_ERR_ARG_INCOMP, "… in PCMGSetX()
741 PetscCall(VecDestroy(&mglevels[l]->x)); in PCMGSetX()
743 mglevels[l]->x = c; in PCMGSetX()
767 PC_MG_Levels **mglevels = mg->levels; in PCMGSetR() local
771 …PetscCheck(mglevels, PetscObjectComm((PetscObject)pc), PETSC_ERR_ARG_WRONGSTATE, "Must set MG leve… in PCMGSetR()
774 PetscCall(VecDestroy(&mglevels[l]->r)); in PCMGSetR()
776 mglevels[l]->r = c; in PCMGSetR()