“You can certainly have many fields on a given edge, but I don't know what it 
would mean to have two edges since no topological query could tell the 
difference.”

The two edges in a power grid represent two parallel power lines that are 
connected between two locations (vertices). There are line ids (stored in the 
component data) to distinguish the two lines.

Thanks,
Shri


From: Matthew Knepley <knep...@gmail.com>
Date: Wednesday, December 1, 2021 at 4:07 PM
To: Barry Smith <bsm...@petsc.dev>
Cc: "Abhyankar, Shrirang G" <shrirang.abhyan...@pnnl.gov>, PETSc Development 
<petsc-dev@mcs.anl.gov>, "Zhang, Hong" <hzh...@mcs.anl.gov>, Getnet Betrie 
<gbet...@anl.gov>
Subject: Re: DMPLEX cannot support two different edges for the same two 
vertices, hence DMPLEX cannot?

On Wed, Dec 1, 2021 at 4:51 PM Barry Smith 
<bsm...@petsc.dev<mailto:bsm...@petsc.dev>> wrote:

  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.

Okay, I think we need specific tests to see what is going on.

Theoretically, having multiple edges between vertices does not make sense since 
the edge _means_ (v_i, v_j) topologically. You can certainly have many fields 
on a given edge, but I don't know what it would mean to have two edges since no 
topological query could tell the difference.

However, you can certainly tell Plex anything you want to tell it. 
DMPlexBuildFromCellListParallel() gets only cells and vertices, so you are 
saying that there is a duplicate cell. That is allowed and should work 
properly, EXCEPT if you wanted to identify a cell only by its cone (then you 
could not tell them apart). I do this for faces, but I did not think I ever did 
it for cells.

  Thanks,

     Matt

On Dec 1, 2021, at 4:37 PM, Abhyankar, Shrirang G 
<shrirang.abhyan...@pnnl.gov<mailto:shrirang.abhyan...@pnnl.gov>> 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 <bsm...@petsc.dev<mailto:bsm...@petsc.dev>>
Date: Wednesday, December 1, 2021 at 3:19 PM
To: "Knepley, Matthew G (VISIT)" <knep...@gmail.com<mailto:knep...@gmail.com>>, 
PETSc Development <petsc-dev@mcs.anl.gov<mailto:petsc-dev@mcs.anl.gov>>, 
"Abhyankar, Shrirang G" 
<shrirang.abhyan...@pnnl.gov<mailto:shrirang.abhyan...@pnnl.gov>>, "Zhang, 
Hong" <hzh...@mcs.anl.gov<mailto:hzh...@mcs.anl.gov>>, Getnet Betrie 
<gbet...@anl.gov<mailto:gbet...@anl.gov>>
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.



--
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/<https://gcc02.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.cse.buffalo.edu%2F~knepley%2F&data=04%7C01%7Cshrirang.abhyankar%40pnnl.gov%7Ce56f4d6ffa10474f3c7508d9b516feb5%7Cd6faa5f90ae240338c0130048a38deeb%7C0%7C0%7C637739932634554446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=WwSfLYl2hPyHwrfkJ1SuBmp6l88d6xJulwBPBvu%2BbK0%3D&reserved=0>

Reply via email to