Lines Matching refs:dm
26 static PetscErrorCode CreateHybridMesh(MPI_Comm comm, PetscBool interpolate, DM *dm) in CreateHybridMesh() argument
32 PetscCall(DMCreate(comm, dm)); in CreateHybridMesh()
33 PetscCall(PetscObjectSetName((PetscObject)*dm, "Simple Hybrid Mesh")); in CreateHybridMesh()
34 PetscCall(DMSetType(*dm, DMPLEX)); in CreateHybridMesh()
35 PetscCall(DMSetDimension(*dm, dim)); in CreateHybridMesh()
44 …PetscCall(DMPlexCreateFromDAG(*dm, 1, numPoints, coneSize, cones, coneOrientations, vertexCoords)); in CreateHybridMesh()
48 PetscCall(DMPlexInterpolate(*dm, &idm)); in CreateHybridMesh()
49 PetscCall(DMDestroy(dm)); in CreateHybridMesh()
50 *dm = idm; in CreateHybridMesh()
52 PetscCall(DMViewFromOptions(*dm, NULL, "-dm_view")); in CreateHybridMesh()
75 static PetscErrorCode CreateReverseHybridMesh(MPI_Comm comm, PetscBool interpolate, DM *dm) in CreateReverseHybridMesh() argument
81 PetscCall(DMCreate(comm, dm)); in CreateReverseHybridMesh()
82 PetscCall(PetscObjectSetName((PetscObject)*dm, "Reverse Hybrid Mesh")); in CreateReverseHybridMesh()
83 PetscCall(DMSetType(*dm, DMPLEX)); in CreateReverseHybridMesh()
84 PetscCall(DMSetDimension(*dm, dim)); in CreateReverseHybridMesh()
94 …PetscCall(DMPlexCreateFromDAG(*dm, 1, numPoints, coneSize, cones, coneOrientations, vertexCoords)); in CreateReverseHybridMesh()
98 PetscCall(DMPlexInterpolate(*dm, &idm)); in CreateReverseHybridMesh()
99 PetscCall(DMDestroy(dm)); in CreateReverseHybridMesh()
100 *dm = idm; in CreateReverseHybridMesh()
102 PetscCall(DMViewFromOptions(*dm, NULL, "-dm_view")); in CreateReverseHybridMesh()
107 static PetscErrorCode OrderHybridMesh(DM *dm) in OrderHybridMesh() argument
115 PetscCall(DMGetDimension(*dm, &dim)); in OrderHybridMesh()
116 …PetscCheck(dim == 3, PetscObjectComm((PetscObject)*dm), PETSC_ERR_SUP, "No support for dimension %… in OrderHybridMesh()
117 PetscCall(DMPlexGetChart(*dm, &pStart, &pEnd)); in OrderHybridMesh()
120 PetscCall(DMPlexGetHeightStratum(*dm, 0, &cStart, &cEnd)); in OrderHybridMesh()
124 PetscCall(DMPlexGetConeSize(*dm, c, &coneSize)); in OrderHybridMesh()
132 PetscCall(DMPlexGetConeSize(*dm, c, &coneSize)); in OrderHybridMesh()
139 PetscCall(DMPlexPermute(*dm, perm, &pdm)); in OrderHybridMesh()
141 PetscCall(DMDestroy(dm)); in OrderHybridMesh()
142 *dm = pdm; in OrderHybridMesh()
146 static PetscErrorCode CreateMesh(MPI_Comm comm, AppCtx *user, DM *dm) in CreateMesh() argument
156 PetscCall(DMPlexCreateFromFile(comm, filename, "ex34_plex", PETSC_FALSE, dm)); in CreateMesh()
157 PetscCall(OrderHybridMesh(dm)); in CreateMesh()
161 PetscCall(DMPlexInterpolate(*dm, &idm)); in CreateMesh()
162 PetscCall(DMDestroy(dm)); in CreateMesh()
163 *dm = idm; in CreateMesh()
165 PetscCall(PetscObjectSetName((PetscObject)*dm, "Input Mesh")); in CreateMesh()
166 PetscCall(DMViewFromOptions(*dm, NULL, "-dm_view")); in CreateMesh()
170 PetscCall(CreateHybridMesh(comm, interpolate, dm)); in CreateMesh()
173 PetscCall(CreateReverseHybridMesh(comm, interpolate, dm)); in CreateMesh()
184 DM dm; in main() local
190 PetscCall(CreateMesh(PETSC_COMM_WORLD, &user, &dm)); in main()
191 PetscCall(DMDestroy(&dm)); in main()