Thanks for explaining all .?

Purpose is to implement an adapted deflation preconditioner.?
Basically, it has nothing to do more with multigrid algorithm.?
To have PETSC codes, i was left out to use PCMG framework to implment this.?

? If you truly want this form exactly; then it is 0 iterations of a pre-smooth 
and the KSP you set for the coarse mesh is C_c while you set the M^-1 apply 
shell to post-smooth KSP.

Does C_c mean recursive action ? if so, then fine!?

Setting M^-1 preconditioner in ksp_post context with what ksp_type ? ?to my 
understanding, Richardson ?
?Just need an endorsement this time.?

Thank you!
regards, Abdul




>________________________________
> From: Barry Smith <bsmith at mcs.anl.gov>
>To: Abdul Hanan Sheikh <hanangul12 at yahoo.co.uk>; PETSc users list 
><petsc-users at mcs.anl.gov> 
>Cc: Jed Brown <jedbrown at mcs.anl.gov> 
>Sent: Thursday, 5 April 2012, 20:27
>Subject: Re: [petsc-users] Implementation of Multilevel preconditioner
> 
>
>? ? 
>On Apr 5, 2012, at 1:12 PM, Abdul Hanan Sheikh wrote:
>
>> 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 ? 
>
>?  If you truly want this form exactly; then it is 0 iterations of a 
>pre-smooth and the KSP you set for the coarse mesh is C_c while you set the 
>M^-1 apply shell to post-smooth KSP.
>
>?  I see Jed just wrote "This is just -pc_mg_type kaskade (zero pre-smoothing 
>iterations, one post-smoothing iteration)."? This is also correct and just a 
>different way of expressing the same thing.
>
>
>? ? Barry
>
>What motivates you to use this form? It is non-standard. Normal multigrid with 
>a pre-smooth and post-smooth (both M^-1) can be written algebraically as 
>
>M^-1?  + (I - M^-1A)C(I- AM^-1)? which also equals M^-1 + C - CAM^-1 - M^-1A C 
>+ M^-1 A C A M^-1
>
>Note that I don't view writing the operations out this way as particularly 
>informative (for example witing it as C +? M^-1 (I - A*C)), it conceals the 
>fact that your algorithm first projects the error onto the coarse grid space 
>and then projects the new error onto some fine grid space. Normal multigrid 
>with a pre and post first projects the error onto some fine grid space, then 
>projects the new error onto the coarse grid space then projects the newest 
>error onto the fine grid space again.
>? ? 
>> 
>> 
>> 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/a7ebd0ee/attachment-0001.htm>

Reply via email to