Ed Bueler <[email protected]> writes: > Dear PETSc -- > > This is most embarassing, but somehow I can't see it in the docs. > > Regarding defaults for DMDA and PCMG, for the fine-to-coarse restriction, > does -pc_type mg use the adjoint of interpolation? (I.e. "full > weighting," at least up to a constant.) Or is an injection used?
It's "full weighting" -- transpose of interpolation [*] which you can
select (for DMDA) using DMDASetInterpolationType. Injection is terrible
for PCMG because it has order zero -- high frequency harmonics are
aliased at full amplitude onto the coarse grid (see Brandt's MG guide,
ยง4.3). Injection can (and should, when relevant) be used for *state*
restriction in FAS because it is more accurate for low-frequency
components ("infinite secondary order") and aliasing is irrelevant in
that context. So there isn't an "automatic" way to use injection in
PCMG, though I suppose it could be added for educational purposes.
[*] The scaling for restriction is managed by the "rscale" vector
returned by DMCreateInterpolation.
> I see that in src/dm/impls/da/dainterp.c, both (Q1,Q0) interpolation and
> some injection are _implemented_ for DMDA. But I don't see what is used by
> default, or how to control it at the command line. Asking for options
> related to my question is a bit of a dead end. For example, in
> src/snes/examples/tutorials/,
> ./ex5 -da_refine 3 -pc_type mg -help | grep XX
> returns nothing at all for XX=injection,restriction,interpolation.
>
> Would a new option
> -pc_mg_restriction_type transpose|injection
> make sense?
>
> Thanks,
>
> Ed
>
>
> --
> Ed Bueler
> Dept of Math and Stat and Geophysical Institute
> University of Alaska Fairbanks
> Fairbanks, AK 99775-6660
> 301C Chapman
signature.asc
Description: PGP signature
