[petsc-dev] Backport PCASMCreateSubdomains2D fix to 3.1?
Jed Brown
jed at 59A2.org
Sun Jun 6 14:38:53 CDT 2010
ksp/examples/tutorials/ex8.c is broken in the release (with
-user_set_subdomains). The trouble is that PC_ASM_RESTRICT really needs
both the overlapping and nonoverlapping subdomains. Since Matt added
RASM support for multiple subdomains per process (between 3.0 and 3.1),
this function really needs to provide both in order to be useful. I
added that to -dev, along with PCASM support to work properly when the
user provides both. I think this should be backported, despite being an
API change to PCASMCreateSubdomains2D, because I don't think anyone
actually uses this function (except this example).
Some other notes on PCASM, unrelated backporting the fixes above:
* As currently written, PCASM *always* does RASM when there are multiple
subdomains per process.
* PCASM currently doesn't support having the user call
PCASMSetLocalSubdomains with multiple subdomains per process,
specifying 'is', but not 'is_local'. This worked prior to 3.1, and I
think this functionality should eventually be restored (for
PC_ASM_BASIC, it's not possible with PC_ASM_RESTRICT).
* What was the eventual intended behavior for PCASMSetTotalSubdomains
with specified index sets? You could implement a form of field split
or decompose a small number of subdomains (like different materials)
this way. But I think a more practical interface would be to have
PCASMSetLocalSubdomains support index sets on arbitrary
subcommunicators of pc->hdr.comm (it exposes more concurrency). I see
that several parts of PCASM were already written with this (support of
multiple procs per subdomain) in mind.
http://lists.mcs.anl.gov/pipermail/petsc-dev/2010-April/002569.html
Is there a practical use for IS arguments of PCASMSetTotalSubdomains?
Jed
More information about the petsc-dev
mailing list