| /petsc/src/ksp/pc/impls/mg/ |
| H A D | fmg.c | 6 PetscErrorCode PCMGFCycle_Private(PC pc, PC_MG_Levels **mglevels, PetscBool transpose, PetscBool ma… in PCMGFCycle_Private() argument 8 PetscInt i, l = mglevels[0]->levels; in PCMGFCycle_Private() 14 …if (mglevels[i]->eventinterprestrict) PetscCall(PetscLogEventBegin(mglevels[i]->eventinterprestric… in PCMGFCycle_Private() 15 … if (matapp) PetscCall(MatMatRestrict(mglevels[i]->restrct, mglevels[i]->B, &mglevels[i - 1]->B)); in PCMGFCycle_Private() 16 else PetscCall(MatRestrict(mglevels[i]->restrct, mglevels[i]->b, mglevels[i - 1]->b)); in PCMGFCycle_Private() 17 …if (mglevels[i]->eventinterprestrict) PetscCall(PetscLogEventEnd(mglevels[i]->eventinterprestrict,… in PCMGFCycle_Private() 22 if (!mglevels[0]->X) { in PCMGFCycle_Private() 23 PetscCall(MatDuplicate(mglevels[0]->B, MAT_DO_NOT_COPY_VALUES, &mglevels[0]->X)); in PCMGFCycle_Private() 25 PetscCall(MatZeroEntries(mglevels[0]->X)); in PCMGFCycle_Private() 28 PetscCall(VecZeroEntries(mglevels[0]->x)); in PCMGFCycle_Private() [all …]
|
| H A D | smg.c | 6 PetscErrorCode PCMGACycle_Private(PC pc, PC_MG_Levels **mglevels, PetscBool transpose, PetscBool ma… in PCMGACycle_Private() argument 8 PetscInt i, l = mglevels[0]->levels; in PCMGACycle_Private() 13 …if (mglevels[i]->eventinterprestrict) PetscCall(PetscLogEventBegin(mglevels[i]->eventinterprestric… in PCMGACycle_Private() 15 … if (matapp) PetscCall(MatMatRestrict(mglevels[i]->restrct, mglevels[i]->B, &mglevels[i - 1]->B)); in PCMGACycle_Private() 16 else PetscCall(MatRestrict(mglevels[i]->restrct, mglevels[i]->b, mglevels[i - 1]->b)); in PCMGACycle_Private() 18 …if (matapp) PetscCall(MatMatRestrict(mglevels[i]->interpolate, mglevels[i]->B, &mglevels[i - 1]->B… in PCMGACycle_Private() 19 else PetscCall(MatRestrict(mglevels[i]->interpolate, mglevels[i]->b, mglevels[i - 1]->b)); in PCMGACycle_Private() 21 …if (mglevels[i]->eventinterprestrict) PetscCall(PetscLogEventEnd(mglevels[i]->eventinterprestrict,… in PCMGACycle_Private() 26 if (!mglevels[i]->X) { in PCMGACycle_Private() 27 PetscCall(MatDuplicate(mglevels[i]->B, MAT_DO_NOT_COPY_VALUES, &mglevels[i]->X)); in PCMGACycle_Private() [all …]
|
| H A D | mg.c | 17 PC_MG_Levels *mgc, *mglevels = *mglevelsin; in PCMGMCycle_Private() local 18 PetscInt cycles = (mglevels->level == 1) ? 1 : mglevels->cycles; in PCMGMCycle_Private() 21 …if (mglevels->eventsmoothsolve) PetscCall(PetscLogEventBegin(mglevels->eventsmoothsolve, 0, 0, 0, … in PCMGMCycle_Private() 24 PetscCall(KSPMatSolve(mglevels->smoothd, mglevels->B, mglevels->X)); /* pre-smooth */ in PCMGMCycle_Private() 25 PetscCall(KSPCheckSolve(mglevels->smoothd, pc, NULL)); in PCMGMCycle_Private() 27 PetscCall(KSPSolve(mglevels->smoothd, mglevels->b, mglevels->x)); /* pre-smooth */ in PCMGMCycle_Private() 28 PetscCall(KSPCheckSolve(mglevels->smoothd, pc, mglevels->x)); in PCMGMCycle_Private() 32 …PetscCall(KSPSolveTranspose(mglevels->smoothu, mglevels->b, mglevels->x)); /* transpose of post-sm… in PCMGMCycle_Private() 33 PetscCall(KSPCheckSolve(mglevels->smoothu, pc, mglevels->x)); in PCMGMCycle_Private() 35 …if (mglevels->eventsmoothsolve) PetscCall(PetscLogEventEnd(mglevels->eventsmoothsolve, 0, 0, 0, 0)… in PCMGMCycle_Private() [all …]
|
| H A D | mgfunc.c | 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 [all …]
|
| /petsc/src/ksp/pc/impls/gamg/ |
| H A D | gamg.c | 565 PC_MG_Levels **mglevels = mg->levels; in PCSetUp_GAMG() local 571 PetscCall(KSPGetOperators(mglevels[pc_gamg->Nlevels - 1]->smoothd, &dA, &dB)); in PCSetUp_GAMG() 573 PetscCall(KSPSetOperators(mglevels[pc_gamg->Nlevels - 1]->smoothd, dA, dB)); in PCSetUp_GAMG() 581 PetscCall(KSPGetOperators(mglevels[level]->smoothd, NULL, &B)); in PCSetUp_GAMG() 583 …if (B->product->A == dB && B->product->B == mglevels[level + 1]->interpolate) reuse = MAT_REUSE_MA… in PCSetUp_GAMG() 585 if (reuse == MAT_INITIAL_MATRIX) PetscCall(MatDestroy(&mglevels[level]->A)); in PCSetUp_GAMG() 592 PetscCall(MatPtAP(dB, mglevels[level + 1]->interpolate, reuse, PETSC_DETERMINE, &B)); in PCSetUp_GAMG() 594 if (reuse == MAT_INITIAL_MATRIX) mglevels[level]->A = B; in PCSetUp_GAMG() 595 PetscCall(KSPSetOperators(mglevels[level]->smoothd, B, B)); in PCSetUp_GAMG() 1705 PC_MG_Levels **mglevels = mg->levels; in PCView_GAMG() local [all …]
|
| /petsc/src/snes/tutorials/ |
| H A D | ex30.c | 97 PetscInt dof, stencil_width, mglevels; member 795 grid->mglevels = 1; in SetParams()
|