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