<div dir="auto">It is your root set or fileset if you added entities to it. You can get the root set handle from Core object.<div dir="auto"><br></div><div dir="auto">Vijay </div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Oct 25, 2018, 14:38 Ryan O'Kuinghttons <<a href="mailto:ryan.okuinghttons@noaa.gov">ryan.okuinghttons@noaa.gov</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Thanks again, Vijay. However, I still don't understand what this_set <br>
should be, is it an output maybe?<br>
<br>
Ryan<br>
<br>
On 10/25/18 12:27, Vijay S. Mahadevan wrote:<br>
> You can try either the first or the second variant instead [1] with<br>
> following arguments.<br>
><br>
> ErrorCode moab::ParallelComm::resolve_shared_ents(EntityHandle this_set,<br>
> int resolve_dim = 2,<br>
> int shared_dim = -1,<br>
> const Tag * id_tag = 0<br>
> )<br>
><br>
> That should resolve 2-dim entities with shared edges across<br>
> partitions. You can leave id_tag pointer as zero since the default is<br>
> GLOBAL_ID.<br>
><br>
>> This brings up a more general question I've had about the moab<br>
> documentation for a while. In the doc for this routine, it only lists 2<br>
> parameters, proc_ents and shared_dim, even though in the function<br>
> signature above it clearly shows more. I've had trouble understanding<br>
> which parameters are relevant in the past, or what they do because I'm<br>
> not quite sure how to read the documentation.<br>
><br>
> This is an oversight. We will go through and rectify some of the<br>
> inconsistencies in the documentation. We are preparing for an upcoming<br>
> release and I'll make sure that routines in Core/ParallelComm have<br>
> updated documentation that match the interfaces. Meanwhile, if you<br>
> have questions, feel free to shoot an email to the list.<br>
><br>
> Hope that helps.<br>
><br>
> Vijay<br>
><br>
> [1] <a href="http://ftp.mcs.anl.gov/pub/fathom/moab-docs-develop/classmoab_1_1ParallelComm.html#a29a3b834b3fc3b4ddb3a5d8a78a37c8a" rel="noreferrer noreferrer" target="_blank">http://ftp.mcs.anl.gov/pub/fathom/moab-docs-develop/classmoab_1_1ParallelComm.html#a29a3b834b3fc3b4ddb3a5d8a78a37c8a</a><br>
> On Thu, Oct 25, 2018 at 1:58 PM Ryan O'Kuinghttons<br>
> <<a href="mailto:ryan.okuinghttons@noaa.gov" target="_blank" rel="noreferrer">ryan.okuinghttons@noaa.gov</a>> wrote:<br>
>> Hi Vijay,<br>
>><br>
>> Thanks again for that explanation.<br>
>><br>
>> ESMF does use unique global ids for the vertices and set them to the<br>
>> GLOBAL_ID in the moab mesh. So I think we are good there.<br>
>><br>
>> I can't quite figure out how to use resolve_shared_entities though.<br>
>> There are three versions of the call in the documentation, and I assume<br>
>> that I should use the first and pass in a Range containing all entities<br>
>> for proc_ents:<br>
>><br>
>> <a href="http://ftp.mcs.anl.gov/pub/fathom/moab-docs-develop/classmoab_1_1ParallelComm.html#a59e35d9906f2e33fe010138a144a5cb6" rel="noreferrer noreferrer" target="_blank">http://ftp.mcs.anl.gov/pub/fathom/moab-docs-develop/classmoab_1_1ParallelComm.html#a59e35d9906f2e33fe010138a144a5cb6</a><br>
>><br>
>> However, I'm not sure what the this_set EntityHandle should be.<br>
>><br>
>> This brings up a more general question I've had about the moab<br>
>> documentation for a while. In the doc for this routine, it only lists 2<br>
>> parameters, proc_ents and shared_dim, even though in the function<br>
>> signature above it clearly shows more. I've had trouble understanding<br>
>> which parameters are relevant in the past, or what they do because I'm<br>
>> not quite sure how to read the documentation.<br>
>><br>
>> Any example or explanation you give me for resolve_shared_entities is<br>
>> much appreciated!<br>
>><br>
>> Ryan<br>
>><br>
>> On 10/25/18 09:40, Vijay S. Mahadevan wrote:<br>
>>> Hi Ryan,<br>
>>><br>
>>> Glad the example helped.<br>
>>><br>
>>>> The example shows the ghost exchange happening between shared owned<br>
>>> entities. In my experiments I've been unable to make the ghost exchange<br>
>>> work, and I think that might be because my entities are not shared.<br>
>>><br>
>>> You need to call resolve_shared_entities on the entities prior to<br>
>>> doing ghost exchange. When we load the mesh from file, this happens<br>
>>> automatically based on the read options but if you are forming a mesh<br>
>>> in memory, you need to make sure that the shared vertices have the<br>
>>> same GLOBAL_ID numbering consistently across processes. That is shared<br>
>>> vertices are unique. Once that is set, shared entities resolution will<br>
>>> work correctly out of the box and you will have shared edges/entities<br>
>>> query working correctly. A call to get ghosted layers once this is<br>
>>> done would be the way to go.<br>
>>><br>
>>> I assume ESMF has a unique global numbering for the vertices ? Use<br>
>>> that to set the GLOBAL_ID tag. Let us know if you are still having<br>
>>> issues.<br>
>>><br>
>>> Vijay<br>
>>> On Thu, Oct 25, 2018 at 11:17 AM Ryan O'Kuinghttons<br>
>>> <<a href="mailto:ryan.okuinghttons@noaa.gov" target="_blank" rel="noreferrer">ryan.okuinghttons@noaa.gov</a>> wrote:<br>
>>>> Hi Vijay,<br>
>>>><br>
>>>> I've had some time to play with this now, and I have another question.<br>
>>>> Thank you for sending along the example code, it has been extremely<br>
>>>> helpful.<br>
>>>><br>
>>>> The example shows the ghost exchange happening between shared owned<br>
>>>> entities. In my experiments I've been unable to make the ghost exchange<br>
>>>> work, and I think that might be because my entities are not shared. The<br>
>>>> situation I have is entities that are owned wholly on a single<br>
>>>> processor, which need to be communicated to other processors which<br>
>>>> require them as part of a halo region for mesh based computation. In<br>
>>>> this situation would I need to "share" my entities across the whole<br>
>>>> processor space, before requesting a ghost exchange? I'm not even really<br>
>>>> sure what shared entities mean, is there a good place to look in the<br>
>>>> documentation to learn more about the terminology? Thanks,<br>
>>>><br>
>>>> Ryan<br>
>>>><br>
>>>> On 10/8/18 12:17, Vijay S. Mahadevan wrote:<br>
>>>>> Ryan,<br>
>>>>><br>
>>>>> You need to use the ParallelComm object in MOAB to call<br>
>>>>> exchange_ghost_cells [1] with appropriate levels of ghost layers for<br>
>>>>> your mesh. This needs to be done after the mesh is loaded, or you can<br>
>>>>> pass this information also as part of the options when loading a file<br>
>>>>> and MOAB will internally load the file with ghosted layers. Here's an<br>
>>>>> example [2].<br>
>>>>><br>
>>>>> Vijay<br>
>>>>><br>
>>>>> [1] <a href="http://ftp.mcs.anl.gov/pub/fathom/moab-docs-develop/classmoab_1_1ParallelComm.html#a55dfa308f56fd368319bfb4244428878" rel="noreferrer noreferrer" target="_blank">http://ftp.mcs.anl.gov/pub/fathom/moab-docs-develop/classmoab_1_1ParallelComm.html#a55dfa308f56fd368319bfb4244428878</a><br>
>>>>> [2] <a href="http://ftp.mcs.anl.gov/pub/fathom/moab-docs-develop/HelloParMOAB_8cpp-example.html" rel="noreferrer noreferrer" target="_blank">http://ftp.mcs.anl.gov/pub/fathom/moab-docs-develop/HelloParMOAB_8cpp-example.html</a><br>
>>>>> On Mon, Oct 8, 2018 at 1:23 PM Ryan O'Kuinghttons<br>
>>>>> <<a href="mailto:ryan.okuinghttons@noaa.gov" target="_blank" rel="noreferrer">ryan.okuinghttons@noaa.gov</a>> wrote:<br>
>>>>>> Hi, I am wondering if there is a way to create ghost elements in MOAB.<br>
>>>>>> By this I mean a list of copies of elements surrounding a specific MOAB<br>
>>>>>> element, ghost elements may exist on a different processor than the<br>
>>>>>> source element. I see a ghost_elems class in the appData namespace, but<br>
>>>>>> there is not much documentation on how to use it.. Thank you,<br>
>>>>>><br>
>>>>>> --<br>
>>>>>> Ryan O'Kuinghttons<br>
>>>>>> Cherokee Nation Management and Consulting<br>
>>>>>> NESII/NOAA/Earth System Research Laboratory<br>
>>>>>> <a href="mailto:ryan.okuinghttons@noaa.gov" target="_blank" rel="noreferrer">ryan.okuinghttons@noaa.gov</a><br>
>>>>>> <a href="https://www.esrl.noaa.gov/gsd/nesii/" rel="noreferrer noreferrer" target="_blank">https://www.esrl.noaa.gov/gsd/nesii/</a><br>
>>>>>><br>
</blockquote></div>