[MOAB-dev] get_adjacencies after exchange_ghost_cells

Ryan O'Kuinghttons ryan.okuinghttons at noaa.gov
Mon Nov 19 16:38:33 CST 2018


Hang on, I think I just realized what the issue is!

I wasn't adding the global_id tag to the elem_tags vector passed into 
exchange_tags on the elemens, only on the nodes..

First test passed with this change.. so far so good. Sorry to waste your 
time on this, will ping if I run into anything else. Thanks again!

On 11/19/18 15:29, Ryan O'Kuinghttons wrote:
> you should probably rebuild everything, just in case..
>
> i just pushed another small mod to turn off some internal debugging 
> code, so pull and then rebuild, and don't forget to 'make distclean' 
> before rebuilding!
>
> On 11/19/18 15:25, Grindeanu, Iulian R. wrote:
>> sorry,
>> I just got to it;
>> do I have to recompile everything?
>> I had a small compile error, probably you fixed it in the new version
>>       Range elems;
>> -    merr=mb->get_entities_by_dimension(0, mbmp->pdim, elems);
>> +    merr=moab_mesh->get_entities_by_dimension(0, mbmp->pdim, elems);
>>       MBMESH_CHECK_ERR(merr, localrc);
>>
>> so can I recompile just moab part?
>> Iulian
>>
>> ________________________________________
>> From: Ryan O'Kuinghttons <ryan.okuinghttons at noaa.gov>
>> Sent: Monday, November 19, 2018 4:21:31 PM
>> To: Grindeanu, Iulian R.; moab-dev at mcs.anl.gov
>> Subject: Re: get_adjacencies after exchange_ghost_cells
>>
>> Hi Iulian,
>>
>> After some more debugging, the issue seems to be an old one.. the
>> elem_coords tag is not coming across on the ghost elements. I am using
>> separate exchange_tags calls as you instructed:
>>
>>     Range nodes;
>>     merr=mbmesh->mesh->get_entities_by_dimension(0, 0, nodes);
>>
>>     merr = pcomm->exchange_tags(node_tags, node_tags, nodes);
>>
>>     Range elems;
>>     merr=mbmesh->mesh->get_entities_by_dimension(0, mbmesh->pdim, 
>> elems);
>>
>>     merr = pcomm->exchange_tags(elem_tags, elem_tags, elems);
>>
>> Also, I resolved the issue with double call to resolve_shared_ents..
>> This version:
>>
>>     pcomm->resolve_shared_ents(0, mbmp->pdim, mbmp->pdim-1);
>>
>> is what was being used in MBMesh_addelements, and it doesn't seem to do
>> the job. When I replaced it with this version it worked:
>>
>>     mbmp->mesh->get_entities_by_dimension(0, mbmp->pdim, elems);
>>     pcomm->resolve_shared_ents(0, elems, mbmp->pdim, mbmp->pdim-1);
>>
>> I pushed this change to the moab4 branch along with some other debugging
>> code.
>>
>> Ryan
>>
>> On 11/19/18 12:53, Ryan O'Kuinghttons wrote:
>>> Hi Iulian, I'm seeing an issue with calling get_adjacencies after the
>>> exchange_ghost_cells/tag_exchange call. For some reason, the Range of
>>> adjacencies contains elements without tags. Is there something special
>>> that needs to be done in this case?
>>>
>>> Also, I am still calling resolve_shared_ents twice, once in
>>> MBMesh_addelements and then again in the ghost exchange routine,
>>> because without that second call the adjacencies don't seem to include
>>> ghosted elements at all..
>>>
>>> The reproducer is updated on the moab4 branch if you want to try it
>>> again:
>>>
>>> esmf/src/Infrastructure/Mesh/tests/ESMC_MeshMOABGhostUTest.C
>>>


More information about the moab-dev mailing list