[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