Barry,

That is exactly the case, I only have work dofs for passing flux variables. The 
variables that actually matter for the solution are only on the edges. Works 
completely correctly in that case as far as I can tell.

Your example is very interesting. Is this intended to be fixed so that 
DMNetwork can handle these cases or is not an intended usage?

Even for our case with traffic flow it would be very convenient to be handle 
multi-edged graphs.

Best,
Aidan


From: Barry Smith <[email protected]>
Date: Thursday, December 2, 2021 at 5:07 PM
To: Zhang, Hong <[email protected]>
Cc: For users of the development version of PETSc <[email protected]>, 
Sundermann, Rylee Edwin - SDSU Student <[email protected]>, 
Hamilton, Aidan <[email protected]>
Subject: Re: [petsc-dev] DMPLEX cannot support two different edges for the same 
two vertices, hence DMPLEX cannot?

  Aiden,

    Do you have true degrees of freedom on both the edges and the vertices? If 
only have edge variables and no vertex variables but only use "work" values on 
vertices than maybe DMNETWORK might behave as you need. But my trivial example 
defintely shows a problem with only edge vertex variables. The DMPLEX object 
believes there are more than two vertices when there are only two because it 
cannot determine that some vertices are actually the same.

  Barry


On Dec 2, 2021, at 5:31 PM, Zhang, Hong via petsc-dev 
<[email protected]<mailto:[email protected]>> wrote:

All,
I'm forwarding Aidan's comments on this issue (see below). Aidan has done 
extensive study on DMPlex and has been working on hyperbolic flow applications.

Satish:
Please add Aidan to petsc-dev mailing list.

Hong
________________________________
From: Aidan Hamilton <[email protected]<mailto:[email protected]>>
Sent: Thursday, December 2, 2021 2:34 PM
To: Zhang, Hong <[email protected]<mailto:[email protected]>>
Cc: Sundermann, Rylee Edwin - SDSU Student 
<[email protected]<mailto:[email protected]>>
Subject: Re: [petsc-dev] DMPLEX cannot support two different edges for the same 
two vertices, hence DMPLEX cannot?

Hong,


I am not on petsc-dev, I guess I should be. Also you can push, you’re always 
free to push changes.


And it doesn’t matter for anything on my end. Each edge is distinct topological 
entity, so I have the directed graph


V0 ---- E0 -• V1   ----- E1 ----• V0


I don’t need any special identification. And it works in parallel with 
globaltolocal seemingly working . Now this is not a standard graph, it follows 
the more general notion of directed graph, see Diestel page 25, that allows for 
multi-edges.


Now for my case I don’t need to distinguish  between the two edges at all 
beyond each one having their own unique edge id. In all of our use cases for 
traffic I don’t think we need to care (and honestly I’m not sure if Shri 
actually needs to care either).


Now we do have the topological distinction of direction for all of our graphs, 
which we can use to assign direction to traffic flow. And that will always 
work. And this notion of direction is the only distinction we need to care 
about, and we have it.


It’s worth noting that a CW-Complex does support this notion of multiedges, no 
reason for it not to, so DMPlex should be supporting its topological operations 
with this case in mind.
If DMplex can’t support this then dmplex isn’t doing what it claims it does.


As long as you as the user know that you are dealing with a multi-edge graph, I 
don’t see why there would be any issues. Any topological query of a multi-edge 
graph should behave as you would expect a multi-edge graph to behave, though it 
may behave differently than single edge graphs, as long as you are aware of the 
difference when you code your residuals and other functions on dmnetwork it 
should be fine.


Best,


Aidan





From: Zhang, Hong <[email protected]<mailto:[email protected]>>
Date: Thursday, December 2, 2021 at 1:56 PM
To: Aidan Hamilton <[email protected]<mailto:[email protected]>>
Cc: Sundermann, Rylee Edwin - SDSU Student 
<[email protected]<mailto:[email protected]>>
Subject: Fw: [petsc-dev] DMPLEX cannot support two different edges for the same 
two vertices, hence DMPLEX cannot?
Aidan,
Are you on petsc-dev email list?
How do you distinguish two parallel edges connecting the same junctions in your 
traffic code? Do you use
offset_vto, offset_vfrom in EdgeFE?


