Lines Matching refs:adaptor

193 PetscErrorCode DMAdaptorCreate(MPI_Comm comm, DMAdaptor *adaptor)  in DMAdaptorCreate()  argument
198 PetscAssertPointer(adaptor, 2); in DMAdaptorCreate()
201 …PetscCall(PetscHeaderCreate(*adaptor, DMADAPTOR_CLASSID, "DMAdaptor", "DM Adaptor", "DMAdaptor", c… in DMAdaptorCreate()
202 (*adaptor)->adaptCriterion = DM_ADAPTATION_NONE; in DMAdaptorCreate()
203 (*adaptor)->numSeq = 1; in DMAdaptorCreate()
204 (*adaptor)->Nadapt = -1; in DMAdaptorCreate()
205 (*adaptor)->refinementFactor = 2.0; in DMAdaptorCreate()
207 PetscCall(VecTaggerCreate(PetscObjectComm((PetscObject)*adaptor), &(*adaptor)->refineTag)); in DMAdaptorCreate()
208 PetscCall(PetscObjectSetOptionsPrefix((PetscObject)(*adaptor)->refineTag, "refine_")); in DMAdaptorCreate()
209 PetscCall(VecTaggerSetType((*adaptor)->refineTag, VECTAGGERABSOLUTE)); in DMAdaptorCreate()
210 PetscCall(VecTaggerAbsoluteSetBox((*adaptor)->refineTag, &refineBox)); in DMAdaptorCreate()
212 PetscCall(VecTaggerCreate(PetscObjectComm((PetscObject)*adaptor), &(*adaptor)->coarsenTag)); in DMAdaptorCreate()
213 PetscCall(PetscObjectSetOptionsPrefix((PetscObject)(*adaptor)->coarsenTag, "coarsen_")); in DMAdaptorCreate()
214 PetscCall(VecTaggerSetType((*adaptor)->coarsenTag, VECTAGGERABSOLUTE)); in DMAdaptorCreate()
215 PetscCall(VecTaggerAbsoluteSetBox((*adaptor)->coarsenTag, &coarsenBox)); in DMAdaptorCreate()
231 PetscErrorCode DMAdaptorDestroy(DMAdaptor *adaptor) in DMAdaptorDestroy() argument
234 if (!*adaptor) PetscFunctionReturn(PETSC_SUCCESS); in DMAdaptorDestroy()
235 PetscValidHeaderSpecific(*adaptor, DMADAPTOR_CLASSID, 1); in DMAdaptorDestroy()
236 if (--((PetscObject)*adaptor)->refct > 0) { in DMAdaptorDestroy()
237 *adaptor = NULL; in DMAdaptorDestroy()
240 PetscCall(VecTaggerDestroy(&(*adaptor)->refineTag)); in DMAdaptorDestroy()
241 PetscCall(VecTaggerDestroy(&(*adaptor)->coarsenTag)); in DMAdaptorDestroy()
242 PetscCall(PetscFree2((*adaptor)->exactSol, (*adaptor)->exactCtx)); in DMAdaptorDestroy()
243 PetscCall(DMAdaptorMonitorCancel(*adaptor)); in DMAdaptorDestroy()
244 PetscCall(PetscHeaderDestroy(adaptor)); in DMAdaptorDestroy()
264 PetscErrorCode DMAdaptorSetType(DMAdaptor adaptor, DMAdaptorType method) in DMAdaptorSetType() argument
270 PetscValidHeaderSpecific(adaptor, DMADAPTOR_CLASSID, 1); in DMAdaptorSetType()
271 PetscCall(PetscObjectTypeCompare((PetscObject)adaptor, method, &match)); in DMAdaptorSetType()
276 …PetscCheck(r, PetscObjectComm((PetscObject)adaptor), PETSC_ERR_ARG_UNKNOWN_TYPE, "Unknown DMAdapto… in DMAdaptorSetType()
278 PetscTryTypeMethod(adaptor, destroy); in DMAdaptorSetType()
279 PetscCall(PetscMemzero(adaptor->ops, sizeof(*adaptor->ops))); in DMAdaptorSetType()
280 PetscCall(PetscObjectChangeTypeName((PetscObject)adaptor, method)); in DMAdaptorSetType()
281 PetscCall((*r)(adaptor)); in DMAdaptorSetType()
300 PetscErrorCode DMAdaptorGetType(DMAdaptor adaptor, DMAdaptorType *type) in DMAdaptorGetType() argument
303 PetscValidHeaderSpecific(adaptor, DMADAPTOR_CLASSID, 1); in DMAdaptorGetType()
306 *type = ((PetscObject)adaptor)->type_name; in DMAdaptorGetType()
351 PetscErrorCode DMAdaptorMonitorSet(DMAdaptor adaptor, PetscErrorCode (*monitor)(DMAdaptor adaptor, … in DMAdaptorMonitorSet() argument
354 PetscValidHeaderSpecific(adaptor, DMADAPTOR_CLASSID, 1); in DMAdaptorMonitorSet()
355 for (PetscInt i = 0; i < adaptor->numbermonitors; i++) { in DMAdaptorMonitorSet()
358 …stroy, (PetscErrorCode (*)(void))(PetscVoidFn *)adaptor->monitor[i], adaptor->monitorcontext[i], a… in DMAdaptorMonitorSet()
361 …PetscCheck(adaptor->numbermonitors < MAXDMADAPTORMONITORS, PetscObjectComm((PetscObject)adaptor), … in DMAdaptorMonitorSet()
362 adaptor->monitor[adaptor->numbermonitors] = monitor; in DMAdaptorMonitorSet()
363 adaptor->monitordestroy[adaptor->numbermonitors] = monitordestroy; in DMAdaptorMonitorSet()
364 adaptor->monitorcontext[adaptor->numbermonitors++] = ctx; in DMAdaptorMonitorSet()
383 PetscErrorCode DMAdaptorMonitorCancel(DMAdaptor adaptor) in DMAdaptorMonitorCancel() argument
386 PetscValidHeaderSpecific(adaptor, DMADAPTOR_CLASSID, 1); in DMAdaptorMonitorCancel()
387 for (PetscInt i = 0; i < adaptor->numbermonitors; ++i) { in DMAdaptorMonitorCancel()
388 …if (adaptor->monitordestroy[i]) PetscCall((*adaptor->monitordestroy[i])(&adaptor->monitorcontext[i… in DMAdaptorMonitorCancel()
390 adaptor->numbermonitors = 0; in DMAdaptorMonitorCancel()
409 PetscErrorCode DMAdaptorMonitorSetFromOptions(DMAdaptor adaptor, const char opt[], const char name[… in DMAdaptorMonitorSetFromOptions() argument
423 PetscCall(PetscObjectGetOptionsPrefix((PetscObject)adaptor, &prefix)); in DMAdaptorMonitorSetFromOptions()
424 …PetscCall(PetscOptionsCreateViewer(PetscObjectComm((PetscObject)adaptor), ((PetscObject)adaptor)->… in DMAdaptorMonitorSetFromOptions()
437 PetscCall(DMAdaptorMonitorSet(adaptor, mfunc, vf, (PetscCtxDestroyFn *)dfunc)); in DMAdaptorMonitorSetFromOptions()
458 PetscErrorCode DMAdaptorSetOptionsPrefix(DMAdaptor adaptor, const char prefix[]) in DMAdaptorSetOptionsPrefix() argument
461 PetscValidHeaderSpecific(adaptor, DMADAPTOR_CLASSID, 1); in DMAdaptorSetOptionsPrefix()
462 PetscCall(PetscObjectSetOptionsPrefix((PetscObject)adaptor, prefix)); in DMAdaptorSetOptionsPrefix()
463 PetscCall(PetscObjectSetOptionsPrefix((PetscObject)adaptor->refineTag, prefix)); in DMAdaptorSetOptionsPrefix()
464 PetscCall(PetscObjectAppendOptionsPrefix((PetscObject)adaptor->refineTag, "refine_")); in DMAdaptorSetOptionsPrefix()
465 PetscCall(PetscObjectSetOptionsPrefix((PetscObject)adaptor->coarsenTag, prefix)); in DMAdaptorSetOptionsPrefix()
466 PetscCall(PetscObjectAppendOptionsPrefix((PetscObject)adaptor->coarsenTag, "coarsen_")); in DMAdaptorSetOptionsPrefix()
490 PetscErrorCode DMAdaptorSetFromOptions(DMAdaptor adaptor) in DMAdaptorSetFromOptions() argument
499 PetscObjectOptionsBegin((PetscObject)adaptor); in DMAdaptorSetFromOptions()
501 if (flg) PetscCall(DMAdaptorSetType(adaptor, typeName)); in DMAdaptorSetFromOptions()
502 else if (!((PetscObject)adaptor)->type_name) PetscCall(DMAdaptorSetType(adaptor, defName)); in DMAdaptorSetFromOptions()
504 if (flg) PetscCall(DMAdaptorSetCriterion(adaptor, criterion)); in DMAdaptorSetFromOptions()
505 …ons to generate an optimal grid", "DMAdaptorSetSequenceLength", adaptor->numSeq, &adaptor->numSeq,… in DMAdaptorSetFromOptions()
506 …vertices N_adapt, -1 for automatic determination", "DMAdaptor", adaptor->Nadapt, &adaptor->Nadapt,… in DMAdaptorSetFromOptions()
507 …r", "Set r such that N_adapt = r^dim N_orig", "DMAdaptor", adaptor->refinementFactor, &adaptor->re… in DMAdaptorSetFromOptions()
513 …PetscCheck(setupFunc, PetscObjectComm((PetscObject)adaptor), PETSC_ERR_ARG_WRONG, "Could not locat… in DMAdaptorSetFromOptions()
514 PetscCall(DMAdaptorSetMixedSetupFunction(adaptor, setupFunc)); in DMAdaptorSetFromOptions()
516 PetscCall(DMAdaptorMonitorSetFromOptions(adaptor, "-adaptor_monitor_size", "size", adaptor)); in DMAdaptorSetFromOptions()
517 PetscCall(DMAdaptorMonitorSetFromOptions(adaptor, "-adaptor_monitor_error", "error", adaptor)); in DMAdaptorSetFromOptions()
519 PetscCall(VecTaggerSetFromOptions(adaptor->refineTag)); in DMAdaptorSetFromOptions()
520 PetscCall(VecTaggerSetFromOptions(adaptor->coarsenTag)); in DMAdaptorSetFromOptions()
537 PetscErrorCode DMAdaptorView(DMAdaptor adaptor, PetscViewer viewer) in DMAdaptorView() argument
540 PetscCall(PetscObjectPrintClassNamePrefixType((PetscObject)adaptor, viewer)); in DMAdaptorView()
542 …PetscCall(PetscViewerASCIIPrintf(viewer, " sequence length: %" PetscInt_FMT "\n", adaptor->numSeq… in DMAdaptorView()
543 PetscCall(VecTaggerView(adaptor->refineTag, viewer)); in DMAdaptorView()
544 PetscCall(VecTaggerView(adaptor->coarsenTag, viewer)); in DMAdaptorView()
563 PetscErrorCode DMAdaptorGetSolver(DMAdaptor adaptor, SNES *snes) in DMAdaptorGetSolver() argument
566 PetscValidHeaderSpecific(adaptor, DMADAPTOR_CLASSID, 1); in DMAdaptorGetSolver()
568 *snes = adaptor->snes; in DMAdaptorGetSolver()
585 PetscErrorCode DMAdaptorSetSolver(DMAdaptor adaptor, SNES snes) in DMAdaptorSetSolver() argument
588 PetscValidHeaderSpecific(adaptor, DMADAPTOR_CLASSID, 1); in DMAdaptorSetSolver()
590 adaptor->snes = snes; in DMAdaptorSetSolver()
591 PetscCall(SNESGetDM(adaptor->snes, &adaptor->idm)); in DMAdaptorSetSolver()
610 PetscErrorCode DMAdaptorGetSequenceLength(DMAdaptor adaptor, PetscInt *num) in DMAdaptorGetSequenceLength() argument
613 PetscValidHeaderSpecific(adaptor, DMADAPTOR_CLASSID, 1); in DMAdaptorGetSequenceLength()
615 *num = adaptor->numSeq; in DMAdaptorGetSequenceLength()
632 PetscErrorCode DMAdaptorSetSequenceLength(DMAdaptor adaptor, PetscInt num) in DMAdaptorSetSequenceLength() argument
635 PetscValidHeaderSpecific(adaptor, DMADAPTOR_CLASSID, 1); in DMAdaptorSetSequenceLength()
636 adaptor->numSeq = num; in DMAdaptorSetSequenceLength()
640 static PetscErrorCode DMAdaptorTransferSolution_Exact_Private(DMAdaptor adaptor, DM dm, Vec u, DM a… in DMAdaptorTransferSolution_Exact_Private() argument
643 …PetscCall(DMProjectFunction(adm, 0.0, adaptor->exactSol, adaptor->exactCtx, INSERT_ALL_VALUES, au)… in DMAdaptorTransferSolution_Exact_Private()
659 PetscErrorCode DMAdaptorSetUp(DMAdaptor adaptor) in DMAdaptorSetUp() argument
665 PetscCall(DMGetDS(adaptor->idm, &prob)); in DMAdaptorSetUp()
666 PetscCall(VecTaggerSetUp(adaptor->refineTag)); in DMAdaptorSetUp()
667 PetscCall(VecTaggerSetUp(adaptor->coarsenTag)); in DMAdaptorSetUp()
669 PetscCall(PetscMalloc2(Nf, &adaptor->exactSol, Nf, &adaptor->exactCtx)); in DMAdaptorSetUp()
671 PetscCall(PetscDSGetExactSolution(prob, f, &adaptor->exactSol[f], &adaptor->exactCtx[f])); in DMAdaptorSetUp()
673 …if (adaptor->exactSol[0]) PetscCall(DMAdaptorSetTransferFunction(adaptor, DMAdaptorTransferSolutio… in DMAdaptorSetUp()
675 PetscTryTypeMethod(adaptor, setup); in DMAdaptorSetUp()
679 PetscErrorCode DMAdaptorGetTransferFunction(DMAdaptor adaptor, PetscErrorCode (**tfunc)(DMAdaptor, … in DMAdaptorGetTransferFunction() argument
682 *tfunc = adaptor->ops->transfersolution; in DMAdaptorGetTransferFunction()
686 PetscErrorCode DMAdaptorSetTransferFunction(DMAdaptor adaptor, PetscErrorCode (*tfunc)(DMAdaptor, D… in DMAdaptorSetTransferFunction() argument
689 adaptor->ops->transfersolution = tfunc; in DMAdaptorSetTransferFunction()
693 static PetscErrorCode DMAdaptorPreAdapt(DMAdaptor adaptor, Vec locX) in DMAdaptorPreAdapt() argument
702 PetscCall(DMConvert(adaptor->idm, DMPLEX, &plex)); in DMAdaptorPreAdapt()
703 PetscCall(DMGetDS(adaptor->idm, &prob)); in DMAdaptorPreAdapt()
706 PetscCall(DMIsForest(adaptor->idm, &isForest)); in DMAdaptorPreAdapt()
707 if (adaptor->adaptCriterion == DM_ADAPTATION_NONE) { in DMAdaptorPreAdapt()
708 if (isForest) adaptor->adaptCriterion = DM_ADAPTATION_LABEL; in DMAdaptorPreAdapt()
711 adaptor->adaptCriterion = DM_ADAPTATION_METRIC; in DMAdaptorPreAdapt()
715 adaptor->adaptCriterion = DM_ADAPTATION_METRIC; in DMAdaptorPreAdapt()
719 adaptor->adaptCriterion = DM_ADAPTATION_METRIC; in DMAdaptorPreAdapt()
723 adaptor->adaptCriterion = DM_ADAPTATION_LABEL; in DMAdaptorPreAdapt()
728 adaptor->femType = PETSC_FALSE; in DMAdaptorPreAdapt()
730 adaptor->femType = PETSC_TRUE; in DMAdaptorPreAdapt()
732 if (adaptor->femType) { in DMAdaptorPreAdapt()
734 …PetscCall(DMPlexInsertBoundaryValues(plex, PETSC_TRUE, locX, 0.0, adaptor->faceGeom, adaptor->cell… in DMAdaptorPreAdapt()
740 PetscCall(PetscFVGetComputeGradients(fvm, &adaptor->computeGradient)); in DMAdaptorPreAdapt()
743 PetscCall(PetscFVGetLimiter(fvm, &adaptor->limiter)); in DMAdaptorPreAdapt()
744 PetscCall(PetscObjectReference((PetscObject)adaptor->limiter)); in DMAdaptorPreAdapt()
749 … PetscCall(DMPlexGetDataFVM(plex, fvm, &adaptor->cellGeom, &adaptor->faceGeom, &adaptor->gradDM)); in DMAdaptorPreAdapt()
750 PetscCall(VecGetDM(adaptor->cellGeom, &adaptor->cellDM)); in DMAdaptorPreAdapt()
751 PetscCall(VecGetArrayRead(adaptor->cellGeom, &adaptor->cellGeomArray)); in DMAdaptorPreAdapt()
753 …PetscCall(DMPlexInsertBoundaryValues(plex, PETSC_TRUE, locX, 0.0, adaptor->faceGeom, adaptor->cell… in DMAdaptorPreAdapt()
755 PetscCall(DMCreateGlobalVector(adaptor->gradDM, &grad)); in DMAdaptorPreAdapt()
757 PetscCall(DMGetLocalVector(adaptor->gradDM, &adaptor->cellGrad)); in DMAdaptorPreAdapt()
758 PetscCall(DMGlobalToLocalBegin(adaptor->gradDM, grad, INSERT_VALUES, adaptor->cellGrad)); in DMAdaptorPreAdapt()
759 PetscCall(DMGlobalToLocalEnd(adaptor->gradDM, grad, INSERT_VALUES, adaptor->cellGrad)); in DMAdaptorPreAdapt()
761 PetscCall(VecGetArrayRead(adaptor->cellGrad, &adaptor->cellGradArray)); in DMAdaptorPreAdapt()
767 static PetscErrorCode DMAdaptorTransferSolution(DMAdaptor adaptor, DM dm, Vec x, DM adm, Vec ax) in DMAdaptorTransferSolution() argument
775 …if (adaptor->ops->transfersolution) PetscUseTypeMethod(adaptor, transfersolution, dm, x, adm, ax, … in DMAdaptorTransferSolution()
777 switch (adaptor->adaptCriterion) { in DMAdaptorTransferSolution()
789 …(PetscObjectComm((PetscObject)adaptor), PETSC_ERR_SUP, "No built-in projection for this adaptation… in DMAdaptorTransferSolution()
795 static PetscErrorCode DMAdaptorPostAdapt(DMAdaptor adaptor) in DMAdaptorPostAdapt() argument
802 PetscCall(DMGetDS(adaptor->idm, &prob)); in DMAdaptorPostAdapt()
808 PetscCall(PetscFVSetComputeGradients(fvm, adaptor->computeGradient)); in DMAdaptorPostAdapt()
810 PetscCall(PetscFVSetLimiter(fvm, adaptor->limiter)); in DMAdaptorPostAdapt()
812 PetscCall(VecRestoreArrayRead(adaptor->cellGeom, &adaptor->cellGeomArray)); in DMAdaptorPostAdapt()
813 PetscCall(VecRestoreArrayRead(adaptor->cellGrad, &adaptor->cellGradArray)); in DMAdaptorPostAdapt()
814 PetscCall(DMRestoreLocalVector(adaptor->gradDM, &adaptor->cellGrad)); in DMAdaptorPostAdapt()
839 static PetscErrorCode DMAdaptorComputeCellErrorIndicator_Gradient(DMAdaptor adaptor, PetscInt dim, … in DMAdaptorComputeCellErrorIndicator_Gradient() argument
852 static PetscErrorCode DMAdaptorComputeErrorIndicator_Gradient(DMAdaptor adaptor, Vec locX, Vec errV… in DMAdaptorComputeErrorIndicator_Gradient() argument
893 …PetscCall(DMPlexPointLocalRead(adaptor->gradDM, cell, adaptor->cellGradArray, (void *)&pointGrad)); in DMAdaptorComputeErrorIndicator_Gradient()
894 PetscCall(DMPlexPointLocalRead(adaptor->cellDM, cell, adaptor->cellGeomArray, &cg)); in DMAdaptorComputeErrorIndicator_Gradient()
895 …PetscUseTypeMethod(adaptor, computecellerrorindicator, dim, Nc, pointSol, pointGrad, cg, &errInd, … in DMAdaptorComputeErrorIndicator_Gradient()
941 …PetscUseTypeMethod(adaptor, computecellerrorindicator, dim, Nc, field, gradient, &cg, &errInd, ctx… in DMAdaptorComputeErrorIndicator_Gradient()
952 …PetscCall(PetscGlobalMinMaxReal(PetscObjectComm((PetscObject)adaptor), minMaxInd, minMaxIndGlobal)… in DMAdaptorComputeErrorIndicator_Gradient()
953 …PetscCall(PetscInfo(adaptor, "DMAdaptor: error indicator range (%g, %g)\n", (double)minMaxIndGloba… in DMAdaptorComputeErrorIndicator_Gradient()
957 static PetscErrorCode DMAdaptorComputeErrorIndicator_Flux(DMAdaptor adaptor, Vec lu, Vec errVec) in DMAdaptorComputeErrorIndicator_Flux() argument
972 PetscCall(PetscObjectGetOptionsPrefix((PetscObject)adaptor, &prefix)); in DMAdaptorComputeErrorIndicator_Flux()
976 PetscTryTypeMethod(adaptor, mixedsetup, mdm); in DMAdaptorComputeErrorIndicator_Flux()
985 PetscCall(VecViewFromOptions(mu, (PetscObject)adaptor, "-adapt_mixed_sol_vec_view")); in DMAdaptorComputeErrorIndicator_Flux()
1020 PetscErrorCode DMAdaptorMonitor(DMAdaptor adaptor, PetscInt it, DM odm, DM adm, PetscInt Nf, PetscR… in DMAdaptorMonitor() argument
1023 …PetscInt i = 0; i < adaptor->numbermonitors; ++i) PetscCall((*adaptor->monitor[i])(adaptor, it, od… in DMAdaptorMonitor()
1053 PetscErrorCode DMAdaptorMonitorSize(DMAdaptor adaptor, PetscInt n, DM odm, DM adm, PetscInt Nf, Pet… in DMAdaptorMonitorSize() argument
1063 PetscCall(PetscObjectGetTabLevel((PetscObject)adaptor, &tablevel)); in DMAdaptorMonitorSize()
1064 PetscCall(PetscObjectGetOptionsPrefix((PetscObject)adaptor, &prefix)); in DMAdaptorMonitorSize()
1065 PetscCallMPI(MPI_Comm_rank(PetscObjectComm((PetscObject)adaptor), &rank)); in DMAdaptorMonitorSize()
1104 PetscErrorCode DMAdaptorMonitorError(DMAdaptor adaptor, PetscInt n, DM odm, DM adm, PetscInt Nf, Pe… in DMAdaptorMonitorError() argument
1113 PetscCall(PetscObjectGetTabLevel((PetscObject)adaptor, &tablevel)); in DMAdaptorMonitorError()
1114 PetscCall(PetscObjectGetOptionsPrefix((PetscObject)adaptor, &prefix)); in DMAdaptorMonitorError()
1160 PetscErrorCode DMAdaptorMonitorErrorDraw(DMAdaptor adaptor, PetscInt n, DM odm, DM adm, PetscInt Nf… in DMAdaptorMonitorErrorDraw() argument
1169 PetscCall(PetscObjectCompose((PetscObject)error, "__Vec_bc_zero__", (PetscObject)adaptor)); in DMAdaptorMonitorErrorDraw()
1195 DMAdaptor adaptor = (DMAdaptor)ctx; in DMAdaptorMonitorErrorDrawLGCreate() local
1200 PetscCall(DMGetNumFields(adaptor->idm, &Nf)); in DMAdaptorMonitorErrorDrawLGCreate()
1207 PetscCall(DMGetField(adaptor->idm, f, NULL, &disc)); in DMAdaptorMonitorErrorDrawLGCreate()
1250 PetscErrorCode DMAdaptorMonitorErrorDrawLG(DMAdaptor adaptor, PetscInt n, DM odm, DM adm, PetscInt … in DMAdaptorMonitorErrorDrawLG() argument
1311 static PetscErrorCode DMAdaptorAdapt_Sequence_Private(DMAdaptor adaptor, Vec inx, PetscBool doSolve… in DMAdaptorAdapt_Sequence_Private() argument
1315 PetscInt numAdapt = adaptor->numSeq, adaptIter; in DMAdaptorAdapt_Sequence_Private()
1321 PetscCall(DMViewFromOptions(adaptor->idm, NULL, "-dm_adapt_pre_view")); in DMAdaptorAdapt_Sequence_Private()
1323 PetscCall(PetscObjectGetComm((PetscObject)adaptor, &comm)); in DMAdaptorAdapt_Sequence_Private()
1324 PetscCall(DMGetDimension(adaptor->idm, &dim)); in DMAdaptorAdapt_Sequence_Private()
1325 PetscCall(DMGetCoordinateDim(adaptor->idm, &coordDim)); in DMAdaptorAdapt_Sequence_Private()
1326 PetscCall(DMGetApplicationContext(adaptor->idm, &ctx)); in DMAdaptorAdapt_Sequence_Private()
1327 PetscCall(DMGetDS(adaptor->idm, &ds)); in DMAdaptorAdapt_Sequence_Private()
1336 DM dm = adaptIter ? *adm : adaptor->idm, odm; in DMAdaptorAdapt_Sequence_Private()
1341 PetscCall(DMAdaptorPreAdapt(adaptor, locX)); in DMAdaptorAdapt_Sequence_Private()
1345 PetscCall(DMAdaptorGetSolver(adaptor, &snes)); in DMAdaptorAdapt_Sequence_Private()
1350 …PetscCall(VecViewFromOptions(adaptIter ? *ax : x, (PetscObject)adaptor, "-adapt_primal_sol_vec_vie… in DMAdaptorAdapt_Sequence_Private()
1351 switch (adaptor->adaptCriterion) { in DMAdaptorAdapt_Sequence_Private()
1356 PetscCall(DMAdaptorMonitor(adaptor, adaptIter, dm, dm, 1, &errorNorm, NULL)); in DMAdaptorAdapt_Sequence_Private()
1388 PetscUseTypeMethod(adaptor, computeerrorindicator, locX, error); in DMAdaptorAdapt_Sequence_Private()
1389 PetscCall(VecViewFromOptions(error, (PetscObject)adaptor, "-adapt_error_vec_view")); in DMAdaptorAdapt_Sequence_Private()
1396 PetscCall(VecTaggerComputeIS(adaptor->refineTag, error, &refineIS, NULL)); in DMAdaptorAdapt_Sequence_Private()
1397 PetscCall(VecTaggerComputeIS(adaptor->coarsenTag, error, &coarsenIS, NULL)); in DMAdaptorAdapt_Sequence_Private()
1398 PetscCall(ISViewFromOptions(refineIS, (PetscObject)adaptor->refineTag, "-is_view")); in DMAdaptorAdapt_Sequence_Private()
1399 PetscCall(ISViewFromOptions(coarsenIS, (PetscObject)adaptor->coarsenTag, "-is_view")); in DMAdaptorAdapt_Sequence_Private()
1402 …PetscCall(PetscInfo(adaptor, "DMAdaptor: numRefine %" PetscInt_FMT ", numCoarsen %" PetscInt_FMT "… in DMAdaptorAdapt_Sequence_Private()
1413 PetscCall(PetscOptionsHasName(NULL, adaptor->hdr.prefix, "-adapt_vec_view", &flg)); in DMAdaptorAdapt_Sequence_Private()
1418 PetscCall(VecViewFromOptions(ref, (PetscObject)adaptor, "-adapt_vec_view")); in DMAdaptorAdapt_Sequence_Private()
1428 PetscCall(DMAdaptorMonitor(adaptor, adaptIter, dm, odm, 1, &errorNorm, error)); in DMAdaptorAdapt_Sequence_Private()
1431 PetscCall(DMAdaptorMonitor(adaptor, adaptIter, dm, dm, 1, &errorNorm, error)); in DMAdaptorAdapt_Sequence_Private()
1496 …N = adaptor->Nadapt >= 0 ? adaptor->Nadapt : PetscPowRealInt(adaptor->refinementFactor, dim) * ((P… in DMAdaptorAdapt_Sequence_Private()
1517 PetscCall(DMAdaptorMonitor(adaptor, adaptIter, dm, odm, 1, &errorNorm, NULL)); in DMAdaptorAdapt_Sequence_Private()
1524 SETERRQ(comm, PETSC_ERR_ARG_WRONG, "Invalid adaptation type: %d", adaptor->adaptCriterion); in DMAdaptorAdapt_Sequence_Private()
1526 PetscCall(DMAdaptorPostAdapt(adaptor)); in DMAdaptorAdapt_Sequence_Private()
1535 PetscCall(SNESReset(adaptor->snes)); in DMAdaptorAdapt_Sequence_Private()
1536 PetscCall(SNESSetDM(adaptor->snes, odm)); in DMAdaptorAdapt_Sequence_Private()
1537 PetscCall(DMAdaptorSetSolver(adaptor, adaptor->snes)); in DMAdaptorAdapt_Sequence_Private()
1539 PetscCall(SNESSetFromOptions(adaptor->snes)); in DMAdaptorAdapt_Sequence_Private()
1546 PetscCall(DMAdaptorTransferSolution(adaptor, dm, x, odm, ox)); in DMAdaptorAdapt_Sequence_Private()
1593 PetscErrorCode DMAdaptorAdapt(DMAdaptor adaptor, Vec x, DMAdaptationStrategy strategy, DM *adm, Vec… in DMAdaptorAdapt() argument
1598 PetscCall(DMAdaptorAdapt_Sequence_Private(adaptor, x, PETSC_FALSE, adm, ax)); in DMAdaptorAdapt()
1601 PetscCall(DMAdaptorAdapt_Sequence_Private(adaptor, x, PETSC_TRUE, adm, ax)); in DMAdaptorAdapt()
1604 …SETERRQ(PetscObjectComm((PetscObject)adaptor), PETSC_ERR_ARG_WRONG, "Unrecognized adaptation strat… in DMAdaptorAdapt()
1624 PetscErrorCode DMAdaptorGetMixedSetupFunction(DMAdaptor adaptor, PetscErrorCode (**setupFunc)(DMAda… in DMAdaptorGetMixedSetupFunction() argument
1627 PetscValidHeaderSpecific(adaptor, DMADAPTOR_CLASSID, 1); in DMAdaptorGetMixedSetupFunction()
1629 *setupFunc = adaptor->ops->mixedsetup; in DMAdaptorGetMixedSetupFunction()
1646 PetscErrorCode DMAdaptorSetMixedSetupFunction(DMAdaptor adaptor, PetscErrorCode (*setupFunc)(DMAdap… in DMAdaptorSetMixedSetupFunction() argument
1649 PetscValidHeaderSpecific(adaptor, DMADAPTOR_CLASSID, 1); in DMAdaptorSetMixedSetupFunction()
1651 adaptor->ops->mixedsetup = setupFunc; in DMAdaptorSetMixedSetupFunction()
1670 PetscErrorCode DMAdaptorGetCriterion(DMAdaptor adaptor, DMAdaptationCriterion *criterion) in DMAdaptorGetCriterion() argument
1673 PetscValidHeaderSpecific(adaptor, DMADAPTOR_CLASSID, 1); in DMAdaptorGetCriterion()
1675 *criterion = adaptor->adaptCriterion; in DMAdaptorGetCriterion()
1692 PetscErrorCode DMAdaptorSetCriterion(DMAdaptor adaptor, DMAdaptationCriterion criterion) in DMAdaptorSetCriterion() argument
1695 PetscValidHeaderSpecific(adaptor, DMADAPTOR_CLASSID, 1); in DMAdaptorSetCriterion()
1696 adaptor->adaptCriterion = criterion; in DMAdaptorSetCriterion()
1700 static PetscErrorCode DMAdaptorInitialize_Gradient(DMAdaptor adaptor) in DMAdaptorInitialize_Gradient() argument
1703 adaptor->ops->computeerrorindicator = DMAdaptorComputeErrorIndicator_Gradient; in DMAdaptorInitialize_Gradient()
1704 adaptor->ops->computecellerrorindicator = DMAdaptorComputeCellErrorIndicator_Gradient; in DMAdaptorInitialize_Gradient()
1708 PETSC_EXTERN PetscErrorCode DMAdaptorCreate_Gradient(DMAdaptor adaptor) in DMAdaptorCreate_Gradient() argument
1711 PetscValidHeaderSpecific(adaptor, DMADAPTOR_CLASSID, 1); in DMAdaptorCreate_Gradient()
1712 adaptor->data = NULL; in DMAdaptorCreate_Gradient()
1714 PetscCall(DMAdaptorInitialize_Gradient(adaptor)); in DMAdaptorCreate_Gradient()
1718 static PetscErrorCode DMAdaptorInitialize_Flux(DMAdaptor adaptor) in DMAdaptorInitialize_Flux() argument
1721 adaptor->ops->computeerrorindicator = DMAdaptorComputeErrorIndicator_Flux; in DMAdaptorInitialize_Flux()
1725 PETSC_EXTERN PetscErrorCode DMAdaptorCreate_Flux(DMAdaptor adaptor) in DMAdaptorCreate_Flux() argument
1728 PetscValidHeaderSpecific(adaptor, DMADAPTOR_CLASSID, 1); in DMAdaptorCreate_Flux()
1729 adaptor->data = NULL; in DMAdaptorCreate_Flux()
1731 PetscCall(DMAdaptorInitialize_Flux(adaptor)); in DMAdaptorCreate_Flux()