[MOAB-dev] vertex to cell adjacencies in parallel

Lorenzo Alessio Botti ihabiamx at yahoo.it
Fri Oct 7 09:47:52 CDT 2011


Thanks a lot for the reply.
Let me know if you need the code to replicate this issue...

>> For my application it would be very interesting to be able to partition based on entity sets.
>> 
> 
> If those entity sets form a covering for the entities (each of the entities included in exactly one of those sets), and those sets can be identified by a tag and optionally tag value, then you should be able to already read in parallel based on that partition (which has to already be in the file).  See section 5 of the user's guide (in the doc subdir) and the description of how to read according to a material_set partition.

My request was a bit too cryptic...
I'm now reading parallel meshes generated with mbzoltan with the partition tag set to PARALLEL_PARTITION.
It would be useful (for geometric h-multigrid, adaptivity based on element agglomeration ecc...) 
to repartition based on tagged entity sets that form a covering for the entities 
(such sets might be generated requiring a lot of partitions to the partitioner)
instead of mesh elements.  
A simpler trick would be to create a lot of tagged entity sets and run in parallel 
with n_processes = n_entity_set/n_entity_sets_per_process, using once again the 
entity sets as mesh elements.
In this context the entity set can be viewed as very general elements (eg polygons).
In both cases the ability to get the adjacencies of entity set would be also required.

By the way I've seen that you already have a polygonal element implementation 
but I don't know if it has been introduced with the same goal.

Now I'm still working on the standard element dG finite element library
but later on it would be interesting to explore more general implementations.

Lorenzo 

On Oct 7, 2011, at 3:54 PM, Tim Tautges wrote:

> 
> 
> On 10/07/2011 04:05 AM, Lorenzo Alessio Botti wrote:
>> Hi all,
>> I have a question about getting adjacencies in parallel.
>> 
>> After having partitioned a mesh, resolved shared entities and exchanged ghost cells I fail to
>> update the mesh cell adjacencies so to include ghost cells.
>> 
>> The face to elements adjacencies are correctly updated, that is the faces obtained with
>> pcomm.get_iface_entities(1,2,faces);   (I'm running on 2 processors)
>> have two neighbors one owned and one non owned.
>> 
>> However the vertex to cell adjacencies do not seem to be updated to include ghost cells
>> and even after
>>   mb.get_entities_by_dimension(0,3,entities);
>>   mb.get_adjacencies(entities, 0, true, vertexEntities, Interface::UNION);
>>   entities.clear();
>>   mb.get_adjacencies(vertexEntities, 3, true, entities, Interface::UNION);
>> I'm not able to find vertex to not owned cells adjacencies.
>> 
>> Is get_adjacencies(...,create if missing=true,...) supposed to work also for non owned cells?
>> It seems that the vertex to non owned cell adjacencies are detected but not created.
>> 
> 
> That sounds like a bug; Hong-Jun, could you look at that?
> 
> MOAB's parallel model is that all locally-represented entities, which includes ghost and shared interface entities, should appear locally as a serial mesh, with all adjacencies and other API calls available.
> 
>> Overall MOAB works fine in parallel and pcomm.assign_global_ids(...) is useful.
>> Are you also planning to introduce some repartitioning capabilities?
> 
> Yes, this year's work plan includes migrating entities for repartitioning.  In theory, the partitioning class in tools/mbzoltan should work to compute the new partition in parallel, though I think it's currently hardwired to run on one processor (on my list to get rid of that restriction).
> 
>> For my application it would be very interesting to be able to partition based on entity sets.
>> 
> 
> If those entity sets form a covering for the entities (each of the entities included in exactly one of those sets), and those sets can be identified by a tag and optionally tag value, then you should be able to already read in parallel based on that partition (which has to already be in the file).  See section 5 of the user's guide (in the doc subdir) and the description of how to read according to a material_set partition.
> 
> - tim
> 
>> Thanks for help.
>> Lorenzo
> 
> -- 
> ================================================================
> "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