I removed white spaces in dgnet.c and dgnet.h. Can I push the changes?
Hong
________________________________
From: petsc-dev 
<[email protected]<mailto:[email protected]>> on behalf 
of Barry Smith <[email protected]<mailto:[email protected]>>
Sent: Wednesday, December 1, 2021 7:41 PM
To: Abhyankar, Shrirang G 
<[email protected]<mailto:[email protected]>>
Cc: petsc-dev <[email protected]<mailto:[email protected]>>; Betrie, 
Getnet <[email protected]<mailto:[email protected]>>
Subject: Re: [petsc-dev] DMPLEX cannot support two different edges for the same 
two vertices, hence DMPLEX cannot?




  Shri,


    If you provided your graph in parallel I suspect that the GlobalToLocal and 
LocalToGlobal would not work as you expect and put everything in the 
appropriate place.


    I'll set up a simple code that takes exactly Get's configuration and send 
it out so everyone can run it and see exactly what happens.


   Barry



On Dec 1, 2021, at 8:00 PM, Abhyankar, Shrirang G via petsc-dev 
<[email protected]<mailto:[email protected]>> wrote:






From: Matthew Knepley <[email protected]<mailto:[email protected]>>
Date: Wednesday, December 1, 2021 at 5:57 PM
To: "Brown, Jedediah A (VISIT)" <[email protected]<mailto:[email protected]>>
Cc: "Abhyankar, Shrirang G" 
<[email protected]<mailto:[email protected]>>, PETSc 
Development <[email protected]<mailto:[email protected]>>, Getnet 
Betrie <[email protected]<mailto:[email protected]>>
Subject: Re: [petsc-dev] 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.


On Wed, Dec 1, 2021 at 6:55 PM Jed Brown 
<[email protected]<mailto:[email protected]>> wrote:
Matthew Knepley <[email protected]<mailto:[email protected]>> writes:

> On Wed, Dec 1, 2021 at 5:17 PM Abhyankar, Shrirang G <
> [email protected]<mailto:[email protected]>> 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.

This could be modeled with some ghost vertices. So instead of

  a ------ b
   \_____/

you would set up

  a ---o---- b
   \___o___/

Those ghost vertices don't have to "do" anything, but they make the edges 
topologically distinct.

Shri, what problems might this cause?


I don’t understand the figure you’ve drawn above. Sorry.


As a user, would I need to add anything to the way I am setting up the 
network/plex or any additional equations in the residual evaluation?


I do not have any issue right now for the power grid problem since I don’t 
require DMNetwork or DMPLEX to do the topological distinction between parallel 
edges. There are unique edge identifiers in my dataset through which I can make 
this distinction.




Yes, this would work, but it looks like the multiple cells are not causing them 
problems right now with the questions they are asking the mesh.


   Matt


--
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://www.google.com/url?q=https://gcc02.safelinks.protection.outlook.com/?url%3Dhttp%253A%252F%252Fwww.cse.buffalo.edu%252F~knepley%252F%26data%3D04%257C01%257Cshrirang.abhyankar%2540pnnl.gov%257Cbcbb40fc51f6428ac17708d9b5264361%257Cd6faa5f90ae240338c0130048a38deeb%257C0%257C0%257C637739998211230005%257CUnknown%257CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%253D%257C3000%26sdata%3DSg7eEbjzkSqVd6Sjg8IpTN3iXxMAvih0UNV0fkolO8w%253D%26reserved%3D0&source=gmail-imap&ust=1639079810000000&usg=AOvVaw2q1URmUrcN7rBglSVGeqIH>


<DiestelGT.pdf>

Reply via email to