[petsc-dev] DMPLEX cannot support two different edges for the same two vertices, hence DMPLEX cannot?

Matthew Knepley knepley at gmail.com
Wed Dec 1 16:22:03 CST 2021


On Wed, Dec 1, 2021 at 5:17 PM Abhyankar, Shrirang G <
shrirang.abhyankar at 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 <knepley at gmail.com>
> *Date: *Wednesday, December 1, 2021 at 4:07 PM
> *To: *Barry Smith <bsmith at petsc.dev>
> *Cc: *"Abhyankar, Shrirang G" <shrirang.abhyankar at pnnl.gov>, PETSc
> Development <petsc-dev at mcs.anl.gov>, "Zhang, Hong" <hzhang at mcs.anl.gov>,
> Getnet Betrie <gbetrie at 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 <bsmith at 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.abhyankar at 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 <bsmith at petsc.dev>
> *Date: *Wednesday, December 1, 2021 at 3:19 PM
> *To: *"Knepley, Matthew G (VISIT)" <knepley at gmail.com>, PETSc Development
> <petsc-dev at mcs.anl.gov>, "Abhyankar, Shrirang G" <
> shrirang.abhyankar at pnnl.gov>, "Zhang, Hong" <hzhang at mcs.anl.gov>, Getnet
> Betrie <gbetrie at 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/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20211201/dd9ca1eb/attachment.html>


More information about the petsc-dev mailing list