[MOAB-dev] vertex to cell adjacencies in parallel

Tim Tautges tautges at mcs.anl.gov
Fri Oct 7 10:56:08 CDT 2011


Ok, interesting.  We currently don't have the general ability to partition a collection of entity sets, though it would 
be fairly easy to modify mbzoltan to do such a thing.

I've thought about the problem of constructing a topology based on entity sets, which would construct interface sets and 
link them to higher-dimensional sets using parent/child links.  This is effectively what is done for partition and 
interface sets in parallel, and a similar thing is done to set up the "geom dimension" sets that represent CAD topology 
in GeomTopoTool.  Again, this is something I haven't developed in a more general sense, though.  That would also be 
pretty straightforward to implement.  If you were interested in doing so, I'd be happy to give you a brain dump on how I 
think it would be best done, and I'd be happy to incorporate the results into the MOAB repo.

On 10/07/2011 09:47 AM, Lorenzo Alessio Botti wrote:
> 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.
>

Not really, though polyhedra are supported pretty well in most areas of MOAB.

- tim

> 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
>>
>
>

-- 
================================================================
"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