<div class="gmail_quote">On Thu, Aug 23, 2012 at 6:16 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 class="im">On Thu, Aug 23, 2012 at 5:59 PM, Jed Brown <span dir="ltr"><<a href="mailto:jedbrown@mcs.anl.gov" target="_blank">jedbrown@mcs.anl.gov</a>></span> wrote:<br></div><div class="gmail_quote"><div class="im">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="gmail_quote"><div>On Thu, Aug 23, 2012 at 5:50 PM, Chris Eldred <span dir="ltr"><<a href="mailto:chris.eldred@gmail.com" target="_blank">chris.eldred@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


For the extended operators, I was going to write:<br>
<br>
1) DMComplexGetLabelClosure- returns the points from a transitive<br>
closure with a given value for a given label (this will implement both<br>
star(vertex) \ support(vertex) and closure(cell) \ cone(cell); along<br>
with many other operators)<br>
2) DMComplexGetNeighbors- returns U cone(support()) OR  U<br>
support(cone()) by setting a Boolean flag<br>
<br>
These two operators should cover "nearest neighbors" of all types.<br></blockquote><div><br></div></div><div>What about having<br><br>typedef enum {DMCOMPLEX_VERTEX = 0x1,DMCOMPLEX_EDGE = 0x2,DMCOMPLEX_FACE = 0x4,DMCOMPLEX_CELL = 0x8} DMComplexPointType;<br>


<br>DMComplexGetClosure(dm,point_type,label,array,basepoint,&npoints,&values)<br><br>You can always use point_type = my_type-1 to get values from all points in the closure, but this allows you to jump directly to particular levels. Similar for Support. Then you could get rid of cone and star because nobody can remember those anyway. You just have Closure and Support with results restricted to points of a given type (topological dimension).</div>

</div></blockquote><div><br></div></div><div>Never.</div></div></blockquote><div><br></div><div>Note that you can do bitwise or and that mytype-1 gives the current Closure behavior while mytype>>1 gives Cone. (Wrap the shifts in convenience functions if you like.)</div>
</div>