#include "petscdmplex.h" #include "petscdmplex.h" PetscErrorCode DMPlexCreateFromCellListParallel(MPI_Comm comm, PetscInt dim, PetscInt numCells, PetscInt numVertices, PetscInt numCorners, PetscBool interpolate, const int cells[], PetscInt spaceDim, const PetscReal vertexCoords[], PetscSF *vertexSF, DM *dm)
comm | - The communicator | |
dim | - The topological dimension of the mesh | |
numCells | - The number of cells owned by this process | |
numVertices | - The number of vertices owned by this process | |
numCorners | - The number of vertices for each cell | |
interpolate | - Flag indicating that intermediate mesh entities (faces, edges) should be created automatically | |
cells | - An array of numCells*numCorners numbers, the global vertex numbers for each cell | |
spaceDim | - The spatial dimension used for coordinates | |
vertexCoords | - An array of numVertices*spaceDim numbers, the coordinates of each vertex |
dm | - The DM | |
vertexSF | - Optional, SF describing complete vertex ownership |
Note: Two triangles sharing a face
2
/ | \
/ | \
/ | \
0 0 | 1 3
\ | /
\ | /
\ | /
1would have input
numCells = 2, numVertices = 4
cells = [0 1 2 1 3 2]
which would result in the DMPlex
4
/ | \
/ | \
/ | \
2 0 | 1 5
\ | /
\ | /
\ | /
3