<div class="gmail_quote">On Sun, Jun 10, 2012 at 4:54 PM, Nakib Haider Protik <span dir="ltr"><<a href="mailto:nprot048@uottawa.ca" target="_blank">nprot048@uottawa.ca</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Sorry, I meant to refer to this:<br>
<a href="http://lists.mcs.anl.gov/pipermail/petsc-users/2011-May/008793.html" target="_blank">http://lists.mcs.anl.gov/pipermail/petsc-users/2011-May/008793.html</a></blockquote><div><br></div><div>As I've said in every message, this rampantly overwrites local variables.</div>
<div><br></div><div><div>> >   DAGetMatrix(da, MATAIJ, &M);</div><div>> ></div><div>> >   KSPCreate(PETSC_COMM_WORLD, &ksp);</div><div>> >   KSPSetType(ksp, KSPGMRES);</div><div>> >   KSPGetPC(ksp, &pcmg);</div>
<div>> >   PCSetType(pcmg, PCMG);</div><div>> ></div><div>> >   PCMGSetLevels(pcmg, 2, &PETSC_COMM_WORLD);</div><div>> >   PCMGSetType(pcmg, PC_MG_MULTIPLICATIVE);</div><div>> >   PCMGSetCycleType(pcmg, PC_MG_CYCLE_W);</div>
<div>> >   PCMGSetCyclesOnLevel(pcmg, 0, 1);</div><div>> >   PCMGSetCyclesOnLevel(pcmg, 1, 1);</div><div>> ></div><div>> >   PCMGGetCoarseSolve(pcmg, &ksp);</div><div><br></div><div>This overwrites ksp with the coarse solver.</div>
<div><br></div><div>> ></div><div>> >   PCMGGetSmoother(pcmg, 0, &ksp);</div><div><br></div><div>This overwrites it again with the level 0 "smoother" (same as the coarse solver).</div><div><br></div>
<div>> >   PCMGGetSmoother(pcmg, 1, &ksp);</div><div><br></div><div>This overwrites it again with the level 1 smoother.</div><div><br></div><div>> >   PCMGSetInterpolation(pcmg, 1, M);</div><div>> >   PCMGSetRestriction(pcmg, 1, M);</div>
<div>> ></div><div>> >   PCMGSetResidual(pcmg, 0, PCMGDefaultResidual, M);</div><div>> >   PCMGSetResidual(pcmg, 1, PCMGDefaultResidual, M);</div></div><div><br></div><div>So if you get down here and use "ksp" for something (as your code did), your are actually working with the level 1 smoother. I also said this in my first email, explaining why the problem was solved this way (the smoother was as good as a direct solve). The original KSP has been lost forever and has leaked its memory.</div>
</div>