On Wed, Dec 1, 2021 at 5:17 PM Abhyankar, Shrirang G < shrirang.abhyan...@pnnl.gov> wrote:
> “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. > Yes, so you can tell the difference in the function space (since difference current passes down each one), but _topologically_ you cannot. If you put duplicate cells in, then some topological queries will give unexpected results, like the join of the two vertices. Thanks, Matt > > > 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> 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> 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> > *Date: *Wednesday, December 1, 2021 at 3:19 PM > *To: *"Knepley, Matthew G (VISIT)" <knep...@gmail.com>, PETSc Development > <petsc-dev@mcs.anl.gov>, "Abhyankar, Shrirang G" < > shrirang.abhyan...@pnnl.gov>, "Zhang, Hong" <hzh...@mcs.anl.gov>, Getnet > Betrie <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> > -- 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.cse.buffalo.edu/~knepley/>