<div class="gmail_quote">On Thu, Apr 5, 2012 at 08:38, Barry Smith <span dir="ltr">&lt;<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
   C +  M^-1 (I - A*C)   is exactly a multiplicative Schwarz method with two preconditioners. Or in another way to put it it is exactly a two level multigrid so you can use PCMG in a straightforward way.</blockquote></div>
<br><div>It looks to me like he wants to do nested iteration with recursive coarse levels rather than just iteration in a smoother.</div><div><br></div><div><div><i>I need the accuracy at first and somehow at second coarse level. </i></div>
<div><i>After these two levels, the number of iterations at each level till coarsest is constantly one.  </i></div></div><div><i><br></i></div><div>Okay, but one iteration of a preconditioned Krylov method is still two preconditioner applications, so the method would still be exponential in the number of levels. If Richardson iteration is okay, you can use -pc_mg_cycle_type w to do two iterations instead of 1. The code would actually work fine with increasing this further, but it looks like you would currently have to cheat a bit to get many recursive cycles.</div>
<div><br></div><div>PCMGSetCycleType(pc,(PCMGCycleType)5);</div><div><br></div><div>There is currently no interface for setting a different number of cycles on each level, but you could include mgimpl.h and change the levels-&gt;cycles manually.</div>
<div><br></div><div>Note that W cycles are already often considered to be too much work on coarse levels to justify in a parallel setting, so it&#39;s somewhat unlikely that running more coarse level iterations will really be better than a more standard multigrid with stronger smoothers.</div>