<div dir="ltr"><div dir="ltr">On Tue, Aug 27, 2019 at 4:44 AM Ruth Schöbel via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov">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">Hi,<br>
I am on the way to write a program in python where I need parallel high<br>
order interpolation.<br>
I saw there exists “createInterpolation(self, DM dm)”, but this seems to<br>
be accurate only for constant functions.</blockquote><div><br></div><div>Linear functions.</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"> Is there a way to get a higher<br>
order interpolation matrix? If it does not exist maybe someone has<br>
already written a code himself which I may use?<br></blockquote><div><br></div><div>All the pieces are in PETSc, just not hooked up in the way you need. Here we are dispatching to</div><div>local interpolation:</div><div><br></div><div>  <a href="https://gitlab.com/petsc/petsc/blob/master/src/snes/utils/dmplexsnes.c#L886">https://gitlab.com/petsc/petsc/blob/master/src/snes/utils/dmplexsnes.c#L886</a></div><div><br></div><div>It is currently hard coded to linear interpolation, as you point out. However, PETSc has high order</div><div>interpolation. You would want something like this loop</div><div><br></div><div>  <a href="https://gitlab.com/petsc/petsc/blob/master/include/petsc/private/petscfeimpl.h#L216">https://gitlab.com/petsc/petsc/blob/master/include/petsc/private/petscfeimpl.h#L216</a></div><div><br></div><div>but with a tabulation for your points, which you can get from</div><div><br></div><div>  <a href="https://gitlab.com/petsc/petsc/blob/master/src/dm/dt/fe/interface/fe.c#L862">https://gitlab.com/petsc/petsc/blob/master/src/dm/dt/fe/interface/fe.c#L862</a></div><div><br></div><div>I know this is more complicated than it should be, but we have not quite worked out what should be</div><div>exposed to the user. I would just replace that short, linear DMPlexInterpolationEvalute() routine with</div><div>a higher order one which assumes a PetscFE or PetscDS that comes in with it.</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">
Thanks Ruth<br>
<br>
<br>
<br>
------------------------------------------------------------------------------------------------<br>
------------------------------------------------------------------------------------------------<br>
Forschungszentrum Juelich GmbH<br>
52425 Juelich<br>
Sitz der Gesellschaft: Juelich<br>
Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498<br>
Vorsitzender des Aufsichtsrats: MinDir Volker Rieke<br>
Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender),<br>
Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt,<br>
Prof. Dr. Sebastian M. Schmidt<br>
------------------------------------------------------------------------------------------------<br>
------------------------------------------------------------------------------------------------<br>
<br>
</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>