<div dir="ltr"><div dir="ltr">On Sat, Jun 13, 2020 at 3:42 AM Prateek Gupta <<a href="mailto:prateekgupta1709@gmail.com">prateekgupta1709@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>Hi, <br></div><div>I intend to implement adaptive remeshing and refining in my FE code. Currently, I am not using the DMPlex class of PETSc. As anyone would be able to guess, renumbering of mesh nodes and then , in some cases, load balancing via repartitioning requires a lot of book keeping. <br></div><div><br></div><div>1. I am wondering if DMPlex has built in functions which could be used to automatically renumber the mesh upon operations like edge-flipping in tetrahedra? </div></div></blockquote><div><br></div><div>You normally do not need to renumber here, since you start and end with the same number of entities, but the topology changes. This is fairly easy to do in Plex</div><div>(DMPlexSetCone), but the problem is that these algorithms routinely run over parallel partitions, which is difficult to manage.</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>2. If not, then does DAG representation of the grid offer any ease/performance benefits, if I had to go down and implement? </div></div></blockquote><div><br></div><div>I think so. Some papers are listed here: <a href="https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DMPLEX/index.html">https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DMPLEX/index.html</a></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>3. Upon adaptive refining and coarsening, is there a way to dynamically update my global solution vectors (defined on nodes)? Or do I have to destroy old vectors and reallocate? </div></div></blockquote><div><br></div><div>Destroy and reallocate. This is not normally a performance bottleneck, and it would be interesting to see a case where it was.</div><div><br></div><div>We have interfaces to p4est (mature) and Pragmatic (not mature).</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>Any help/pointers are greatly appreciated :)<br></div><div><br></div><div><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div><div><div>Thank you.<br>Sincerely,<br>Prateek Gupta, PhD</div><div>D-MAVT, ETHZ<br></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></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>