Lines Matching refs:fas
18 SNES_FAS *fas; in SNESFASSetType() local
23 fas = (SNES_FAS *)snes->data; in SNESFASSetType()
24 fas->fastype = fastype; in SNESFASSetType()
25 if (fas->next) PetscCall(SNESFASSetType(fas->next, fastype)); in SNESFASSetType()
46 SNES_FAS *fas; in SNESFASGetType() local
51 fas = (SNES_FAS *)snes->data; in SNESFASGetType()
52 *fastype = fas->fastype; in SNESFASGetType()
79 SNES_FAS *fas; in SNESFASSetLevels() local
85 fas = (SNES_FAS *)snes->data; in SNESFASSetLevels()
87 if (levels == fas->levels) { in SNESFASSetLevels()
93 PetscCall(SNESDestroy(&fas->next)); in SNESFASSetLevels()
94 fas->next = NULL; in SNESFASSetLevels()
95 fas->previous = NULL; in SNESFASSetLevels()
102 fas->level = i; in SNESFASSetLevels()
103 fas->levels = levels; in SNESFASSetLevels()
104 fas->fine = snes; in SNESFASSetLevels()
105 fas->next = NULL; in SNESFASSetLevels()
107 PetscCall(SNESCreate(comm, &fas->next)); in SNESFASSetLevels()
108 PetscCall(SNESGetOptionsPrefix(fas->fine, &optionsprefix)); in SNESFASSetLevels()
109 …PetscCall(PetscSNPrintf(tprefix, sizeof(tprefix), "fas_levels_%" PetscInt_FMT "_cycle_", fas->leve… in SNESFASSetLevels()
110 PetscCall(SNESAppendOptionsPrefix(fas->next, optionsprefix)); in SNESFASSetLevels()
111 PetscCall(SNESAppendOptionsPrefix(fas->next, tprefix)); in SNESFASSetLevels()
112 PetscCall(SNESSetType(fas->next, SNESFAS)); in SNESFASSetLevels()
113 …PetscCall(SNESSetTolerances(fas->next, fas->next->abstol, fas->next->rtol, fas->next->stol, fas->n… in SNESFASSetLevels()
114 … PetscCall(PetscObjectIncrementTabLevel((PetscObject)fas->next, (PetscObject)snes, levels - i)); in SNESFASSetLevels()
115 PetscCall(PetscObjectComposedDataSetInt((PetscObject)fas->next, PetscMGLevelId, i - 1)); in SNESFASSetLevels()
117 ((SNES_FAS *)fas->next->data)->previous = prevsnes; in SNESFASSetLevels()
119 prevsnes = fas->next; in SNESFASSetLevels()
120 fas = (SNES_FAS *)prevsnes->data; in SNESFASSetLevels()
141 SNES_FAS *fas; in SNESFASGetLevels() local
146 fas = (SNES_FAS *)snes->data; in SNESFASGetLevels()
147 *levels = fas->levels; in SNESFASGetLevels()
167 SNES_FAS *fas; in SNESFASGetCycleSNES() local
173 fas = (SNES_FAS *)snes->data; in SNESFASGetCycleSNES()
174 …fas->levels - 1, PetscObjectComm((PetscObject)snes), PETSC_ERR_ARG_OUTOFRANGE, "Requested level %"… in SNESFASGetCycleSNES()
175 …PetscCheck(fas->level == fas->levels - 1, PetscObjectComm((PetscObject)snes), PETSC_ERR_ARG_OUTOFR… in SNESFASGetCycleSNES()
178 for (i = fas->level; i > level; i--) { in SNESFASGetCycleSNES()
179 *lsnes = fas->next; in SNESFASGetCycleSNES()
180 fas = (SNES_FAS *)(*lsnes)->data; in SNESFASGetCycleSNES()
182 …PetscCheck(fas->level == level, PetscObjectComm((PetscObject)snes), PETSC_ERR_PLIB, "SNESFAS level… in SNESFASGetCycleSNES()
205 SNES_FAS *fas; in SNESFASSetNumberSmoothUp() local
209 fas = (SNES_FAS *)snes->data; in SNESFASSetNumberSmoothUp()
210 fas->max_up_it = n; in SNESFASSetNumberSmoothUp()
211 …if (!fas->smoothu && fas->level != 0) PetscCall(SNESFASCycleCreateSmoother_Private(snes, &fas->smo… in SNESFASSetNumberSmoothUp()
212 …if (fas->smoothu) PetscCall(SNESSetTolerances(fas->smoothu, fas->smoothu->abstol, fas->smoothu->rt… in SNESFASSetNumberSmoothUp()
213 if (fas->next) PetscCall(SNESFASSetNumberSmoothUp(fas->next, n)); in SNESFASSetNumberSmoothUp()
236 SNES_FAS *fas; in SNESFASSetNumberSmoothDown() local
240 fas = (SNES_FAS *)snes->data; in SNESFASSetNumberSmoothDown()
241 if (!fas->smoothd) PetscCall(SNESFASCycleCreateSmoother_Private(snes, &fas->smoothd)); in SNESFASSetNumberSmoothDown()
242 …PetscCall(SNESSetTolerances(fas->smoothd, fas->smoothd->abstol, fas->smoothd->rtol, fas->smoothd->… in SNESFASSetNumberSmoothDown()
244 fas->max_down_it = n; in SNESFASSetNumberSmoothDown()
245 if (fas->next) PetscCall(SNESFASSetNumberSmoothDown(fas->next, n)); in SNESFASSetNumberSmoothDown()
272 SNES_FAS *fas; in SNESFASSetContinuation() local
276 fas = (SNES_FAS *)snes->data; in SNESFASSetContinuation()
277 PetscCall(SNESGetOptionsPrefix(fas->fine, &optionsprefix)); in SNESFASSetContinuation()
278 if (!fas->smoothu) PetscCall(SNESFASCycleCreateSmoother_Private(snes, &fas->smoothu)); in SNESFASSetContinuation()
280 PetscCall(SNESSetOptionsPrefix(fas->smoothu, optionsprefix)); in SNESFASSetContinuation()
281 PetscCall(SNESAppendOptionsPrefix(fas->smoothu, tprefix)); in SNESFASSetContinuation()
282 PetscCall(SNESSetType(fas->smoothu, SNESNEWTONLS)); in SNESFASSetContinuation()
283 …PetscCall(SNESSetTolerances(fas->smoothu, fas->fine->abstol, fas->fine->rtol, fas->fine->stol, 50,… in SNESFASSetContinuation()
284 fas->continuation = continuation; in SNESFASSetContinuation()
285 if (fas->next) PetscCall(SNESFASSetContinuation(fas->next, continuation)); in SNESFASSetContinuation()
308 SNES_FAS *fas; in SNESFASSetCycles() local
314 fas = (SNES_FAS *)snes->data; in SNESFASSetCycles()
315 fas->n_cycles = cycles; in SNESFASSetCycles()
317 if (fas->next) PetscCall(SNESFASSetCycles(fas->next, cycles)); in SNESFASSetCycles()
337 SNES_FAS *fas; in SNESFASSetMonitor() local
345 fas = (SNES_FAS *)snes->data; in SNESFASSetMonitor()
346 levels = fas->levels; in SNESFASSetMonitor()
350 fas = (SNES_FAS *)levelsnes->data; in SNESFASSetMonitor()
356 } else if (i != fas->levels - 1) { in SNESFASSetMonitor()
380 SNES_FAS *fas; in SNESFASSetLog() local
389 fas = (SNES_FAS *)snes->data; in SNESFASSetLog()
390 levels = fas->levels; in SNESFASSetLog()
394 fas = (SNES_FAS *)levelsnes->data; in SNESFASSetLog()
397 … PetscCall(PetscLogEventRegister(eventname, ((PetscObject)snes)->classid, &fas->eventsmoothsetup)); in SNESFASSetLog()
399 … PetscCall(PetscLogEventRegister(eventname, ((PetscObject)snes)->classid, &fas->eventsmoothsolve)); in SNESFASSetLog()
401 … PetscCall(PetscLogEventRegister(eventname, ((PetscObject)snes)->classid, &fas->eventresidual)); in SNESFASSetLog()
403 …PetscCall(PetscLogEventRegister(eventname, ((PetscObject)snes)->classid, &fas->eventinterprestrict… in SNESFASSetLog()
405 fas->eventsmoothsetup = 0; in SNESFASSetLog()
406 fas->eventsmoothsolve = 0; in SNESFASSetLog()
407 fas->eventresidual = 0; in SNESFASSetLog()
408 fas->eventinterprestrict = 0; in SNESFASSetLog()
422 SNES_FAS *fas; in SNESFASCycleCreateSmoother_Private() local
430 fas = (SNES_FAS *)snes->data; in SNESFASCycleCreateSmoother_Private()
431 PetscCall(SNESGetOptionsPrefix(fas->fine, &optionsprefix)); in SNESFASCycleCreateSmoother_Private()
434 if (fas->level == 0) { in SNESFASCycleCreateSmoother_Private()
441 PetscCall(PetscSNPrintf(tprefix, sizeof(tprefix), "fas_levels_%" PetscInt_FMT "_", fas->level)); in SNESFASCycleCreateSmoother_Private()
445 PetscCall(SNESSetTolerances(nsmooth, 0.0, 0.0, 0.0, fas->max_down_it, nsmooth->max_funcs)); in SNESFASCycleCreateSmoother_Private()
449 PetscCall(PetscObjectComposedDataSetInt((PetscObject)nsmooth, PetscMGLevelId, fas->level)); in SNESFASCycleCreateSmoother_Private()
471 SNES_FAS *fas; in SNESFASCycleSetCycles() local
475 fas = (SNES_FAS *)snes->data; in SNESFASCycleSetCycles()
476 fas->n_cycles = cycles; in SNESFASCycleSetCycles()
498 SNES_FAS *fas; in SNESFASCycleGetSmoother() local
503 fas = (SNES_FAS *)snes->data; in SNESFASCycleGetSmoother()
504 *smooth = fas->smoothd; in SNESFASCycleGetSmoother()
528 SNES_FAS *fas; in SNESFASCycleGetSmootherUp() local
533 fas = (SNES_FAS *)snes->data; in SNESFASCycleGetSmootherUp()
534 if (!fas->smoothu) *smoothu = fas->smoothd; in SNESFASCycleGetSmootherUp()
535 else *smoothu = fas->smoothu; in SNESFASCycleGetSmootherUp()
556 SNES_FAS *fas; in SNESFASCycleGetSmootherDown() local
561 fas = (SNES_FAS *)snes->data; in SNESFASCycleGetSmootherDown()
562 *smoothd = fas->smoothd; in SNESFASCycleGetSmootherDown()
586 SNES_FAS *fas; in SNESFASCycleGetCorrection() local
591 fas = (SNES_FAS *)snes->data; in SNESFASCycleGetCorrection()
592 *correction = fas->next; in SNESFASCycleGetCorrection()
613 SNES_FAS *fas; in SNESFASCycleGetInterpolation() local
618 fas = (SNES_FAS *)snes->data; in SNESFASCycleGetInterpolation()
619 *mat = fas->interpolate; in SNESFASCycleGetInterpolation()
640 SNES_FAS *fas; in SNESFASCycleGetRestriction() local
645 fas = (SNES_FAS *)snes->data; in SNESFASCycleGetRestriction()
646 *mat = fas->restrct; in SNESFASCycleGetRestriction()
667 SNES_FAS *fas; in SNESFASCycleGetInjection() local
672 fas = (SNES_FAS *)snes->data; in SNESFASCycleGetInjection()
673 *mat = fas->inject; in SNESFASCycleGetInjection()
694 SNES_FAS *fas; in SNESFASCycleGetRScale() local
699 fas = (SNES_FAS *)snes->data; in SNESFASCycleGetRScale()
700 *vec = fas->rscale; in SNESFASCycleGetRScale()
721 SNES_FAS *fas; in SNESFASCycleIsFine() local
726 fas = (SNES_FAS *)snes->data; in SNESFASCycleIsFine()
727 if (fas->level == fas->levels - 1) *flg = PETSC_TRUE; in SNESFASCycleIsFine()
756 SNES_FAS *fas; in SNESFASSetInterpolation() local
763 fas = (SNES_FAS *)levelsnes->data; in SNESFASSetInterpolation()
765 PetscCall(MatDestroy(&fas->interpolate)); in SNESFASSetInterpolation()
766 fas->interpolate = mat; in SNESFASSetInterpolation()
787 SNES_FAS *fas; in SNESFASGetInterpolation() local
794 fas = (SNES_FAS *)levelsnes->data; in SNESFASGetInterpolation()
795 *mat = fas->interpolate; in SNESFASGetInterpolation()
824 SNES_FAS *fas; in SNESFASSetRestriction() local
831 fas = (SNES_FAS *)levelsnes->data; in SNESFASSetRestriction()
833 PetscCall(MatDestroy(&fas->restrct)); in SNESFASSetRestriction()
834 fas->restrct = mat; in SNESFASSetRestriction()
855 SNES_FAS *fas; in SNESFASGetRestriction() local
862 fas = (SNES_FAS *)levelsnes->data; in SNESFASGetRestriction()
863 *mat = fas->restrct; in SNESFASGetRestriction()
886 SNES_FAS *fas; in SNESFASSetInjection() local
893 fas = (SNES_FAS *)levelsnes->data; in SNESFASSetInjection()
895 PetscCall(MatDestroy(&fas->inject)); in SNESFASSetInjection()
897 fas->inject = mat; in SNESFASSetInjection()
918 SNES_FAS *fas; in SNESFASGetInjection() local
925 fas = (SNES_FAS *)levelsnes->data; in SNESFASGetInjection()
926 *mat = fas->inject; in SNESFASGetInjection()
948 SNES_FAS *fas; in SNESFASSetRScale() local
955 fas = (SNES_FAS *)levelsnes->data; in SNESFASSetRScale()
957 PetscCall(VecDestroy(&fas->rscale)); in SNESFASSetRScale()
958 fas->rscale = rscale; in SNESFASSetRScale()
978 SNES_FAS *fas; in SNESFASGetSmoother() local
985 fas = (SNES_FAS *)levelsnes->data; in SNESFASGetSmoother()
986 if (!fas->smoothd) PetscCall(SNESFASCycleCreateSmoother_Private(levelsnes, &fas->smoothd)); in SNESFASGetSmoother()
987 *smooth = fas->smoothd; in SNESFASGetSmoother()
1007 SNES_FAS *fas; in SNESFASGetSmootherDown() local
1014 fas = (SNES_FAS *)levelsnes->data; in SNESFASGetSmootherDown()
1016 if (!fas->smoothd) PetscCall(SNESFASCycleCreateSmoother_Private(levelsnes, &fas->smoothd)); in SNESFASGetSmootherDown()
1017 if (!fas->smoothu) PetscCall(SNESFASCycleCreateSmoother_Private(levelsnes, &fas->smoothu)); in SNESFASGetSmootherDown()
1018 *smooth = fas->smoothd; in SNESFASGetSmootherDown()
1038 SNES_FAS *fas; in SNESFASGetSmootherUp() local
1045 fas = (SNES_FAS *)levelsnes->data; in SNESFASGetSmootherUp()
1047 if (!fas->smoothd) PetscCall(SNESFASCycleCreateSmoother_Private(levelsnes, &fas->smoothd)); in SNESFASGetSmootherUp()
1048 if (!fas->smoothu) PetscCall(SNESFASCycleCreateSmoother_Private(levelsnes, &fas->smoothu)); in SNESFASGetSmootherUp()
1049 *smooth = fas->smoothu; in SNESFASGetSmootherUp()
1068 SNES_FAS *fas; in SNESFASGetCoarseSolve() local
1075 fas = (SNES_FAS *)levelsnes->data; in SNESFASGetCoarseSolve()
1077 if (!fas->smoothd) PetscCall(SNESFASCycleCreateSmoother_Private(levelsnes, &fas->smoothd)); in SNESFASGetCoarseSolve()
1078 *coarse = fas->smoothd; in SNESFASGetCoarseSolve()
1100 SNES_FAS *fas; in SNESFASFullSetDownSweep() local
1104 fas = (SNES_FAS *)snes->data; in SNESFASFullSetDownSweep()
1105 fas->full_downsweep = swp; in SNESFASFullSetDownSweep()
1106 if (fas->next) PetscCall(SNESFASFullSetDownSweep(fas->next, swp)); in SNESFASFullSetDownSweep()
1132 SNES_FAS *fas; in SNESFASFullSetTotal() local
1136 fas = (SNES_FAS *)snes->data; in SNESFASFullSetTotal()
1137 fas->full_total = total; in SNESFASFullSetTotal()
1138 if (fas->next) PetscCall(SNESFASFullSetTotal(fas->next, total)); in SNESFASFullSetTotal()
1159 SNES_FAS *fas; in SNESFASFullGetTotal() local
1163 fas = (SNES_FAS *)snes->data; in SNESFASFullGetTotal()
1164 *total = fas->full_total; in SNESFASFullGetTotal()