It may not happen with one rank. Or it may.

  With more than one rank one may run a code and think it is working correctly 
but that does not mean the PetscSF is correct. It is generating "extra" degrees 
of freedom for these vertices each associated with a different edge and not 
properly connecting them. You can tell by doing a full DMView on the dmplex and 
PetscSF and seeing more roots than there should be listed. Hence the numerics 
will be wrong even though it does not crash or complain.

> On Dec 1, 2021, at 4:37 PM, Abhyankar, Shrirang G 
> <[email protected]> wrote:
> 
> Barry,
>  
> “Is there anything we can do to support having multiple edges between the 
> same two vertices”
>  
> Some of my power grid datasets have multiple edges between the same two 
> vertices and I’ve not faced an issue with DMNetwork. However, all the data 
> was read on rank 0 only (and then distributed).
>  
> Maybe the issue is with the edges being passed on different ranks?
>  
> Thanks,
> Shri 
> From: Barry Smith <[email protected] <mailto:[email protected]>>
> Date: Wednesday, December 1, 2021 at 3:19 PM
> To: "Knepley, Matthew G (VISIT)" <[email protected] 
> <mailto:[email protected]>>, PETSc Development <[email protected] 
> <mailto:[email protected]>>, "Abhyankar, Shrirang G" 
> <[email protected] <mailto:[email protected]>>, "Zhang, 
> Hong" <[email protected] <mailto:[email protected]>>, Getnet Betrie 
> <[email protected] <mailto:[email protected]>>
> Subject: DMPLEX cannot support two different edges for the same two vertices, 
> hence DMPLEX cannot?
>  
> Check twice before you click! This email originated from outside PNNL.
>  
>  
>    Matt,
>  
>      If DMPlexBuildFromCellListParallel() is called with two edges that have 
> the same two vertices what will happen? It looks like it ends up with an 
> incorrect PetscSF if the two edges are passed on different ranks. Hence the 
> DMPLEX is not valid and produces garbage.
>  
>      Neurons can be connected to themselves which seems to be breaking DMPLEX 
> and hence DMNETWORK.
>  
>      Is there anything we can do to support having multiple edges between the 
> same two vertices? If not is there a way we can have 
> DMPlexBuildFromCellListParallel() generate an error automatically if there 
> are such extra edges in the input data.
>  
>    Thanks
>  
>   Barry
>  
> In this work, the neurons are represented by vertices in the network and each 
> synapse is a graph edge.

Reply via email to