<div dir="ltr"><div dir="ltr">On Mon, Mar 16, 2020 at 5:20 PM Yann Jobic <<a href="mailto:yann.jobic@univ-amu.fr">yann.jobic@univ-amu.fr</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 all,<br>
<br>
I would like to implement a nodal DG with the DMPlex interface.<br>
Therefore, i must add the internal nodes to the DM (GLL nodes), with the <br>
constrains :<br>
1) Add them as solution points, with correct coordinates (and keep the <br>
good rotational ordering)<br>
2) Find the shared nodes at faces in order to compute the fluxes<br>
3) For parallel use, so synchronize the ghost node at each time steps<br></blockquote><div><br></div><div>Let me get the fundamentals straight before advising, since I have never implemented nodal DG.</div><div><br></div><div>  1) What is shared?</div><div><br></div><div>      We have an implementation of spectral element ordering (<a href="https://gitlab.com/petsc/petsc/-/blob/master/src/dm/impls/plex/examples/tutorials/ex6.c">https://gitlab.com/petsc/petsc/-/blob/master/src/dm/impls/plex/examples/tutorials/ex6.c</a>). Those share</div><div>      the whole element boundary.</div><div><br></div><div>  2) What ghosts do you need?</div><div><br></div><div>  3) You want to store real space coordinates for a quadrature?</div><div><br></div><div>      We usually define a quadrature on the reference element once.</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">
I found elements of answers in those threads :<br>
<a href="https://lists.mcs.anl.gov/pipermail/petsc-users/2016-August/029985.html" rel="noreferrer" target="_blank">https://lists.mcs.anl.gov/pipermail/petsc-users/2016-August/029985.html</a><br>
<a href="https://lists.mcs.anl.gov/mailman/htdig/petsc-users/2019-October/039581.html" rel="noreferrer" target="_blank">https://lists.mcs.anl.gov/mailman/htdig/petsc-users/2019-October/039581.html</a><br>
<br>
However, it's not clear for me where to begin.<br>
<br>
Quoting Matt, i should :<br>
"  DMGetCoordinateDM(dm, &cdm);<br>
   <Set field information into cdm instead of dm><br>
  DMCreateLocalVector(cdm, &coordinatesLocal);<br>
  <Fill in higher order coordinate values><br>
  DMSetCoordinatesLocal(dm, coordinatesLocal);"<br>
<br>
However, i will not create ghost nodes this way. And i'm not sure to <br>
keep the good ordering.<br>
This part should be implemented in the PetscFE interface, for high order <br>
discrete solutions.<br>
I did not succeed in finding the correct part of the source doing it.<br>
<br>
Could you please give me some hint to begin correctly thoses tasks ?<br>
<br>
Thanks,<br>
<br>
Yann<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>