<html><body><div style="color:#000; background-color:#fff; font-family:verdana, helvetica, sans-serif;font-size:10pt">Hi,, <br>Thanks for more details!! <br>Recursive two level multigrid&nbsp; (by using PCMG with my desired stuff in it, in PCSHELL) is okay. I will do it recursively. <br>No Problem with recursion and nested iterations. <br>Coming to two level, <br>How can I get exactly Prec = C + &nbsp;M^-1 (I - A*C) in a two level multigrid ? <br>What should be specific choice of pre_smoother_ksp_context and post_smoother_ksp_context <br>to get the "Prec" ? <br>what operators should be chosen in these two ksp contexts ? <br><br><br>Awiaitng, <br>with regards, Abdul<br><br><br><br><br><br><br><div><br></div><div><br><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; margin-top: 5px; padding-left: 5px;">  <div style="font-family: verdana, helvetica, sans-serif; font-size: 10pt;"> <div style="font-family: times new roman, new
 york, times, serif; font-size: 12pt;"> <div dir="ltr"> <font face="Arial" size="2"> <hr size="1">  <b><span style="font-weight:bold;">From:</span></b> Jed Brown &lt;jedbrown@mcs.anl.gov&gt;<br> <b><span style="font-weight: bold;">To:</span></b> PETSc users list &lt;petsc-users@mcs.anl.gov&gt; <br><b><span style="font-weight: bold;">Cc:</span></b> Abdul Hanan Sheikh &lt;hanangul12@yahoo.co.uk&gt; <br> <b><span style="font-weight: bold;">Sent:</span></b> Thursday, 5 April 2012, 17:56<br> <b><span style="font-weight: bold;">Subject:</span></b> Re: [petsc-users] Implementation of Multilevel preconditioner<br> </font> </div> <br><div id="yiv1019913622"><div class="yiv1019913622gmail_quote">On Thu, Apr 5, 2012 at 08:38, Barry Smith <span dir="ltr">&lt;<a rel="nofollow" ymailto="mailto:bsmith@mcs.anl.gov" target="_blank" href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>&gt;</span> wrote:<br><blockquote class="yiv1019913622gmail_quote" style="margin:0 0 0
 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
&nbsp; &nbsp;C + &nbsp;M^-1 (I - A*C) &nbsp; 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.&nbsp;</i></div>
<div><i>After these two levels, the number of iterations at each level till coarsest is constantly one. &nbsp;</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's somewhat unlikely that running more coarse level iterations will really be better than a more standard multigrid with stronger smoothers.</div>
</div><br><br> </div> </div> </blockquote></div>   </div></body></html>