Hello,

Thank you the various options.

Use case here would be obtaining the exact output generated by option 1), 
DMView() with PETSC_VIEWER_HDF5_VIZ; in particular, the matrix generated under 
/viz/topology/cells.

> There are several ways you might do this. It helps to know what you are 
> aiming for.
>
> 1) If you just want this output, it might be easier to just DMView() with the 
> PETSC_VIEWER_HDF5_VIZ format, since that just outputs the cell-vertex 
> topology and coordinates

Is it possible to get this information in memory, onto a Mat, Vec or some other 
Int array object directly? it would be handy to have it in order to manipulate 
it and/or save it to a different format/file. Saving to an HDF5 and loading it 
again seems redundant.

> 2) You can call DMPlexUninterpolate() to produce a mesh with just cells and 
> vertices, and output it in any format.
>
> 3) If you want it in memory, but still with global indices (I don't 
> understand this use case), then you can use DMPlexCreatePointNumbering() for 
> an overall global numbering, or DMPlexCreateCellNumbering() and 
> DMPlexCreateVertexNumbering() for separate global numberings.

Perhaps I missed it, but getting the connectivity matrix in 
/viz/topology/cells/ did not seem directly trivial to me from the list of 
global indices returned by DMPlexGetCell/Point/VertexNumbering() (i.e. I assume 
all the operations done when calling DMView()).

Thanks,
Noam.

Reply via email to