<div dir="ltr"><div dir="ltr">On Fri, Aug 4, 2023 at 12:06 PM onur.notonur via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov">petsc-users@mcs.anl.gov</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 style="font-family:Arial,sans-serif;font-size:14px">Hi,</div><div style="font-family:Arial,sans-serif;font-size:14px"><br></div><div style="font-family:Arial,sans-serif;font-size:14px"><span><span><span>I'm currently working with 3D DMPlex and performing crucial calculations involving face normals and edge tangents. I've noticed that face normals are directed from support[0] to support[1].</span></span></span></div></blockquote><div><br></div><div>That is an accident of implementation and not enforced.</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 style="font-family:Arial,sans-serif;font-size:14px"><span><span><span> However, I'm uncertain about the conventions for edges and vertices in relation to faces. Specifically, I need to determine the order of vertices that create a surface and whether they are stored in a counter-clockwise (CCW) or clockwise (CW) manner. As DMPlex follows a hierarchy of cell-face-edge-vertex, my main question becomes about the orientation of edges. Any clarification on this aspect would be immensely helpful!</span></span></span></div></blockquote><div><br></div><div>1) All computed quantities follow the closure ordering, namely that the order that vertices come out in the DMPlexGetTransitiveClosure() call is the one used for computing.</div><div><br></div><div>2) Closures are always ordered to produce outward normals</div><div><br></div><div>3) Since we build k-cells out of k-1 cells, the k-1 cells _already_ have an ordering before I make my k-cell. Thus I have to tell you how to order the k-1 cell, with respect to its closure ordering, when you are building your k-cell. This is what an "orientation" is, namely a representation of the dihedral group for that k-1 cell.</div><div><br></div><div>Example: A segment has two orientations, which we label 0 and -1. When we build a triangle out of segments, we order them counter-clockwise, so that the normals are all outward. The same thing is done</div><div>for quads.</div><div><br></div><div>Triangles have 6 orientations, all the permutations of the edges. We pick one when making tetrahedra such that the normals are outward _and_ the vertices are in the closure order.</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 style="font-family:Arial,sans-serif;font-size:14px"><span><span>Additionally, I'm unfamiliar with most of the terms used in DMPlex. For example "orientation" in DMPlexGetConeOrientation. If you could suggest some readings or resources that explain these concepts, I would greatly appreciate it.</span></span></div></blockquote><div><br></div><div>I am finishing up my book on it, which I will post. To start, here is a paper</div><div><br></div><div>  <a href="https://arxiv.org/abs/2004.08729">https://arxiv.org/abs/2004.08729</a></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 style="font-family:Arial,sans-serif;font-size:14px"><span>Thx,</span></div><div style="font-family:Arial,sans-serif;font-size:14px"><span>Onur</span></div>
<div style="font-family:Arial,sans-serif;font-size:14px">
    <div>
        
            </div>
    
            <div>
        Sent with <a href="https://proton.me/" rel="noopener noreferrer" target="_blank">Proton Mail</a> secure email.
    </div>
</div>
</blockquote></div><br clear="all"><div><br></div><span class="gmail_signature_prefix">-- </span><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>