<div dir="ltr">I see. I was under the impression that the PetscSF returned by DMPlexDistribute was the resulting Star Forest. Getting the SF from the DM after the distribution gets the results I am expecting. Thank you for the help.<br><br><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Aug 2, 2022 at 12:12 PM Toby Isaac <<a href="mailto:toby.isaac@gmail.com">toby.isaac@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I think you want the PetscSF that can be obtained from calling<br>
DMGetPointSF() <<a href="https://petsc.org/release/docs/manualpages/DM/DMGetPointSF.html" rel="noreferrer" target="_blank">https://petsc.org/release/docs/manualpages/DM/DMGetPointSF.html</a>><br>
on the mesh created by DMPlexDistribute(), not the PetscSF returned by<br>
DMPlexDistribute() itself.<br>
<br>
On Tue, Aug 2, 2022 at 10:54 AM Toby Isaac <<a href="mailto:toby.isaac@gmail.com" target="_blank">toby.isaac@gmail.com</a>> wrote:<br>
><br>
> Hi Nicholas,<br>
><br>
> What command did you use to view the star forest? What you are<br>
> showing looks like the PetscSF that is used to distribute the points<br>
> from the root, not the final PetscSF describing the points and their<br>
> duplicates once it has been distributed.<br>
><br>
> -- Toby<br>
><br>
> On Tue, Aug 2, 2022 at 10:28 AM Nicholas Arnold-Medabalimi<br>
> <<a href="mailto:narnoldm@umich.edu" target="_blank">narnoldm@umich.edu</a>> wrote:<br>
> ><br>
> > Hello<br>
> ><br>
> > I have been trying to follow how PetscSF works, and I'm observing some behavior I don't quite understand. I have been looking at some of the past petsc-user discussions involving PetsSF, and my understanding is that each processor will have roots and leaves; roots are "owned" points, and leaves are ghosts of another processor.<br>
> ><br>
> > I have a setup when I've built the original mesh(6000 points) on just a single processor and then distributed it using DMPlexDistrubute with an overlap and then viewing the generated star forest.<br>
> ><br>
> > My expectation is that roughly 1/p points will end up as roots on each processor, with the overlap points being leaves on each processor. However, instead I get the first processor having 6000 roots with ~ 1/p leaves<br>
> > PetscSF Object: 4 MPI processes<br>
> > type: basic<br>
> > [0] Number of roots=6003, leaves=1587, remote ranks=1<br>
> > [0] 0 <- (0,0)<br>
> > , and then each of the following processors having ~1/p leaves all pointed at the root processor<br>
> > [1] Number of roots=0, leaves=1497, remote ranks=1<br>
> > [1] 0 <- (0,262)<br>
> ><br>
> > Is this the expected outcome? At least to me, this implies the first processor still "owns" all the points. I imagine I misunderstand something here. Thank you for the assistance<br>
> ><br>
> > Sincerely<br>
> > Nicholas<br>
> ><br>
> ><br>
> > --<br>
> > Nicholas Arnold-Medabalimi<br>
> ><br>
> > Ph.D. Candidate<br>
> > Computational Aeroscience Lab<br>
> > University of Michigan<br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><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>