[MOAB-dev] Order of entities in unordered entity sets?

Tim Tautges tautges at mcs.anl.gov
Tue Jun 1 19:16:14 CDT 2010


Groan; I won't even bother to explain the convoluted thinking behind my last answer.

The description below should be what you see; isList=true should give you a vector, which preserves order and allows 
duplicates; =false should return ordered entities.

The only thing I can think of is if you're asking for entities recursively and there are contained sets.  Is that the case?

- tim

On 06/01/2010 06:53 PM, James Porter wrote:
> I'm just going on what the iMesh.h documentation says:
>
> * Create an entity set, either ordered (isList=1) or unordered
> * (isList=0).  Unordered entity sets can contain a given entity or
> * set only once.
> ...
> * \param isList If non-zero, an ordered list is created, otherwise an
> *        unordered set is created.
>
> It was my impression that "ordered" here meant "the order in which you add entities is preserved", NOT "retrieving entities will retrieve them in order". That is, when isList is true, it looks like an std::list and when isList is false, it looks like an std::set. If this is wrong, we should probably update the documentation (maybe we should anyway, since "ordered" can be ambiguous).
>
> Anyway, to remove any ambiguity, what I mean is that I have an std::set-like entity set, and after adding a bunch of entities to it, I try to get them back, but the result looks like this: { vertices, edges, faces, more vertices }. The behavior doesn't seem to match either type of entity set, since the order in which I add stuff is edges+faces first and then vertices.
>
> - Jim
>
> On 06/01/10, Tim Tautges<tautges at mcs.anl.gov>  wrote:
>
>> Um, if isList=false, the set should be ordered.  If it is unordered, isList should be true, which means it is NOT stored in order.  Basically, an iMesh set is either a set or a list.
>>
>> - tim
>>
>> On 06/01/2010 06:05 PM, James Porter wrote:
>>> Hey all,
>>>
>>> I was under the impression that unordered entity sets (isList=false) in
>>> MOAB store their entities in sorted order, which means that they're also
>>> sorted by dimension. However, I'm seeing vertices stored *after* edges
>>> and faces in some code from MeshKit. If this is a bug, I'll see if I can
>>> come up with a minimal test-case that fails, but I wanted to make sure
>>> I'm not going crazy first.
>>>
>>> - Jim
>>>
>>>
>>
>> --
>> ================================================================
>> "You will keep in perfect peace him whose mind is
>>    steadfast, because he trusts in you."               Isaiah 26:3
>>
>>               Tim Tautges            Argonne National Laboratory
>>           (tautges at mcs.anl.gov)      (telecommuting from UW-Madison)
>>           phone: (608) 263-8485      1500 Engineering Dr.
>>             fax: (608) 263-4499      Madison, WI 53706
>

-- 
================================================================
"You will keep in perfect peace him whose mind is
   steadfast, because he trusts in you."               Isaiah 26:3

              Tim Tautges            Argonne National Laboratory
          (tautges at mcs.anl.gov)      (telecommuting from UW-Madison)
          phone: (608) 263-8485      1500 Engineering Dr.
            fax: (608) 263-4499      Madison, WI 53706



More information about the moab-dev mailing list