Lines Matching refs:subdm
1972 static PetscErrorCode GetSurfaceSide_Static(DM dm, DM subdm, PetscInt numSubpoints, const PetscInt … in GetSurfaceSide_Static() argument
1987 if (subdm) { in GetSurfaceSide_Static()
1993 PetscCall(DMPlexGetConeSize(subdm, subpoint, &subconeSize)); in GetSurfaceSide_Static()
1994 PetscCall(DMPlexGetCone(subdm, subpoint, &subcone)); in GetSurfaceSide_Static()
1995 PetscCall(DMPlexGetConeOrientation(subdm, subpoint, &subornt)); in GetSurfaceSide_Static()
2150 …e(DM dm, DMLabel label, DMLabel blabel, PetscInt bvalue, PetscBool flip, PetscBool split, DM subdm) in DMPlexLabelCohesiveComplete() argument
2162 if (subdm) { in DMPlexLabelCohesiveComplete()
2163 PetscCall(DMPlexGetSubpointIS(subdm, &subpointIS)); in DMPlexLabelCohesiveComplete()
2197 … PetscCall(GetSurfaceSide_Static(dm, subdm, numSubpoints, subpoints, support[s], points[p], &pos)); in DMPlexLabelCohesiveComplete()
2334 static PetscErrorCode DMPlexCheckValidSubmesh_Private(DM dm, DMLabel label, DM subdm) in DMPlexCheckValidSubmesh_Private() argument
2343 PetscCall(DMPlexGetSubpointIS(subdm, &subpointIS)); in DMPlexCheckValidSubmesh_Private()
2345 PetscCall(DMPlexGetHeightStratum(subdm, 0, &cStart, &cEnd)); in DMPlexCheckValidSubmesh_Private()
2368 PetscCall(DMDestroy(&subdm)); in DMPlexCheckValidSubmesh_Private()
2466 …abel vertexLabel, PetscInt value, DMLabel subpointMap, PetscInt *numFaces, PetscInt *nFV, DM subdm) in DMPlexMarkSubmesh_Uninterpolated() argument
2539 …texLabel, PetscInt value, PetscBool markedFaces, PetscBool addCells, DMLabel subpointMap, DM subdm) in DMPlexMarkSubmesh_Interpolated() argument
2624 …cInt value, DMLabel subpointMap, PetscInt *numFaces, PetscInt *nFV, PetscInt *subCells[], DM subdm) in DMPlexMarkCohesiveSubmesh_Uninterpolated() argument
2681 …rkCohesiveSubmesh_Interpolated(DM dm, DMLabel label, PetscInt value, DMLabel subpointMap, DM subdm) in DMPlexMarkCohesiveSubmesh_Interpolated() argument
3089 static PetscErrorCode DMPlexInsertFace_Internal(DM dm, DM subdm, PetscInt numFaceVertices, const Pe… in DMPlexInsertFace_Internal() argument
3092 DM_Plex *submesh = (DM_Plex *)subdm->data; in DMPlexInsertFace_Internal()
3098 PetscCall(DMPlexGetConeSize(subdm, subcell, &coneSize)); in DMPlexInsertFace_Internal()
3102 PetscCall(DMPlexGetJoin(subdm, numFaceVertices, subfaceVertices, &numFaces, &faces)); in DMPlexInsertFace_Internal()
3108 PetscCall(DMGetWorkArray(subdm, 1, MPIU_INT, (void **)&faces)); in DMPlexInsertFace_Internal()
3134 PetscCall(DMPlexSetCone(subdm, subcell, faces)); in DMPlexInsertFace_Internal()
3139 …PetscCall(DMGetWorkArray(subdm, 4 * numFaceVertices * sizeof(PetscInt), MPIU_INT, &orientedVertice… in DMPlexInsertFace_Internal()
3155 PetscCall(DMPlexSetCone(subdm, *newFacePoint, orientedSubVertices)); in DMPlexInsertFace_Internal()
3156 PetscCall(DMPlexSetCone(subdm, subcell, newFacePoint)); in DMPlexInsertFace_Internal()
3157 …PetscCall(DMRestoreWorkArray(subdm, 4 * numFaceVertices * sizeof(PetscInt), MPIU_INT, &orientedVer… in DMPlexInsertFace_Internal()
3161 PetscCall(DMPlexRestoreJoin(subdm, numFaceVertices, subfaceVertices, &numFaces, &faces)); in DMPlexInsertFace_Internal()
3163 PetscCall(DMRestoreWorkArray(subdm, 1, MPIU_INT, (void **)&faces)); in DMPlexInsertFace_Internal()
3168 …cErrorCode DMPlexCreateSubmesh_Uninterpolated(DM dm, DMLabel vertexLabel, PetscInt value, DM subdm) in DMPlexCreateSubmesh_Uninterpolated() argument
3182 PetscCall(DMPlexSetSubpointMap(subdm, subpointMap)); in DMPlexCreateSubmesh_Uninterpolated()
3183 …(DMPlexMarkSubmesh_Uninterpolated(dm, vertexLabel, value, subpointMap, &numSubFaces, &nFV, subdm)); in DMPlexCreateSubmesh_Uninterpolated()
3187 PetscCall(DMPlexSetChart(subdm, 0, numSubCells + numSubFaces + numSubVertices)); in DMPlexCreateSubmesh_Uninterpolated()
3188 PetscCall(DMPlexSetVTKCellHeight(subdm, 1)); in DMPlexCreateSubmesh_Uninterpolated()
3197 for (c = 0; c < numSubCells; ++c) PetscCall(DMPlexSetConeSize(subdm, c, 1)); in DMPlexCreateSubmesh_Uninterpolated()
3198 …for (f = firstSubFace; f < firstSubFace + numSubFaces; ++f) PetscCall(DMPlexSetConeSize(subdm, f, … in DMPlexCreateSubmesh_Uninterpolated()
3199 PetscCall(DMSetUp(subdm)); in DMPlexCreateSubmesh_Uninterpolated()
3204 PetscCall(DMGetWorkArray(subdm, maxConeSize, MPIU_INT, (void **)&subface)); in DMPlexCreateSubmesh_Uninterpolated()
3227 …if (faceSize == nFV) PetscCall(DMPlexInsertFace_Internal(dm, subdm, faceSize, closure, subface, nu… in DMPlexCreateSubmesh_Uninterpolated()
3230 PetscCall(DMRestoreWorkArray(subdm, maxConeSize, MPIU_INT, (void **)&subface)); in DMPlexCreateSubmesh_Uninterpolated()
3231 PetscCall(DMPlexSymmetrize(subdm)); in DMPlexCreateSubmesh_Uninterpolated()
3232 PetscCall(DMPlexStratify(subdm)); in DMPlexCreateSubmesh_Uninterpolated()
3243 PetscCall(DMGetCoordinateSection(subdm, &subCoordSection)); in DMPlexCreateSubmesh_Uninterpolated()
3282 PetscCall(DMSetCoordinatesLocal(subdm, subCoordinates)); in DMPlexCreateSubmesh_Uninterpolated()
3315 …nst PetscInt numSubPoints[], const PetscInt *subpoints[], const PetscInt firstSubPoint[], DM subdm) in DMPlexFilterLabels_Internal() argument
3339 PetscCall(DMCreateLabel(subdm, lname)); in DMPlexFilterLabels_Internal()
3341 PetscCall(DMGetLabel(subdm, lname, &newlabel)); in DMPlexFilterLabels_Internal()
3360 PetscCall(DMPlexGetDepth(subdm, &subdepth)); in DMPlexFilterLabels_Internal()
3374 …ight, PetscBool ignoreLabelHalo, PetscBool sanitizeSubmesh, PetscSF *ownershipTransferSF, DM subdm) in DMPlexCreateSubmeshGeneric_Interpolated() argument
3389 PetscCall(DMPlexSetSubpointMap(subdm, subpointMap)); in DMPlexCreateSubmeshGeneric_Interpolated()
3391 …sCohesive) PetscCall(DMPlexMarkCohesiveSubmesh_Interpolated(dm, label, value, subpointMap, subdm)); in DMPlexCreateSubmeshGeneric_Interpolated()
3392 …all(DMPlexMarkSubmesh_Interpolated(dm, label, value, markedFaces, PETSC_TRUE, subpointMap, subdm)); in DMPlexCreateSubmeshGeneric_Interpolated()
3449 PetscCall(DMGetDimension(subdm, &sdim)); in DMPlexCreateSubmeshGeneric_Interpolated()
3459 PetscCall(DMSetDimension(subdm, sdim)); in DMPlexCreateSubmeshGeneric_Interpolated()
3460 PetscCall(DMSetCoordinateDim(subdm, cdim)); in DMPlexCreateSubmeshGeneric_Interpolated()
3462 PetscCall(DMPlexSetChart(subdm, 0, totSubPoints)); in DMPlexCreateSubmeshGeneric_Interpolated()
3463 PetscCall(DMPlexSetVTKCellHeight(subdm, cellHeight)); in DMPlexCreateSubmeshGeneric_Interpolated()
3474 PetscCall(DMCreateLabel(subdm, "celltype")); in DMPlexCreateSubmeshGeneric_Interpolated()
3491 PetscCall(DMPlexSetConeSize(subdm, subpoint, coneSizeNew)); in DMPlexCreateSubmeshGeneric_Interpolated()
3492 PetscCall(DMPlexSetCellType(subdm, subpoint, DM_POLYTOPE_FV_GHOST)); in DMPlexCreateSubmeshGeneric_Interpolated()
3496 PetscCall(DMPlexSetConeSize(subdm, subpoint, coneSize)); in DMPlexCreateSubmeshGeneric_Interpolated()
3498 PetscCall(DMPlexSetCellType(subdm, subpoint, ct)); in DMPlexCreateSubmeshGeneric_Interpolated()
3503 PetscCall(DMSetUp(subdm)); in DMPlexCreateSubmeshGeneric_Interpolated()
3543 PetscCall(DMPlexGetConeSize(subdm, subpoint, &subconeSize)); in DMPlexCreateSubmeshGeneric_Interpolated()
3555 PetscCall(DMPlexSetCone(subdm, subpoint, coneNew)); in DMPlexCreateSubmeshGeneric_Interpolated()
3556 PetscCall(DMPlexSetConeOrientation(subdm, subpoint, orntNew)); in DMPlexCreateSubmeshGeneric_Interpolated()
3557 if (fornt < 0) PetscCall(DMPlexOrientPoint(subdm, subpoint, fornt)); in DMPlexCreateSubmeshGeneric_Interpolated()
3561 PetscCall(DMPlexSymmetrize(subdm)); in DMPlexCreateSubmeshGeneric_Interpolated()
3562 PetscCall(DMPlexStratify(subdm)); in DMPlexCreateSubmeshGeneric_Interpolated()
3576 PetscCall(DMGetCoordinateDM(subdm, &subCoordDM)); in DMPlexCreateSubmeshGeneric_Interpolated()
3583 PetscCall(DMSetSparseLocalize(subdm, sparseLocalize)); in DMPlexCreateSubmeshGeneric_Interpolated()
3585 PetscCall(DMGetCoordinateDM(subdm, &subCoordDM)); in DMPlexCreateSubmeshGeneric_Interpolated()
3588 PetscUseTypeMethod(subdm, createcellcoordinatedm, &subCoordDM); in DMPlexCreateSubmeshGeneric_Interpolated()
3589 PetscCall(DMSetCellCoordinateDM(subdm, subCoordDM)); in DMPlexCreateSubmeshGeneric_Interpolated()
3593 PetscCall(DMGetCellCoordinateDM(subdm, &subCoordDM)); in DMPlexCreateSubmeshGeneric_Interpolated()
3613 PetscCall(DMPlexCreateCoordinateSpace(subdm, degree, localized, PETSC_FALSE)); in DMPlexCreateSubmeshGeneric_Interpolated()
3619 PetscCall(DMGetCoordinateSection(subdm, &subCoordSection)); in DMPlexCreateSubmeshGeneric_Interpolated()
3623 PetscCall(DMGetCellCoordinateSection(subdm, &subCoordSection)); in DMPlexCreateSubmeshGeneric_Interpolated()
3692 PetscCall(DMSetCoordinatesLocal(subdm, subCoordinates)); in DMPlexCreateSubmeshGeneric_Interpolated()
3695 PetscCall(DMSetCellCoordinatesLocal(subdm, subCoordinates)); in DMPlexCreateSubmeshGeneric_Interpolated()
3705 …PI(MPI_Comm_compare(PetscObjectComm((PetscObject)dm), PetscObjectComm((PetscObject)subdm), &flag)); in DMPlexCreateSubmeshGeneric_Interpolated()
3719 PetscCall(DMGetPointSF(subdm, &sfPointSub)); in DMPlexCreateSubmeshGeneric_Interpolated()
3721 PetscCall(DMPlexGetChart(subdm, NULL, &numSubroots)); in DMPlexCreateSubmeshGeneric_Interpolated()
3722 PetscCall(DMPlexGetSubpointIS(subdm, &subpIS)); in DMPlexCreateSubmeshGeneric_Interpolated()
3762 PetscCall(DMGetDimension(subdm, &sdim)); in DMPlexCreateSubmeshGeneric_Interpolated()
3901 PetscCall(DMPlexFilterLabels_Internal(dm, numSubPoints, subpoints, firstSubPoint, subdm)); in DMPlexCreateSubmeshGeneric_Interpolated()
3911 …teSubmesh_Interpolated(DM dm, DMLabel vertexLabel, PetscInt value, PetscBool markedFaces, DM subdm) in DMPlexCreateSubmesh_Interpolated() argument
3914 …lated(dm, vertexLabel, value, markedFaces, PETSC_FALSE, 1, PETSC_FALSE, PETSC_FALSE, NULL, subdm)); in DMPlexCreateSubmesh_Interpolated()
3937 …e DMPlexCreateSubmesh(DM dm, DMLabel vertexLabel, PetscInt value, PetscBool markedFaces, DM *subdm) in DMPlexCreateSubmesh() argument
3944 PetscAssertPointer(subdm, 5); in DMPlexCreateSubmesh()
3946 PetscCall(DMCreate(PetscObjectComm((PetscObject)dm), subdm)); in DMPlexCreateSubmesh()
3947 PetscCall(DMSetType(*subdm, DMPLEX)); in DMPlexCreateSubmesh()
3948 PetscCall(DMSetDimension(*subdm, dim - 1)); in DMPlexCreateSubmesh()
3950 PetscCall(DMSetCoordinateDim(*subdm, cdim)); in DMPlexCreateSubmesh()
3954 PetscCall(DMPlexCreateSubmesh_Interpolated(dm, vertexLabel, value, markedFaces, *subdm)); in DMPlexCreateSubmesh()
3956 PetscCall(DMPlexCreateSubmesh_Uninterpolated(dm, vertexLabel, value, *subdm)); in DMPlexCreateSubmesh()
3958 PetscCall(DMPlexCopy_Internal(dm, PETSC_TRUE, PETSC_TRUE, *subdm)); in DMPlexCreateSubmesh()
3962 …eSubmesh_Uninterpolated(DM dm, PetscBool hasLagrange, const char label[], PetscInt value, DM subdm) in DMPlexCreateCohesiveSubmesh_Uninterpolated() argument
3976 PetscCall(DMPlexSetSubpointMap(subdm, subpointMap)); in DMPlexCreateCohesiveSubmesh_Uninterpolated()
3977 …_Uninterpolated(dm, hasLagrange, label, value, subpointMap, &numSubFaces, &nFV, &subCells, subdm)); in DMPlexCreateCohesiveSubmesh_Uninterpolated()
3981 PetscCall(DMPlexSetChart(subdm, 0, numSubCells + numSubFaces + numSubVertices)); in DMPlexCreateCohesiveSubmesh_Uninterpolated()
3982 PetscCall(DMPlexSetVTKCellHeight(subdm, 1)); in DMPlexCreateCohesiveSubmesh_Uninterpolated()
3989 for (c = 0; c < numSubCells; ++c) PetscCall(DMPlexSetConeSize(subdm, c, 1)); in DMPlexCreateCohesiveSubmesh_Uninterpolated()
3990 …for (f = firstSubFace; f < firstSubFace + numSubFaces; ++f) PetscCall(DMPlexSetConeSize(subdm, f, … in DMPlexCreateCohesiveSubmesh_Uninterpolated()
3991 PetscCall(DMSetUp(subdm)); in DMPlexCreateCohesiveSubmesh_Uninterpolated()
3995 PetscCall(DMGetWorkArray(subdm, maxConeSize, MPIU_INT, (void **)&subface)); in DMPlexCreateCohesiveSubmesh_Uninterpolated()
4010 PetscCall(DMPlexSetCone(subdm, newFacePoint, subface)); in DMPlexCreateCohesiveSubmesh_Uninterpolated()
4011 PetscCall(DMPlexSetCone(subdm, subcell, &newFacePoint)); in DMPlexCreateCohesiveSubmesh_Uninterpolated()
4026 PetscCall(DMPlexSetCone(subdm, negsubcell, &newFacePoint)); in DMPlexCreateCohesiveSubmesh_Uninterpolated()
4031 PetscCall(DMRestoreWorkArray(subdm, maxConeSize, MPIU_INT, (void **)&subface)); in DMPlexCreateCohesiveSubmesh_Uninterpolated()
4032 PetscCall(DMPlexSymmetrize(subdm)); in DMPlexCreateCohesiveSubmesh_Uninterpolated()
4033 PetscCall(DMPlexStratify(subdm)); in DMPlexCreateCohesiveSubmesh_Uninterpolated()
4045 PetscCall(DMGetCoordinateSection(subdm, &subCoordSection)); in DMPlexCreateCohesiveSubmesh_Uninterpolated()
4083 PetscCall(DMSetCoordinatesLocal(subdm, subCoordinates)); in DMPlexCreateCohesiveSubmesh_Uninterpolated()
4099 PetscCall(DMGetPointSF(subdm, &sfPointSub)); in DMPlexCreateCohesiveSubmesh_Uninterpolated()
4168 …e DMPlexCreateCohesiveSubmesh_Interpolated(DM dm, const char labelname[], PetscInt value, DM subdm) in DMPlexCreateCohesiveSubmesh_Interpolated() argument
4174 …Interpolated(dm, label, value, PETSC_FALSE, PETSC_TRUE, 1, PETSC_FALSE, PETSC_FALSE, NULL, subdm)); in DMPlexCreateCohesiveSubmesh_Interpolated()
4197 …xCreateCohesiveSubmesh(DM dm, PetscBool hasLagrange, const char label[], PetscInt value, DM *subdm) in DMPlexCreateCohesiveSubmesh() argument
4203 PetscAssertPointer(subdm, 5); in DMPlexCreateCohesiveSubmesh()
4206 PetscCall(DMCreate(PetscObjectComm((PetscObject)dm), subdm)); in DMPlexCreateCohesiveSubmesh()
4207 PetscCall(DMSetType(*subdm, DMPLEX)); in DMPlexCreateCohesiveSubmesh()
4208 PetscCall(DMSetDimension(*subdm, dim - 1)); in DMPlexCreateCohesiveSubmesh()
4210 PetscCall(DMSetCoordinateDim(*subdm, cdim)); in DMPlexCreateCohesiveSubmesh()
4212 PetscCall(DMPlexCreateCohesiveSubmesh_Interpolated(dm, label, value, *subdm)); in DMPlexCreateCohesiveSubmesh()
4214 PetscCall(DMPlexCreateCohesiveSubmesh_Uninterpolated(dm, hasLagrange, label, value, *subdm)); in DMPlexCreateCohesiveSubmesh()
4216 PetscCall(DMPlexCopy_Internal(dm, PETSC_TRUE, PETSC_TRUE, *subdm)); in DMPlexCreateCohesiveSubmesh()
4298 …ignoreLabelHalo, PetscBool sanitizeSubmesh, MPI_Comm comm, PetscSF *ownershipTransferSF, DM *subdm) in DMPlexFilter() argument
4305 PetscAssertPointer(subdm, 8); in DMPlexFilter()
4307 PetscCall(DMCreate(comm, subdm)); in DMPlexFilter()
4308 PetscCall(DMSetType(*subdm, DMPLEX)); in DMPlexFilter()
4310 …alue, PETSC_FALSE, PETSC_FALSE, 0, ignoreLabelHalo, sanitizeSubmesh, ownershipTransferSF, *subdm)); in DMPlexFilter()
4311 PetscCall(DMPlexCopy_Internal(dm, PETSC_TRUE, PETSC_TRUE, *subdm)); in DMPlexFilter()
4321 PetscCall(DMPlexGetHeightStratum(*subdm, 0, &cStart, &cEnd)); in DMPlexFilter()
4322 PetscCall(DMGetPointSF(*subdm, &sf)); in DMPlexFilter()
4333 if (ghasSubcell) PetscCall(DMPlexSetOverlap(*subdm, NULL, 1)); in DMPlexFilter()