<div dir="ltr"><div dir="ltr">On Mon, Jun 17, 2019 at 9:49 PM Swarnava Ghosh <<a href="mailto:swarnava89@gmail.com">swarnava89@gmail.com</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 Matthew,<div><br></div><div>I am primarily trying to interpolate fields which are defined on vertices. For a process, the point at which the interpolation to be carried out can be in an element that is owned by another process. My initial plan while writing the earlier email was to create local dmplexes in each rank which contains all the elements that are required for interpolation. However on second thoughts, this is too cumbersome.</div></div></blockquote><div><br></div><div>Thanks. This is much clearer to me 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"><div>What might be potentially better approach (ofcourse you will be an expert to judge) is to simply extend the ghost region to include the elements of the neighbor processes. In this way the points to interpolate at lie in the ghost region of the process. Is there a way I could extend the ghost region if I know the neighbor ranks?</div></div></blockquote><div><br></div><div>I see at least two cases:</div><div><br></div><div> 1) Only a few points, anywhere in the domain</div><div><br></div><div> If you have a few points that can be anywhere in the domain, I would use</div><div><br></div><div> <a href="https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/SNES/DMInterpolationCreate.html#DMInterpolationCreate">https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/SNES/DMInterpolationCreate.html#DMInterpolationCreate</a></div><div><br></div><div> 2) Lots of points, close to boundaries</div><div><br></div><div> If you have lots of points, but off-process points are close to boundaries, then I would use</div><div><br></div><div> <a href="https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DMPLEX/DMPlexDistributeOverlap.html">https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DMPLEX/DMPlexDistributeOverlap.html</a></div><div><br></div><div> to get a new, overlapping Plex which you can then use the purely local point location and interpolation functions.</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,</div><div>Swarnava</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jun 17, 2019 at 3:13 PM Matthew Knepley <<a href="mailto:knepley@gmail.com" target="_blank">knepley@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"><div dir="ltr"><div dir="ltr">On Mon, Jun 17, 2019 at 6:09 PM Swarnava Ghosh via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov" target="_blank">petsc-users@mcs.anl.gov</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,<div><br></div><div>I am trying to extract parts of a distributed dmplex mesh in each MPI process. For each process, the mesh to extract is the part of the mesh owned by that process and the parts of the mesh owned by a few neighbor processes, and the extracted mesh is stored locally to that process. For each process, I know what the ranks of the neighbor processes are.</div><div><br></div><div>Would you please share any ideas on how to go about this?</div></div></blockquote><div><br></div><div>It might be better to start by telling us what you want to do.</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> </div><div>Sincerely,</div><div>SG</div></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail-m_-2195305378512608382gmail-m_8934721011090658686gmail-m_-8139046989208934126gmail_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>
</blockquote></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>