<div dir="ltr">Lawrence,<div><br></div><div>I wrote the periodic GMSH reader and I can answer for it.</div><div><br></div><div>With DMPlex, when we have periodicity, we currently have two ways of encoding it</div><div><br></div><div>1) through the maxCell concept (or, as Lisandro's like to call it, the "maxCell crap")</div><div>2) through the coordinatesSection</div><div><br></div><div>Since periodicity with general meshed cannot be encoded with 1), I populate the cell part of the coordinates section with the "localized coordinates" (only for periodic cells), and leave all the other dofs associated with the vertices.</div><div>I believe this kind of localization is also what you get with the maxCell crap (check it out with the BoxMesh): even in this case in the coordinate section you have cell dofs only for cells touching the periodic boundary, and all the vertices have their own coordinates.</div><div>Look eg in DMPlexComputeLineGeometry_Internal.</div><div><br></div><div>What you know for sure is that the first 6 entries of the closure are the ones you should look for (not the size of the closure)</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2018-07-12 13:18 GMT+03:00 Lawrence Mitchell <span dir="ltr"><<a href="mailto:lawrence.mitchell@imperial.ac.uk" target="_blank">lawrence.mitchell@imperial.ac.uk</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Dear petsc-dev,<br>
<br>
I am attempting to understand how Plex reads GMSH files with<br>
periodicity.  In particular, what happens to the coordinate localisation.<br>
<br>
Here's what I expect:<br>
<br>
When reading a periodic mesh, the coordinate section will not only<br>
associate dofs with mesh vertices, but instead where the "periodic<br>
boundary" is (at least), the vertices have no dofs associated with<br>
them, and instead the cell has the coordinate dofs for that cell.<br>
<br>
Hence, for a triangular mesh, I expect that for every cell, if I call:<br>
<br>
DMPlexVecGetClosure(dm, coordSection, coords, cell, ...);<br>
<br>
That I will always get back an array with 6 entries.<br>
<br>
However, this is not the case.  For those cells that have been<br>
identified as periodic, the vertices still have dofs associated with<br>
them, and so I get back 12 entries when calling VecGetClosure, with<br>
each coordinate repeated twice.<br>
<br>
Am I misunderstanding what's going on?<br>
<br>
Cheers,<br>
<br>
Lawrence<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">Stefano</div>
</div>