Patrick,
This "local part of the subdomains for this processor” term in
PCASMSetLocalSubdomains is, IMHO, extremely confusing. WTHWTS? Anyways, I think
that if you set the is_local[] to be different than the is[] you will always
end up with a nonsymetric preconditioner. I think for one dimension you need to
use
> is[0] <-- 0 1 2 3
> is[1] <-- 3 4 5 6
> is_local[0] <-- 0 1 2 3
> is_local[1] <-- 3 4 5 6
Or you can pass NULL for is_local use PCASMSetOverlap(pc,0);
Barry
Note that is_local[] doesn’t have to be non-overlapping or anything.
On Sep 16, 2014, at 10:48 AM, Patrick Sanan <[email protected]> wrote:
> 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
>
>
>
>