<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Dec 2, 2021, at 12:55 PM, Matthew Knepley <<a href="mailto:knepley@gmail.com" class="">knepley@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div dir="ltr" class="">On Thu, Dec 2, 2021 at 12:07 PM Barry Smith <<a href="mailto:bsmith@petsc.dev" class="">bsmith@petsc.dev</a>> wrote:<br class=""></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;" class=""><div class=""><br class=""></div>I have pushed a branch <a href="https://gitlab.com/petsc/petsc/-/merge_requests/4612" target="_blank" class="">https://gitlab.com/petsc/petsc/-/merge_requests/4612</a> that generates the same edge on two ranks and demonstrates the totally inappropriate PetscSF and vectors that are generated in this case (just look at the output file in the MR changes)</div></blockquote><div class=""><br class=""></div><div class="">I will go through this carefully. However, I want to note that you are looking at the Section SF,  not the Point SF.</div></div></div></div></blockquote><div><br class=""></div>   Correct.</div><div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="gmail_quote"><div class=""> How many variables</div><div class="">are there in your problem? </div></div></div></div></blockquote><div><br class=""></div>   In this case I put one variable on each vertex and no variables on the edges (same model as for Neuron's). </div><div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="gmail_quote"><div class="">Also, can you print the pointSF as well?</div></div></div></div></blockquote><div><br class=""></div>   This can be trivially added to the example.</div><div><br class=""></div><div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="gmail_quote"><div class=""><br class=""></div><div class="">  Thanks,</div><div class=""><br class=""></div><div class="">     Matt</div><div class=""> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;" class=""><div class="">Thoughts on what we should do? I think Jed's idea of dummy vertices is very cumbersome and ugly unless it can be refined somehow. Is there a different way DMPLEX could be utilized to easily support multiple edges? Maybe not using DMPlexBuildFromCellListParallel(), but building the plex some other way? Note that it is clearly theoretically possible to have DMPlexBuildFromCellListParallel() detect a problem and error but I don't know how to do it.<br class=""><div class=""><br class=""></div><div class="">Barry</div><div class=""><br class=""><div class=""><br class=""></div><div class=""><br class=""><div class=""><br class=""><blockquote type="cite" class=""><div class="">On Dec 1, 2021, at 8:00 PM, Abhyankar, Shrirang G via petsc-dev <<a href="mailto:petsc-dev@mcs.anl.gov" target="_blank" class="">petsc-dev@mcs.anl.gov</a>> wrote:</div><br class=""><div class=""><div style="font-family:Helvetica;font-size:18px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none" class=""><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif" class=""><span style="font-size:12pt;font-family:"Times New Roman",serif" class=""><u class=""></u> <u class=""></u></span></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif" class=""><span style="font-size:12pt;font-family:"Times New Roman",serif" class=""><u class=""></u> <u class=""></u></span></div><div style="border-style:solid none none;border-top-width:1pt;border-top-color:rgb(181,196,223);padding:3pt 0in 0in" class=""><div style="margin:0in 0in 0in 0.5in;font-size:11pt;font-family:Calibri,sans-serif" class=""><b class=""><span style="font-size:12pt" class="">From:<span class=""> </span></span></b><span style="font-size:12pt" class="">Matthew Knepley <<a href="mailto:knepley@gmail.com" style="color:blue;text-decoration:underline" target="_blank" class="">knepley@gmail.com</a>><br class=""><b class="">Date:<span class=""> </span></b>Wednesday, December 1, 2021 at 5:57 PM<br class=""><b class="">To:<span class=""> </span></b>"Brown, Jedediah A (VISIT)" <<a href="mailto:jed@jedbrown.org" style="color:blue;text-decoration:underline" target="_blank" class="">jed@jedbrown.org</a>><br class=""><b class="">Cc:<span class=""> </span></b>"Abhyankar, Shrirang G" <<a href="mailto:shrirang.abhyankar@pnnl.gov" style="color:blue;text-decoration:underline" target="_blank" class="">shrirang.abhyankar@pnnl.gov</a>>, PETSc Development <<a href="mailto:petsc-dev@mcs.anl.gov" style="color:blue;text-decoration:underline" target="_blank" class="">petsc-dev@mcs.anl.gov</a>>, Getnet Betrie <<a href="mailto:gbetrie@anl.gov" style="color:blue;text-decoration:underline" target="_blank" class="">gbetrie@anl.gov</a>><br class=""><b class="">Subject:<span class=""> </span></b>Re: [petsc-dev] DMPLEX cannot support two different edges for the same two vertices, hence DMPLEX cannot?<u class=""></u><u class=""></u></span></div></div><div class=""><div style="margin:0in 0in 0in 0.5in;font-size:11pt;font-family:Calibri,sans-serif" class=""><u class=""></u> <u class=""></u></div></div><div style="border-style:none none none solid;border-left-width:6pt;border-left-color:rgb(215,118,0);padding:0in;font-size:1.15rem" class=""><div style="margin:0in 0in 0in 0.5in;font-size:11pt;font-family:Calibri,sans-serif;text-align:center;background-color:rgb(247,227,204)" class=""><span style="font-family:Arial,sans-serif" class="">Check twice before you click! This email originated from outside PNNL.</span><span style="font-family:Arial,sans-serif" class=""><u class=""></u><u class=""></u></span></div></div><div style="margin:0in 0in 0in 0.5in;font-size:11pt;font-family:Calibri,sans-serif" class=""><u class=""></u> <u class=""></u></div><div class=""><div class=""><div class=""><div style="margin:0in 0in 0in 0.5in;font-size:11pt;font-family:Calibri,sans-serif" class="">On Wed, Dec 1, 2021 at 6:55 PM Jed Brown <<a href="mailto:jed@jedbrown.org" style="color:blue;text-decoration:underline" target="_blank" class="">jed@jedbrown.org</a>> wrote:<u class=""></u><u class=""></u></div></div><div class=""><blockquote style="border-style:none none none solid;border-left-width:1pt;border-left-color:rgb(204,204,204);padding:0in 0in 0in 6pt;margin-left:4.8pt;margin-right:0in" type="cite" class=""><div style="margin:0in 0in 0in 0.5in;font-size:11pt;font-family:Calibri,sans-serif" class="">Matthew Knepley <<a href="mailto:knepley@gmail.com" style="color:blue;text-decoration:underline" target="_blank" class="">knepley@gmail.com</a>> writes:<br class=""><br class="">> On Wed, Dec 1, 2021 at 5:17 PM Abhyankar, Shrirang G <<br class="">><span class=""> </span><a href="mailto:shrirang.abhyankar@pnnl.gov" style="color:blue;text-decoration:underline" target="_blank" class="">shrirang.abhyankar@pnnl.gov</a>> wrote:<br class="">><br class="">>> “You can certainly have many fields on a given edge, but I don't know<br class="">>> what it would mean to have two edges since no topological query could tell<br class="">>> the difference.”<br class="">>><br class="">>><br class="">>><br class="">>> The two edges in a power grid represent two parallel power lines that are<br class="">>> connected between two locations (vertices). There are line ids (stored in<br class="">>> the component data) to distinguish the two lines.<br class="">>><br class="">><br class="">> Yes, so you can tell the difference in the function space (since difference<br class="">> current passes down each one), but _topologically_ you cannot. If you put<br class="">> duplicate cells in, then<br class="">> some topological queries will give unexpected results, like the join of the<br class="">> two vertices.<br class=""><br class="">This could be modeled with some ghost vertices. So instead of<br class=""><br class="">  a ------ b<br class="">   \_____/<br class=""><br class="">you would set up<br class=""><br class="">  a ---o---- b<br class="">   \___o___/<br class=""><br class="">Those ghost vertices don't have to "do" anything, but they make the edges topologically distinct.<br class=""><br class="">Shri, what problems might this cause?<u class=""></u><u class=""></u></div></blockquote></div><div style="margin:0in 0in 0in 0.5in;font-size:11pt;font-family:Calibri,sans-serif" class=""><u class=""></u> <u class=""></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif" class=""><span style="font-size:12pt;font-family:"Times New Roman",serif" class="">I don’t understand the figure you’ve drawn above. Sorry.<u class=""></u><u class=""></u></span></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif" class=""><span style="font-size:12pt;font-family:"Times New Roman",serif" class=""><u class=""></u> <u class=""></u></span></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif" class=""><span style="font-size:12pt;font-family:"Times New Roman",serif" class="">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?<u class=""></u><u class=""></u></span></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif" class=""><span style="font-size:12pt;font-family:"Times New Roman",serif" class=""><u class=""></u> <u class=""></u></span></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif" class=""><span style="font-size:12pt;font-family:"Times New Roman",serif" class="">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.<u class=""></u><u class=""></u></span></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif" class=""><span style="font-size:12pt;font-family:"Times New Roman",serif" class=""><u class=""></u> <u class=""></u></span></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif" class=""><span style="font-size:12pt;font-family:"Times New Roman",serif" class=""><u class=""></u> <u class=""></u></span></div><div class=""><div style="margin:0in 0in 0in 0.5in;font-size:11pt;font-family:Calibri,sans-serif" class="">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.<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0in 0.5in;font-size:11pt;font-family:Calibri,sans-serif" class=""><u class=""></u> <u class=""></u></div></div><div class=""><div style="margin:0in 0in 0in 0.5in;font-size:11pt;font-family:Calibri,sans-serif" class="">   Matt<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0in 0.5in;font-size:11pt;font-family:Calibri,sans-serif" class=""><u class=""></u> <u class=""></u></div></div><div style="margin:0in 0in 0in 0.5in;font-size:11pt;font-family:Calibri,sans-serif" class="">--<span class=""> </span><u class=""></u><u class=""></u></div><div class=""><div class=""><div class=""><div class=""><div class=""><div class=""><div class=""><div style="margin:0in 0in 0in 0.5in;font-size:11pt;font-family:Calibri,sans-serif" class="">What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br class="">-- Norbert Wiener<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0in 0.5in;font-size:11pt;font-family:Calibri,sans-serif" class=""><u class=""></u> <u class=""></u></div></div><div class=""><div style="margin:0in 0in 0in 0.5in;font-size:11pt;font-family:Calibri,sans-serif" class=""><a href="https://gcc02.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.cse.buffalo.edu%2F~knepley%2F&data=04%7C01%7Cshrirang.abhyankar%40pnnl.gov%7Cbcbb40fc51f6428ac17708d9b5264361%7Cd6faa5f90ae240338c0130048a38deeb%7C0%7C0%7C637739998211230005%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=Sg7eEbjzkSqVd6Sjg8IpTN3iXxMAvih0UNV0fkolO8w%3D&reserved=0" style="color:blue;text-decoration:underline" target="_blank" class="">https://www.cse.buffalo.edu/~knepley/</a></div></div></div></div></div></div></div></div></div></div></div></div></blockquote></div><br class=""></div></div></div></div></blockquote></div><br clear="all" class=""><div class=""><br class=""></div>-- <br class=""><div dir="ltr" class="gmail_signature"><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div class="">What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br class="">-- Norbert Wiener</div><div class=""><br class=""></div><div class=""><a href="http://www.cse.buffalo.edu/~knepley/" target="_blank" class="">https://www.cse.buffalo.edu/~knepley/</a><br class=""></div></div></div></div></div></div></div></div>
</div></blockquote></div><br class=""></body></html>