[petsc-users] Using the PCASM interface to define minimally overlapping subdomains

Patrick Sanan patrick.sanan at gmail.com
Tue Sep 16 10:48:59 CDT 2014


For the purposes of reproducing an example from a paper, I'd like to use 
PCASM with subdomains which 'overlap minimally' (though this is probably 
never a good idea in practice).

In one dimension with 7 unknowns and 2 domains, this might look like

  0  1  2  3  4  5  6  (unknowns)
------------          (first subdomain  : 0 .. 3)
          -----------  (second subdomain : 3 .. 6)

The subdomains share only a single grid point, which differs from the 
way PCASM is used in most of the examples.

In two dimensions, minimally overlapping rectangular subdomains would 
overlap one exactly one row or column of the grid. Thus, for example, if 
the grid unknowns were

0  1  2  3  4  5  |
6  7  8  9  10 11 | |
12 13 14 15 16 17   |
          --------
-----------

then one minimally-overlapping set of 4 subdomains would be
0 1 2 3 6 7 8 9
3 4 5 9 10 11
6 7 8 9 12 13 14 15
9 10 11 15 16 17
as suggested by the dashes and pipes above. The subdomains only overlap 
by a single row or column of the grid.

My question is whether and how one can use the PCASM interface to work 
with these sorts of decompositions (It's fine for my purposes to use a 
single MPI process). In particular, I don't quite understand if should 
be possible to define these decompositions by correctly providing is and 
is_local arguments to PCASMSetLocalSubdomains.

I have gotten code to run defining the is_local entries to be subsets of 
the is entries which define a partition of the global degrees of 
freedom*, but I'm not certain that this was the correct choice, as it 
appears to produce an unsymmetric preconditioner for a symmetric system 
when I use direct subdomain solves and the 'basic' type for PCASM.

* For example, in the 1D example above this would correspond to
is[0] <-- 0 1 2 3
is[1] <-- 3 4 5 6
is_local[0] <-- 0 1 2
is_local[1] <-- 3 4 5 6






More information about the petsc-users mailing list