<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Nov 21, 2013 at 8:12 PM, Geoffrey Irving <span dir="ltr"><<a href="mailto:irving@naml.us" target="_blank">irving@naml.us</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">What are the orientation semantics of DMPlex?  I figured if I listed<br>
the edges of each triangle in counterclockwise order it would come out<br>
right, but it appears to be right for some triangles and wrong for<br>
others.  Do I always have to call DMPlexSetConeOrientation?<br>
<br>
Unfortunately, I haven't yet grasped the documentation for<br>
DMPlexSetConeOrientation.<br></blockquote><div><br></div><div>This is because I have kept changing my mind. There is the way it is, and</div><div>the way I want it to be now. So, the way it is:</div><div><br></div><div>  All cone arrows have an orientation attached. This indicates the order in</div>
<div>which the _next_ cone (of that cone point) should be read out. The order</div><div>is cyclic. A positive integer p means "start from vertex p instead of 0". A</div><div>negative integer q means "start from -(q+1) and go backward".</div>
<div><br></div><div>The important thing to remember here is that this is ordering only the cone</div><div>points, and is composed with higher level ordering when reading out the</div><div>full closure is 3D. I have considered changing the semantics for negative</div>
<div>values to start at -(coneSize-q+1) since then negation does what you think</div><div>it should (go backwards from the guy just before), but then all the routines</div><div>needs to know the coneSize which is not great.</div>
<div><br></div><div>The reason that your example does not work is that triangles on opposite sides</div><div>of an edge must have the opposite orientation for that edge. For example, an</div><div>edge e = {v0, v1} lies between two triangles. Now the cone of e will always come</div>
<div>out {v0, v1}. In triangle 0 that is fine, but in triangle 1 it needs to be {v1, v0} if all</div><div>triangles are oriented counter-clockwise, so we need orientation -2 for that edge</div><div>in the cone of triangle 1.</div>
<div><br></div><div>  Thanks,</div><div><br></div><div>      Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Thanks,<br>
Geoffrey<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>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>