<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sun, Jul 5, 2015 at 11:57 AM, Filippo Leonardi <span dir="ltr"><<a href="mailto:filippo.leonardi@sam.math.ethz.ch" target="_blank">filippo.leonardi@sam.math.ethz.ch</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><u></u>
<div style="font-family:'Oxygen Mono';font-size:9pt;font-weight:400;font-style:normal">
<p style="margin:0px;text-indent:0px">Hi all,</p>
<p style="margin:0px;text-indent:0px"> </p>
<p style="margin:0px;text-indent:0px">I'm starting to migrate my code to DMDAs to use DMPlex but I have troubles that neither the documentation nor google can answer.</p>
<p style="margin:0px;text-indent:0px"> </p>
<p style="margin:0px;text-indent:0px">1) I want to to traverse the DAG associated to the DMPlex in the following way: assuming I have a DMPlex of dimension 2, I have a point representing a cell (2 dimensional) and I want to find all neighbouring 2-dim cells. A way to do this may be to GetCone and then follow the arrows in reverse in the DAG from height 2 to height 1. Any routine to do that? I looked at the DM documentation page but cannot find the proper one. I tried all the GetAdjacency routines but none of them seems to give the right implementation. I am thinking of something like GetCone or GetSupport, but from 2-dim cell to adjacent 2-dim cell.</p></div></blockquote><div><br></div><div>You would use</div><div><br></div><div><a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DM/DMPlexGetAdjacency.html">http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DM/DMPlexGetAdjacency.html</a><br></div><div><br></div><div>Note that the default is for FEM style adjacency. If you want FVM style, you need to call</div><div><br></div><div>  <a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DM/DMPlexSetAdjacencyUseClosure.html#DMPlexSetAdjacencyUseClosure">http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DM/DMPlexSetAdjacencyUseClosure.html#DMPlexSetAdjacencyUseClosure</a></div><div>  <a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DM/DMPlexGetAdjacencyUseCone.html#DMPlexGetAdjacencyUseCone">http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DM/DMPlexGetAdjacencyUseCone.html#DMPlexGetAdjacencyUseCone</a></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="font-family:'Oxygen Mono';font-size:9pt;font-weight:400;font-style:normal"><p style="margin:0px;text-indent:0px"><span style="font-size:9pt"> </span></p>
<p style="margin:0px;text-indent:0px">2) I've noticed that the numbering concerning the Height in the BFS search of the DMPlex section is a bit inconsistent. What I mean is that if want all the 2-dim cells of my DMPlex I should do:</p>
<p style="margin:0px;text-indent:0px">DMPlexGetHeightStratum(dm, d, &pStart, &pEnd);</p>
<p style="margin:0px;text-indent:0px">with d = 0, but if I'd like to call</p>
<p style="margin:0px;text-indent:0px">DMPlexCreateSection</p>
<p style="margin:0px;text-indent:0px">and create DOFs on the 2-dim cell, I have to do:</p>
<p style="margin:0px;text-indent:0px">numDof[f*(dim+1)+d]     = 2;</p>
<p style="margin:0px;text-indent:0px">with d = 2.</p>
<p style="margin:0px;text-indent:0px">Is there any reason behind that? I was trying with some mock example and fell into this trap a couple of times.</p></div></blockquote><div><br></div><div>There are two measures, the 'depth' which matches the idea of dimension, and the 'height' which matches</div><div>the idea of co-dimension. In CreateSection() I have gone with input by depth, mostly because a prior</div><div>implementation in the FIAT package did it that way.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="font-family:'Oxygen Mono';font-size:9pt;font-weight:400;font-style:normal">
<p style="margin:0px;text-indent:0px">3) This brings me to the following: I've noticed that the documentation is a bit "sparse", and I'd really like to contribute, especially improving the APIs documentation. I am not native speaker and new to all the DMPlex business but if you devs think this may be useful, I'll be glad to help.</p>
<p style="margin:0px;text-indent:0px">Would this be of any use to you?</p></div></blockquote><div><br></div><div>Sure, pull requests are the best way to do this since we can review them. I am trying to have all</div><div>the functions documented. I do hold off on some of the more experimental ones in order to see</div><div>how we like the interface before advertising it.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="font-family:'Oxygen Mono';font-size:9pt;font-weight:400;font-style:normal">
<p style="margin:0px;text-indent:0px">4) I had problems loading meshes from Gmsh and, as far as I understood, it seems that is not PETSc preferred mesher (got problems with boundaries IS). PETSc seems to like this ExodusII format, any suggestion of a tool similar to Gmsh that creates ExodusII meshes?</p></div></blockquote><div><br></div><div>The Gmsh problems should be fixed in the latest release due to hard work from MIchael Lange. Report the problems</div><div>and we will see what can be done.</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-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="font-family:'Oxygen Mono';font-size:9pt;font-weight:400;font-style:normal">
<p style="margin:0px;text-indent:0px">Sorry for the length and thanks in advance.</p>
<p style="margin:0px;text-indent:0px"> </p>
<p style="margin:0px;text-indent:0px">Best,</p>
<p style="margin:0px;text-indent:0px">Filippo</p></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">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></div>