[petsc-dev] DARefine produces unusable partitions

Jed Brown jed at 59A2.org
Wed Sep 22 11:41:11 CDT 2010


$ cd src/dm/da/examples/tests
$ make ex3
$ mpiexec -n 5 ./ex3 -M 8

The issue is that the partition [0,2,4,6,7,8] is refined to
[0,3,6,9,12,15].  Now on rank 3, the start indices (6 and 9) don't
line up (because 9/2=4 < 6-1).  I'm about to push a patch for this
that creates and always uses lx,ly,lz for refinement so that the
subdomains are always nested.  The downside of this is that when the
coarse level is imbalanced (not a serious problem), all refinements
will preserve the coarse fractional imbalance, which may be a big
problem on the fine meshes.

It is probably not hard to redistribute lx,ly,lz within the
constraints that DAGetInterpolation has to work, so you can't move a
subdomain interface by more than one coarse stencil width.  But I'm
not sure that any redistribution is always desirable (especially if
the user used DASetVertexDivision).

Jed



More information about the petsc-dev mailing list