<div class="gmail_quote">On Tue, Dec 7, 2010 at 07:42, Vijay S. Mahadevan <span dir="ltr">&lt;<a href="mailto:vijay.m@gmail.com">vijay.m@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div id=":10">When I use PCMG as a preconditioner to solve a fine grid system using<br>
a linear solver, how do I set the interpolation to the linear system<br>
being solved. i.e., my preconditioner starts at max_levels and<br>
hierarchy proceeds to 0 (coarsest) and my linear system is technically<br>
at max_levels+1.</div></blockquote><div><br></div><div>Set nlevels to whatever you want with PCMGSetLevels, then level=nlevels-1 is the fine-level problem, you can set the pre-smoother on that level to PCNONE if you want the &quot;down&quot; part of your cycle to skip it.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div id=":10"> I have a vector length incompatibility since I cannot<br>
seem to set the prolongation to go from max_levels to max_levels+1,<br>
where the linear solver subspace resides.</div></blockquote><div><br></div><div>The finest level in PCMG should be the space that your KSP works in.  The interpolation operator on that level maps from the next coarsest level, i.e. MatInterpolate(level[n].restrict,level[n-1].x,level[n].x);</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div id=":10">
I thought of adding the original fine grid problem to the PCMG levels<br>
(now max_levels=max_levels+1) but this by philosophy uses PCMG itself<br>
as a solver. Does it not ? </div></blockquote><div><br></div><div>No, it&#39;s still a preconditioner.  &quot;Multigrid as a solver&quot; just means &quot;Richardson preconditioned by multigrid&quot;.</div><div><br></div>
<div>Jed</div></div>