[petsc-users] Function to convert a dense matrix holding the cell connectivity to a MPIADJ for use with MatMeshToCellGraph

Matthew Knepley knepley at gmail.com
Tue Dec 12 18:48:21 CST 2017


On Tue, Dec 12, 2017 at 7:30 PM, Jordan Wagner <j.wagner at rice.edu> wrote:

> Thanks for the quick reply!
>
> I have been reviewing DMPlex for a few weeks. It looks awesome (I like
> topology :) ); great work. I planned on implementing it in my code sooner
> or later. The problem for me, however, is that I am mainly using
> multi-section CGNS meshes in my code. This currently isn't supported in
> DMPlexCreateCGNS. Though, I guess I could just use
> DMPlexCreateFromCellList. Would that be the route you would recommend for
> creating a DMPlex with a connectivity matrix that I have extracted myself
> from the cgns file?
>
> Yes, I think that is the best way. That is what I do in the CGNS code I
believe. We have much more complete support  for ExodusII and Gmsh (and
MED).

> I've been somewhat contemplating trying to add multi-section capability to
> the DMPlexCreateCGNS function; however, I figured there was a good reason
> why this wasn't already done and assumed would take me way longer than you
> guys who are much more knowledgeable. Would this be something worth
> thinking more about?
>
Actually, it is not done because a) I know very little about CGNS, b) no
one has ever requested it and c) we got requests for other formats. I
believe it would not be that
hard and we could help you. Most of the ExodusII support was done by a user
(Blaise Bourdin) and the GMsh support by Lisandro and Stefano, and the MED
support
by Michael Lange, so most of this stuff is not from me.

  Thanks,

     Matt

> Really appreciate it.
>
> On 12/12/2017 03:54 PM, Matthew Knepley wrote:
>
> Barry wrote this, so he probably knows how to fix it.
>
> Another option is to use DMPlex for your mesh. It will give you the dual
> if you want.
>
>   Thanks,
>
>      Matt
>
> On Tue, Dec 12, 2017 at 3:44 PM, Jordan Wagner <j.wagner at rice.edu> wrote:
>
>> Hi,
>>
>> I am trying to use the function MatMeshToCellGraph. I currently have a
>> matrix that holds the cell connectivity of simplex elements. So it is a
>> numCells x 3 matrix where the row corresponds to the cell number and the
>> column is a vertex of that cell. To use this function, it appears I need to
>> get the corresponding adjacency matrix.
>>
>> I found the function MatConvert, which I was hoping could be the function
>> I am looking for, but I keep getting a memory error when using it, which I
>> have added at the bottom. Is this the correct function to use to convert my
>> cell connectivity matrix, or do I need to loop through to get the proper
>> offsets (i,j) needed to create the adjacency matrix with MatCreateMPIAdj,
>> as is done in ex11.c?
>>
>> Thanks very much for any tips.
>>
>>
>> [0]PETSC ERROR: ------------------------------
>> ------------------------------------------
>> [0]PETSC ERROR: Caught signal number 11 SEGV: Segmentation Violation,
>> probably memory access out of range
>> [0]PETSC ERROR: Try option -start_in_debugger or -on_error_attach_debugger
>> [0]PETSC ERROR: or see http://www.mcs.anl.gov/petsc/d
>> ocumentation/faq.html#valgrind
>> [0]PETSC ERROR: or try http://valgrind.org on GNU/linux and Apple Mac OS
>> X to find memory corruption errors
>> [0]PETSC ERROR: PetscMallocValidate: error detected at
>> PetscSignalHandlerDefault() line 145 in /home/jordan/petsc/src/sys/err
>> or/signal.c
>> [0]PETSC ERROR: Memory [id=0(16)] at address 0x1b4cb80 is corrupted
>> (probably write past end of array)
>> [0]PETSC ERROR: Memory originally allocated in MatConvertFrom_MPIAdj()
>> line 444 in /home/jordan/petsc/src/mat/impls/adj/mpi/mpiadj.c
>> [0]PETSC ERROR: --------------------- Error Message
>> --------------------------------------------------------------
>> [0]PETSC ERROR: Memory corruption: http://www.mcs.anl.gov/petsc/d
>> ocumentation/installation.html#valgrind
>> [0]PETSC ERROR:
>> [0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html
>> for trouble shooting.
>> [0]PETSC ERROR: Petsc Release Version 3.8.2, unknown
>> [0]PETSC ERROR: ./preprocess.exe on a arch-linux2-c-debug named
>> jordan-nest by jordan Tue Dec 12 14:40:02 2017
>> [0]PETSC ERROR: Configure options --with-shared-libraries=1
>> --download-metis --download-parmetis
>> [0]PETSC ERROR: #1 PetscMallocValidate() line 146 in
>> /home/jordan/petsc/src/sys/memory/mtr.c
>> [0]PETSC ERROR: #2 PetscSignalHandlerDefault() line 145 in
>> /home/jordan/petsc/src/sys/error/signal.c
>>
>>
>>
>>
>
>
> --
> 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
>
> https://www.cse.buffalo.edu/~knepley/ <http://www.caam.rice.edu/%7Emk51/>
>
>
>


-- 
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

https://www.cse.buffalo.edu/~knepley/ <http://www.caam.rice.edu/~mk51/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20171212/a72e7089/attachment.html>


More information about the petsc-users mailing list