Thanks Jed, I'll give it a try and let you know. Might take a bit though.
Boris > On Jan 30, 2014, at 17:45, "Jed Brown" <j...@jedbrown.org> wrote: > > Boris Kaus <k...@uni-mainz.de> 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?