> Galerkin coarse operators really need to be formed (not applied as a > product) to make sense. PCMG calls MatPtAP(), Galerkin coarse operators > will not work unless this is implemented. You want to provide the matrix > yourself.
So this does require the fine grid matrix to be formed explicitly and handed over to the top level KSP solver ? Since I start with a shell matrix and can only provide action of the fine operator on a vector, this does pose a problem. I will implement based on the shell matrix for now and see at which point the requirements are stopping me. Thanks for all the help Jed. I will post here again if I have more questions. Vijay On Fri, Dec 3, 2010 at 1:27 PM, Jed Brown <jed at 59a2.org> wrote: > On Fri, Dec 3, 2010 at 20:20, Vijay S. Mahadevan <vijay.m at gmail.com> wrote: >> >> This is fine and I am more than happy to hand these to Petsc. I do >> have the restriction/prolongation matrices explicitly but only the >> operators are matrix-free for now. So if I start off with a >> matrix-free PC operator, how exactly do I provide the shell matrix >> operators for all the other levels ? > > PCMGSetResidual, PCMGGetSmoother and set it to whatever type you want (maybe > your custom one). > >> >> I do not see any routine to enable this and my conclusion is that >> petsc does find it using the fine grid operator at hand using R^T*A*R >> transformation. > > Galerkin coarse operators really need to be formed (not applied as a > product) to make sense. ?PCMG calls MatPtAP(), Galerkin coarse operators > will not work unless this is implemented. ?You want to provide the matrix > yourself. > Jed
