[petsc-dev] Creating a dmplex mesh from a cell list

Garnet Vaz garnet.vaz at gmail.com
Fri Mar 1 11:14:39 CST 2013


Hi Matt,

For this very example, (DMPlexCreateFromCellList webpage)
how can I construct the Sieve object corresponding to
something similar as shown in the Sieve paper Figure 1. The plex object
currently does not hold edge information and I would like to loop
through the edges.

Thank You.

On Thu, Feb 28, 2013 at 6:53 AM, Matthew Knepley <knepley at gmail.com> wrote:
> On Thu, Feb 28, 2013 at 8:24 AM, Garnet Vaz <garnet.vaz at gmail.com> wrote:
>>
>> Hi,
>>
>> I would like to know what some of the arguments for
>> DMPlexCreateFromCellList are supposed to be for a triangular mesh.
>>
>> The function is:
>> DMPlexCreateFromCellList(MPI_Comm comm, PetscInt dim, PetscInt
>> numCells, PetscInt numVertices, PetscInt numCorners, PetscBool
>> interpolate, const int cells[], PetscInt spaceDim, const double
>> vertexCoords[], DM *dm)
>>
>> dim = 2
>> numCells = nCells (not the entire length of the cells array; instead
>> length/3)
>> numVertices = nVert (length of vertexCoords/2)
>> numCorners = 3
>> spaceDim = 2
>>
>> What is wrong with my understanding about the following variables?
>> The error I get is the following:
>>
>> [0]PETSC ERROR: Argument out of range!
>> [0]PETSC ERROR: Cone point 43 is not in the valid range [0, 43)!
>
>
> I have created a proper webpage for this function which will be on the web
> at midnight. Here it is
>
> /*@C
>   DMPlexCreateFromCellList - This takes as input common mesh generator
> output, a list of the vertices for each cell, and produces a DM
>
>   Input Parameters:
> + comm - The communicator
> . dim - The topological dimension of the mesh
> . numCells - The number of cells
> . numVertices - The number of vertices
> . 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 vertices for each
> cell
> . spaceDim - The spatial dimension used for coordinates
> - vertexCoords - An array of numVertices*spaceDim numbers, the coordinates
> of each vertex
>
>   Output Parameter:
> . dm - The DM
>
>   Note: Two triangles sharing a face
> $
> $        2
> $      / | \
> $     /  |  \
> $    /   |   \
> $   0  0 | 1  3
> $    \   |   /
> $     \  |  /
> $      \ | /
> $        1
> would 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
>
>   Level: beginner
>
> .seealso: DMPlexCreate()
> @*/
>
> Does this help?
>
>   Thanks,
>
>      Matt
>
>>
>>
>> Thank You.
>>
>> --
>> Regards,
>> Garnet
>
>
>
>
> --
> What most experimenters take for granted before they begin their experiments
> is infinitely more interesting than any results to which their experiments
> lead.
> -- Norbert Wiener



--
Regards,
Garnet



More information about the petsc-dev mailing list