<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">I have been having problems testing the Coupler. It asserts in ParallelComm::pack_shared_handles() because the sharedEnts Range from the ParallelComm object does not equal the all_shared Range constructed in the function. This Range is constructed by getting all entities in the Core via get_entities_by _handle(0, all_shared). Then those entities with PSTATUS tag not set (i.e. not shared) are subtracted from the Range.<div><br></div><div>This all looks reasonable and works no matter how many meshes you read in as long as you have the same ParallelComm and Core objects for each mesh load. </div><div><br></div><div>But in the coupler test it reads 2 mesh files using 1 Core object and 2 different ParallelComm and ReadParallel pairs of objects as follows:</div><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> <span style="color: #7f0055">for</span> (<span style="color: #7f0055">unsigned</span> <span style="color: #7f0055">int</span> i = 0; i < filenames.size(); i++) {</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> pcs[i] = <span style="color: #7f0055">new</span> ParallelComm(mbImpl);</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> rps[i] = <span style="color: #7f0055">new</span> ReadParallel(mbImpl, pcs[i]);</div><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"> <br class="webkit-block-placeholder"></p><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> result = rps[i]->load_file(filenames[i], 0, FileOptions(opts.c_str()));</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> PRINT_LAST_ERROR;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> }</div><div><font class="Apple-style-span" face="Monaco" size="3"><span class="Apple-style-span" style="font-size: 11px;"><br></span></font></div><div>In this scenario, the second ReadParallel::load_file() call fails when doing PARALLEL_RESOLVE_SHARED_ENTS. It calls pack_shared_handles() during that operation. The value of all_shared will have ALL entities from BOTH meshes, whereas the sharedEnts range from the ParallelComm object and will only have the shared entities for the mesh just read.</div><div><br></div><div>My conclusion is either </div><div><br></div><div>A - You should not read in multiple meshes in the manner described above.</div><div><br></div><div>or </div><div><br></div><div>B - ParallelComm::pack_shared_handles() should either construct all_shared differently to only look at the shared entities associated with the mesh(es) read by this ParallelComm or the assertion just isn't valid and should be removed.</div><div><br></div><div>I've tried removing the assertion and the Coupler seems to work (I'm trying to interpret the results).</div><div>However I'd like some feedback on this analysis and whether this is the fix or is there some deeper problem.</div><div><br></div><div>--Bob</div><div><br></div></div></body></html>