Boris Kaus <[email protected]> writes:

> While doing multigrid it is possible to explicitly set restriction and
> prolongation/interpolation operators in PETSC using PCMGSetRestriction
> and PCMGSetInterpolation.  In many cases, the restriction (R) and
> prolongation (P) operators are simply the transpose of each other
> (R=P’).
>
> Yet, in certain cases, for example variable viscosity Stokes with a
> staggered finite difference discretization, it is advantageous if they
> are different (see http://arxiv.org/pdf/1308.4605.pdf).
>
> Accordding to the Wesseling textbook, Galerkin coarsening of the fine
> grid matrix is defined as:
>
> Acoarse = R*A*P
>
> Yet, as far as I can tell, PETSc seems to implement this as:
>
> Acoarse = R*A*R’

Certainly, the code just had an outdated assumption.  I think I have
added support for this (it does R*A*P when R!=P), but I don't have a
test case readily available.  Could you try branch
'jed/pcmg-galerkin-rap' (if you were using v3.4/maint) or 'next' if
you've been tracking petsc-dev?

Attachment: pgpJYCCQqyXQs.pgp
Description: PGP signature

Reply via email to