[petsc-users] Implementation of Multilevel preconditioner

Abdul Hanan Sheikh hanangul12 at yahoo.co.uk
Thu Apr 5 13:12:41 CDT 2012


Hi,, 
Thanks for more details!! 
Recursive two level multigrid  (by using PCMG with my desired stuff in it, in PCSHELL) is okay. I will do it recursively. 
No Problem with recursion and nested iterations. 
Coming to two level, 
How can I get exactly Prec = C +  M^-1 (I - A*C) in a two level multigrid ? 
What should be specific choice of pre_smoother_ksp_context and post_smoother_ksp_context 
to get the "Prec" ? 
what operators should be chosen in these two ksp contexts ? 


Awiaitng, 
with regards, Abdul











>________________________________
> From: Jed Brown <jedbrown at mcs.anl.gov>
>To: PETSc users list <petsc-users at mcs.anl.gov> 
>Cc: Abdul Hanan Sheikh <hanangul12 at yahoo.co.uk> 
>Sent: Thursday, 5 April 2012, 17:56
>Subject: Re: [petsc-users] Implementation of Multilevel preconditioner
> 
>
>On Thu, Apr 5, 2012 at 08:38, Barry Smith <bsmith at mcs.anl.gov> wrote:
>
>   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.
>
>It looks to me like he wants to do nested iteration with recursive coarse levels rather than just iteration in a smoother.
>
>
>I need the accuracy at first and somehow at second coarse level. 
>After these two levels, the number of iterations at each level till coarsest is constantly one.  
>
>
>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.
>
>
>PCMGSetCycleType(pc,(PCMGCycleType)5);
>
>
>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->cycles manually.
>
>
>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.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120405/a5b62f3e/attachment.htm>


More information about the petsc-users mailing list