<div dir="ltr"><div dir="ltr">On Thu, Jan 19, 2023 at 11:58 AM 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 Petsc Users<br><br>I'm working with a distribution start forest generated by DMPlexDistribute and PetscSFBcast and Reduce to move data between the initial distribution and the distribution generated by DMPlex Distribute. <br><br>I'm trying to debug some values that aren't being copied properly and wanted to verify I understand how a redistribution SF works compared with a SF that describes overlapped points. <br><br>  [0] 0 <- (0,7)     point 0 on the distributed plex is point 7 on process 0 on the initial distribution<br>  [0] 1 <- (0,8)    

point 1 on the distributed plex is point 8 on process 0 on the initial distribution<br>  [0] 2 <- (0,9)<br>  [0] 3 <- (0,10)<br>  [0] 4 <- (0,11)<br><br>  [1] 0 <- (1,0)    

point 0 on the distributed plex is point 0 on process 1 on the initial distribution<br>  [1] 1 <- (1,1)<br>  [1] 2 <- (1,2)<br>  [1] 3 <- (0,0)    

point 3 on the distributed plex is point 0 on process 0 on the initial distribution<br>  [1] 4 <- (0,1)<br>  [1] 5 <- (0,2)<br clear="all"><div><br> my confusion I think is how does the distributionSF inform of what cells will be leafs on the distribution? <br></div></div></blockquote><div><br></div><div>I should eventually write something to clarify this. I am using SF in (at least) two different ways.</div><div><br></div><div>First, there is a familiar SF that we use for dealing with "ghost" points. These are replicated points where one process</div><div>is said to "own" the point and another process is said to hold a "ghost". The ghost points are leaves in the SF which</div><div>point back to the root point owned by another process. We call this the pointSF for a DM.</div><div><br></div><div>Second, we have a migration SF. Here the root points give the original point distribution. The leaf points give the new</div><div>point distribution. Thus a PetscSFBcast() pushes points from the original to new distribution, which is what we mean</div><div>by a migration.</div><div><br></div><div>Third, instead of point values, we might want to communicate fields over those points. For this we make new SFes,</div><div>where the numbering does not refer to points, but rather to dofs.</div><div><br></div><div>Does this make sense?</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"><div>Sincerely<br>Nicholas<br><br></div>-- <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>