<div dir="ltr"><div><div>Thank you, Matt,<br></div>the source codes of DMPlexComputeCellGeometryFVM and your other links seem to be very helpful. I think they answer most of my questions. I might come back with a few more detailed questions in 1-2 weeks if that is ok with you.<br><br></div><div>Thanks<br></div>Herrmann<br><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Sep 7, 2016 at 4:39 PM, Matthew Knepley <span dir="ltr"><<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span class="">On Mon, Sep 5, 2016 at 12:52 PM, Tonio Herrmann <span dir="ltr"><<a href="mailto:tonioherrmann@gmail.com" target="_blank">tonioherrmann@gmail.com</a>></span> wrote:<br><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><div><div><div><div>Hello,<br></div>I am new to PETSc, and I am struggling to use it for some numerics problems. The mathematical capabilities are well explained in the manual, in several tutorials and examples.<br><br></div>But I am stuck at every tiny step, because I cannot find the required functions for all the very basic technical details, like getting the vertex coordinates of a DMPlex, the face areas and cell volumes (if available through PETSc?). Merging two DMPlexes, that share a common boundary, into one. Extracting a boundary of one DMPlex as a new DMPlex. Etc.<br></div></div></div></div></blockquote><div><br></div></span><div>Hi Hermann,</div><div><br></div><div>There is currently no introduction of the kind you want. Everything I have written is geared towards solving PDEs because that</div><div>it what I do with most of my time, and it is what I get the most questions about. However, there are some resources:</div><div><br></div><div>a) Papers</div><div><br></div><div>         <a href="http://arxiv.org/abs/0908.4427" target="_blank">http://arxiv.org/abs/0908.<wbr>4427</a></div><div>         <a href="http://arxiv.org/abs/1506.07749" target="_blank">http://arxiv.org/abs/1506.<wbr>07749</a></div><div>         <a href="http://arxiv.org/abs/1508.02470" target="_blank">http://arxiv.org/abs/1508.<wbr>02470</a></div><div>         <a href="http://arxiv.org/abs/1506.06194" target="_blank">http://arxiv.org/abs/1506.<wbr>06194</a></div><div><br></div><div>b) Manpages</div><div><br></div><div>For example, you can get the coordinates of a DM using</div><div><br></div><div>  <a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DM/DMGetCoordinates.html" target="_blank">http://www.mcs.anl.gov/<wbr>petsc/petsc-current/docs/<wbr>manualpages/DM/<wbr>DMGetCoordinates.html</a></div><div>  <a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DM/DMGetCoordinatesLocal.html#DMGetCoordinatesLocal" target="_blank">http://www.mcs.anl.gov/<wbr>petsc/petsc-current/docs/<wbr>manualpages/DM/<wbr>DMGetCoordinatesLocal.html#<wbr>DMGetCoordinatesLocal</a></div><div><br></div><div>or compute things like volumes or face areas,</div><div><br></div><div>  <a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DM/DMPlexComputeCellGeometryFVM.html" target="_blank">http://www.mcs.anl.gov/<wbr>petsc/petsc-current/docs/<wbr>manualpages/DM/<wbr>DMPlexComputeCellGeometryFVM.<wbr>html</a></div><div><br></div><div>or extracting the boundary</div><div><br></div><div>  <a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DM/DMPlexCreateSubmesh.html" target="_blank">http://www.mcs.anl.gov/<wbr>petsc/petsc-current/docs/<wbr>manualpages/DM/<wbr>DMPlexCreateSubmesh.html</a></div><div><br></div><div>c) Examples</div><div><br></div><div>There are a lot of examples, like SNES ex12, ex62, ex77 where we use these operations to solve PDEs.</div><div><br></div><div>There is no operation for merging two Plex objects, but it would not be hard to write, if you marked the common</div><div>boundary in both using a DMLabel. Plex is intended to be transparent enough for users to write new operations</div><div>like these.</div><div><br></div><div>  Thanks,</div><div><br></div><div>      Matt</div><span class=""><div><br></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><div><div></div>Is there any technical introduction that shows how to deal with the data structures on a basic, geometrical and topological level without necessarily discussing the numerics of PDEs and equation systems?<br><br></div>Thank you<br></div>Hermann<br></div>
</blockquote></span></div><span class="HOEnZb"><font color="#888888"><br><br clear="all"><div><br></div>-- <br><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>
</font></span></div></div>
</blockquote></div><br></div>