>> If this makes sense, I think I have a nice place to start working on this.
>> And as long as coarsen and refine are pseudo-inverse operations,
> 
> Hmm... they still may not be.  If you do a System::reinit() after
> coarsen/refine, the Mesh will also be repartitioned, and I don't know
> that our partitioners (the default, METIS/ParMETIS, in particular) are
> guaranteed to give you the same partitioning every time you give them
> the same mesh - I suspect their results will depend on the previous
> partitioning/ordering, which will be scrambled by the coarsen/refine.
> The different partitioning will then give you different DoF indexing.

So this all rang a bell...

http://sourceforge.net/mailarchive/forum.php?thread_name=C3E2413C.496F%25ben
jamin.kirk%40nasa.gov&forum_name=libmesh-devel

Parmetis can either compute the partition of a graph independent of its
distribution,  or repartition with some heuristic to minimize the amount of
redistribution required while still creating a quality partition. Obviously
the latter will create a distribution which is dependent on the initial
partitioning, but what about the former?

The problem we ran in to is that while the partitioning depends only on the
input graph, in our case the input graph was dependent on the mesh
distribution because the element global indicies were tied to the
partitioning.

See the thread, there was some debate as to whether repeated calls to the
partitioner on the same mesh with the same number of processors should
return the same partitioning...  Apparently I thought it was important
enough to implement a fix in the parmetis partitioner.

What we do now is compute a unique, global ordering of the elements based on
their hilbert key ordering.  This ordering is independent of the actual
element parallel distribution.  The graph is then built in terms of this
ordering, and as far as I can tell the same partitioning of the graph will
always result, independent of the graph distribution.

-Ben 
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to