[MOAB-dev] vertex to cell adjacencies in parallel

Tim Tautges tautges at mcs.anl.gov
Fri Oct 7 08:54:04 CDT 2011



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