[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