<div dir="ltr"><div dir="ltr">On Wed, Aug 10, 2022 at 10:00 PM Nicholas Arnold-Medabalimi <<a href="mailto:narnoldm@umich.edu">narnoldm@umich.edu</a>> wrote:<br></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 dir="ltr">Hi<br><br>I have been working on writing an output of a DMPlex object to interface with an existing code that has some strict requirements. I need each process to output its partition vertices and cell map but also note the point number of the cell on the adjacent processor for the boundary faces. <br><br>I have two different setups I'm pursuing with different challenges. <br><br>1) The DMPlex is distributed with an overlap of 0. This makes the vertex output trivial as only I don't need to worry about the halo vertices. However, to get the cell from the other processor, I have to check the star forest on both processors, figure out the face on the sending processor, then grab its support cell and trade it with the host processor.<br><br><b>If I continue on this path I'd say the question would be, is there an easier way to get the support cell from the adjacent processor when you don't have an overlap?</b><br><br>Right now, what I am doing is getting the RootRanks of the DM SF and the inverse of this SF. I do this because with an overlap of 0, the root dependency only goes one way on the boundaries, and I need to have the cells on each side sent to the opposite processor. <br></div></blockquote><div><br></div><div>YOu end up doing 90% of the work we do for overlap here. I cannot see an easier way right now.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">2) The DMPlex has an overlap of 1. This makes grabbing the neighboring cell local point value trivial roots using the support of the faces combined with the SF. But the issue is now outputting only the vertices of the process without messing up the cell maps. <br><br><b>The question here is how are the vertices in the DMPlex organized by default?</b> I have noticed that the leaf vertices are always at the end of the DMPlex stratum.<b> Is this a guaranteed behavior and then within the leaf cells when there is an overlap are they organized in any set way?</b></div></blockquote><div><br></div><div>No, I do not guarantee that leaf vertices are at the end, or leaf cells. You can always use DMPlexPermute() to get that behavior if you want. It sounds</div><div>like you want to do that. I know Firedrake does a similar thing. Let me know if this does not work for you.</div><div><br></div><div>  Thanks,</div><div><br></div><div>     Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><b> </b>I'm hoping that for each layer of overlap those leaves are appended. That way I can just take the vertices up until the first halo of vertices. Otherwise, I would search through the list to check if they are in the core partition and output them, and then account for any removed vertex in the cell maps. <br><br>I appreciate the input and help. <br><br>Sincerely<br>Nicholas<br><br><br><br>-- <br><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><div style="font-family:arial;font-size:small"><font color="#000000">Nicholas Arnold-Medabalimi<br><br></font><span style="font-family:sans-serif;font-size:14px">Ph.D. Candidate</span><font color="#000000"><br>Computational Aeroscience Lab<br>University of Michigan</font></div></div></div></div></div></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div><div><br></div><div><a href="http://www.cse.buffalo.edu/~knepley/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div></div></div></div>