<html><head><style type='text/css'>p { margin: 0; }</style></head><body><div style='font-family: Times New Roman; font-size: 12pt; color: #000000'>Hello,<br>I will try to answer to some of those questions;<br><br><hr id="zwchr"><blockquote style="border-left:2px solid rgb(16, 16, 255);margin-left:5px;padding-left:5px;">
<div>Hi Tim,</div><div><br></div><div>I've had a good deal of success this week and have been able to represent a couple of our simpler datasets in what seems to be a reasonable manner. &nbsp;I have also come up with a few questions.&nbsp;</div><div><br></div><div>Tags:</div><ul><li id="DWT3878">DataTypes – from what I can see, tags do not support a few of the numpy datatypes, namely: float32, int16, and int64. &nbsp;Is this a constraint of the PyTAPS wrapper or the underlying iMesh/MOAB infrastructure?</li></ul></blockquote>itaps has a limited data type set; see MOAB/itaps/iBase.h<br>pytaps is closely related to itaps;<br><br>some types can be "manufactured" out of byte type, but it is the user responsibility to interpret / convert correctly (so interpret an int16 as a 2-byte value, etc). I am not sure if something like that is possible in python/pytaps. It is for sure possible in c/c++<br><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"><ul><li></li><li id="DWT3879">Tags-of-tags – Is this possible? &nbsp;I've tried a couple of ways but can't seem to get it to go.</li></ul></blockquote>tags can be set/get on anything that is an "EntityHandle" in moab. So anything that is an entity handle (node, element, mesh set) can set and get tag values, using a tag handle. <br>I am not sure I understand the question. Would you need to set a tag value on a tag handle? That is not possible.&nbsp; <br><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"><ul><li></li></ul><div>Topology:</div><ul><li id="DWT3880">Is it possible to apply topology over entity sets? &nbsp;One way I've found for dealing with time is to have a "temporal" EntitySet that has child EntitySets for each timestep. &nbsp;This seems to work well, but I can't find a way of relating the various timesteps aside from the inherent indexing of the "temporal" EntitySet. &nbsp;I hoped that it would be possible to do something like make a line_segment that related the timestep EntitySets, but that didn't seem to work.</li></ul></blockquote>maybe you can set a tag with the time value for each of the child EntitySets. I am not sure I understand what do you mean by "line_segment".<br>Also, if set1 is a child of set2, it does not mean that the set2 is a parent of set1 (and viceversa)&nbsp; see the difference between <br>add_parent_child and add_child_meshset, for example<br><br>Another thing that can help:<br>&nbsp;you add child1 to set1, then add child2 to set1<br>When you ask for children of set1, you will always get them in order child1, child2. So maybe you can use that for a natural ordering of your children ( EntitySets ).<br><br>Another question: Is the mesh changing in time? That is one reason you may want EntitySets changing in time. Or maybe some solution uses different mesh elements at a given time<br><br><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"><ul><li></li><li>Edges from quadrilaterals: &nbsp;After building a set of quadrilateral entities from an array of vertices, I was surprised that there were not edge entities generated as well. &nbsp;Is there a method for doing this? &nbsp;I realize I could generate the edges from the vertex array (perhaps after some reworking), but it seems to me that it might also be possible to get them from the quadrilaterals themselves.</li></ul><div id="DWT3881"><br></div></blockquote>this is the easiest question:)<br>you have to use the flag create_if_missing=true in a call like:<br>ErrorCode get_adjacencies(const EntityHandle *from_entities,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const int num_entities,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const int to_dimension,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const bool create_if_missing,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; std::vector&lt;EntityHandle&gt;&amp; adj_entities,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const int operation_type = Interface::INTERSECT) = 0;<br><br>from_entities are your quads, to_dimension is 1 (edges), and you will get the edges in adj_entities vector.<br><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"><div></div><div><br></div><div>Thanks in advance,</div><div>Chris</div>
</blockquote>Hope this helps,<br>Iulian<br></div></body></html>