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?
pgpJYCCQqyXQs.pgp
Description: PGP signature
