[MOAB-dev] merge question

Tim Tautges tautges at mcs.anl.gov
Wed Sep 7 11:24:59 CDT 2011



On 09/07/2011 09:54 AM, Iulian Grindeanu wrote:
>
>
> ----- Original Message -----
>> I can't think of any reason why that needs to happen...
>>
>> - tim
>>
>> On 09/07/2011 09:05 AM, Iulian Grindeanu wrote:
>>> Hello,
>>>
>>> I have a question about merge_entities method in moab::Core
>>> ErrorCode Core::merge_entities( EntityHandle entity_to_keep,
>>>                                          EntityHandle
>>>                                          entity_to_remove,
>>>                                           bool auto_merge,
>>>                                           bool delete_removed_entity)
>>>
>>> Somewhere deep during the adjust adjacency call(
>>> aEntityFactory->merge_adjust_adjacencies(entity_to_keep,
>>> entity_to_remove) ),
>>> some new entities are created, and I am not sure why.
>>>
>>> Is it because of overabundance of caution?
>>>
>>> During merge_adjust_adjacency call, a call to check_equiv_entities
>>> is made, in which a call to "result =
>>> create_explicit_adjs(*rit_rm);" is made. At this point, if 2 nodes
>>> are merged, all the adjacent entities to each of the nodes are
>>> created, even though none might have existed before the merge (so,
>>> when you merge hexas, all quads and edges are created, connected to
>>> the hexas at the interface)
>>>
>>> I am trying to understand the reasoning, and I think I am missing
>>> something.
>>>
>>> Any help?
>>>
>>> Thanks,
>>> Iulian
>>>
>>> ...
>>>
>>>
> check_equiv_entities and create_explicit_adjs methods are called only during this adjacency adjustment, I could not find other references to them. Instead of create_explicit_adjs method, I would think we need something like "update_explicit_adj".
>
> I still have one question. Do we ever keep explicit adjacency between edges and faces, for example, or that adjacency is established every time using the nodes adjacencies? (which we keep if requested at least once)
> The paragraph 2.2.1 in Moab Guide states:
> "
> Adjacencies&  AEntities
> The term adjacencies is used to refer to those entities topologically connected to a given entity, e.g. the faces bounded by a given edge or the vertices bounding a given region.  MOAB provides functions for querying adjacent entities by target dimension, using the same functions for higher- and lower-dimension adjacencies.  By default, MOAB stores the minimum data necessary to recover adjacencies between entities.  When a mesh is initially loaded into MOAB, only entity-vertex (i.e. “downward”) adjacencies are stored, in the form of entity connectivity.  When “upward” adjacencies are requested for the first time, e.g. from vertices to regions, MOAB stores all vertex-entity adjacencies explicitly, for all entities in the mesh.  Non-vertex entity to entity adjacencies are never stored, unless explicitly requested by the application
> "
>
> The last phrase: "unless explicitly requested by application". Can an application request to keep explicit adjacencies between non-vertex entities?
>

Yes, but only on an individual entity basis (i.e. it can't request that they always be created for entities created in 
the future).

> Is there a relation between this "create_explicit_adjs" method used in merging and this last phrase in the paragraph above?
>

Not sure what you're asking here...

- tim

> Thanks,
> Iulian
>
>
>

-- 
================================================================
"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