<div dir="ltr"><div dir="ltr">Thank you for the quick note. </div><div dir="ltr">To use PetscFECreateLagrange(), it is unclear about the meaning of "Nc", which is explained as 'number of components' on the manual page. </div><div dir="ltr">I looked at an example with Nc=1 in src/dm/impls/swarm/tutorials/ex1f90.F90, but could you please detail the meaning of Nc? If only one value (component) is defined on each of p0 and p1 DMs, is Nc=1?<br></div><div>Thanks,</div><div dir="ltr"><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"><div dir="ltr"><br>On Thu, Aug 25, 2022 at 12:52 PM Mike Michell <<a href="mailto:mi.mike1021@gmail.com" target="_blank">mi.mike1021@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"><div dir="ltr">Hi, I am trying to find the function you commented, DMPlexCreateInterpolator(), from DMPlex manual page, but I do not think this function is visible. Any comment about this? <br></div></div></blockquote><div><br></div><div>Sorry, it is DMCreateInterpolation(), which in turn calls DMPlexComputeInterpolatorNested/General.</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 dir="ltr">Thanks,<br></div><br><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"><div dir="ltr"><br>On Fri, Jul 8, 2022 at 11:26 PM Mike Michell <<a href="mailto:mi.mike1021@gmail.com" target="_blank">mi.mike1021@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">I am using DMPlex for a code with written in Fortran in 2D and 3D. There were two questions.<div><br></div><div>- As a follow up of the previous inquiry: <a href="https://www.mail-archive.com/petsc-users@mcs.anl.gov/msg43856.html" target="_blank">https://www.mail-archive.com/petsc-users@mcs.anl.gov/msg43856.html</a></div><div>Is the local-to-local halo exchange available in Fortran now or still pending? Currently local-to-global and global-to-local communication are used since local-to-local has not been allowed for Fortran.</div></div></blockquote><div><br></div><div>Sorry, it is still on my TODO list. I am trying to get stuff cleared out.</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>- One code solves discretized equations at each vertex, and another code I want to couple physics is solving equations at each cell centroid. Basically, the value at cell centroid needs to be mapped to vertex (or vice versa) through interpolation/extrapolation for coupling of two codes. Does petsc function provide this kind of mapping between cell centroid and vertex? The grids for the two codes can be overlapped. I was trying to find some FEM infrastructures in petsc, but so far havent found that kind of functionality. Can I get any comments on that?</div></div></blockquote><div><br></div><div>Yes, you can create both P0 and P1 discretizations (PetscFECreateLagrange) in two different DMs using DMClone(), and then create an interpolation operator (DMPlexCreateInterpolator) which maps between them. Let me know if something is not clear there.</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>Thanks, </div><div>Mike</div><div><br></div></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr"><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></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr"><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></div>