<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><blockquote type="cite"><div><br><br><br><br>On Oct 7, 2011, at 4:53 PM, Hong-Jun Kim wrote:<br><br><blockquote type="cite">Could you please send me the code to replicate?<br></blockquote><blockquote type="cite">Thanks.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">-----------------------------<br></blockquote><blockquote type="cite">Hong-Jun Kim<br></blockquote><blockquote type="cite">Post-doc researcher<br></blockquote><blockquote type="cite">MCS, Argonne National Laboratory<br></blockquote><blockquote type="cite">9700 S. Cass Ave. B240/R2147<br></blockquote><blockquote type="cite">Argonne, IL 60439<br></blockquote><blockquote type="cite">630-252-4791<br></blockquote><blockquote type="cite"><a href="mailto:hongjun@mcs.anl.gov">hongjun@mcs.anl.gov</a><br></blockquote><blockquote type="cite">-----------------------------<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">----- Original Message -----<br></blockquote><blockquote type="cite"><blockquote type="cite">From: "Lorenzo Alessio Botti" &lt;<a href="mailto:ihabiamx@yahoo.it">ihabiamx@yahoo.it</a>&gt;<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">To: "Tim Tautges" &lt;<a href="mailto:tautges@mcs.anl.gov">tautges@mcs.anl.gov</a>&gt;, <a href="mailto:MOAB-dev@mcs.anl.gov">MOAB-dev@mcs.anl.gov</a><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Sent: Friday, October 7, 2011 9:47:52 AM<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Subject: Re: [MOAB-dev] vertex to cell adjacencies in parallel<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Thanks a lot for the reply.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Let me know if you need the code to replicate this issue...<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">For my application it would be very interesting to be able to<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">partition based on entity sets.<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">If those entity sets form a covering for the entities (each of the<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">entities included in exactly one of those sets), and those sets can<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">be identified by a tag and optionally tag value, then you should be<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">able to already read in parallel based on that partition (which has<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">to already be in the file). See section 5 of the user's guide (in<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">the doc subdir) and the description of how to read according to a<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">material_set partition.<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">My request was a bit too cryptic...<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">I'm now reading parallel meshes generated with mbzoltan with the<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">partition tag set to PARALLEL_PARTITION.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">It would be useful (for geometric h-multigrid, adaptivity based on<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">element agglomeration ecc...)<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">to repartition based on tagged entity sets that form a covering for<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">the entities<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">(such sets might be generated requiring a lot of partitions to the<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">partitioner)<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">instead of mesh elements.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">A simpler trick would be to create a lot of tagged entity sets and run<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">in parallel<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">with n_processes = n_entity_set/n_entity_sets_per_process, using once<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">again the<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">entity sets as mesh elements.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">In this context the entity set can be viewed as very general elements<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">(eg polygons).<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">In both cases the ability to get the adjacencies of entity set would<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">be also required.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">By the way I've seen that you already have a polygonal element<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">implementation<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">but I don't know if it has been introduced with the same goal.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Now I'm still working on the standard element dG finite element<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">library<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">but later on it would be interesting to explore more general<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">implementations.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Lorenzo<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">On Oct 7, 2011, at 3:54 PM, Tim Tautges wrote:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">On 10/07/2011 04:05 AM, Lorenzo Alessio Botti wrote:<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Hi all,<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">I have a question about getting adjacencies in parallel.<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">After having partitioned a mesh, resolved shared entities and<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">exchanged ghost cells I fail to<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">update the mesh cell adjacencies so to include ghost cells.<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">The face to elements adjacencies are correctly updated, that is the<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">faces obtained with<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">pcomm.get_iface_entities(1,2,faces); (I'm running on 2 processors)<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">have two neighbors one owned and one non owned.<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">However the vertex to cell adjacencies do not seem to be updated to<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">include ghost cells<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">and even after<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"> mb.get_entities_by_dimension(0,3,entities);<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"> mb.get_adjacencies(entities, 0, true, vertexEntities,<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"> Interface::UNION);<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"> entities.clear();<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"> mb.get_adjacencies(vertexEntities, 3, true, entities,<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"> Interface::UNION);<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">I'm not able to find vertex to not owned cells adjacencies.<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Is get_adjacencies(...,create if missing=true,...) supposed to work<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">also for non owned cells?<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">It seems that the vertex to non owned cell adjacencies are detected<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">but not created.<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">That sounds like a bug; Hong-Jun, could you look at that?<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">MOAB's parallel model is that all locally-represented entities,<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">which includes ghost and shared interface entities, should appear<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">locally as a serial mesh, with all adjacencies and other API calls<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">available.<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Overall MOAB works fine in parallel and<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">pcomm.assign_global_ids(...) is useful.<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Are you also planning to introduce some repartitioning<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">capabilities?<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Yes, this year's work plan includes migrating entities for<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">repartitioning. In theory, the partitioning class in tools/mbzoltan<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">should work to compute the new partition in parallel, though I think<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">it's currently hardwired to run on one processor (on my list to get<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">rid of that restriction).<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">For my application it would be very interesting to be able to<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">partition based on entity sets.<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">If those entity sets form a covering for the entities (each of the<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">entities included in exactly one of those sets), and those sets can<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">be identified by a tag and optionally tag value, then you should be<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">able to already read in parallel based on that partition (which has<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">to already be in the file). See section 5 of the user's guide (in<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">the doc subdir) and the description of how to read according to a<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">material_set partition.<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">- tim<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Thanks for help.<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Lorenzo<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">--<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">================================================================<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">"You will keep in perfect peace him whose mind is<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">steadfast, because he trusts in you." Isaiah 26:3<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tim Tautges Argonne National Laboratory<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<a href="mailto:tautges@mcs.anl.gov">tautges@mcs.anl.gov</a>) (telecommuting from UW-Madison)<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;phone: (608) 263-8485 1500 Engineering Dr.<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fax: (608) 263-4499 Madison, WI 53706<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><br></div></blockquote></div><br></body></html>