<div class="gmail_quote">On Sat, Feb 18, 2012 at 11:59 AM, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">> -pc_type mg with one level just applies a normal smoother. I've sometimes thought it should do a <span class="il">coarse</span>-level solve instead, but I haven't messed with it. <span class="il">Barry</span>, <span class="il">why</span> doesn't it do a direct solve?<br>
<br>
<br>
</div>1) Because MG is an accelerator of the basic smoother, MG is not a deccelerator of a direct solver. That is the action of adding a coarser level is suppose to improve the convergence of the solver.<br>
<br>
2) Because if you used a direct solver and the user switched from one to two levels they would be dismayed at the worsening of the convergence. If the user ran a large problem on one level it would run out of memory.<br>
<br>
3) I don't think there is really a "correct" abstract or practical answer to which it should be (hence my two snide answers above) I am happy with the current default</blockquote></div><br><div>So with -snes_grid_sequence, the first solve should do something reasonable. If we give -pc_type mg, the first solve in the sequence (-mg_levels_0_, not -mg_coarse_) is doing a crappy iterative solve. It's obnoxious to have to specify what to do for both of these separately, even though the problem is of the same size in both cases, so it's usually desirable for the same method to be used in both cases.</div>