[petsc-users] Projection preconditioner as PCMG

Abdul Hanan Sheikh hanangul12 at yahoo.co.uk
Thu Mar 8 13:59:56 CST 2012


Dear, 

First two answers are appreciated; 

 
And last one is more appreciated; 
-mg_levels_1_ksp_type cg can this be written in routine ? yes, with KSPSetType() but which ksp-context ? ksp_pre ? 

My Preconditioner: 
I  need a preconditioner which read as: Prec = \lambda_max*C + (I - AC) , [C = CGC] where (I - AC) deflates spectrum to zero, 
and this part \lambda_max *C then shifts spectrum to \lambda_max (which is always 1 in my case) . 
Dont I get my Prec by multiplicative combination of CGC with post smoother S = Identity  using mg_type_multiplicative? 

Thanks in anticipation, 
regards, Abdul multiplicative_








>________________________________
>I dont want to try snes, since my problem is linear,
>
>
>Note that you can still use SNES for linear problems. (I prefer the interface, you can choose -snes_type ksponly so there is no extra overhead, but use whatever you like.)
>Thanks!
>
>but I successfully applied the KSP
>>preconditioned with PCMG (not kaskade, but multiplicative; for some reasons) .
>>I make pre-smoother dummy by setting KSP_PRE context as  PREONLY alongwith PCNONE. 
>>
>
>
>You can just set the number of pre-smoothing steps to 0.
> Done! :-) 
>
>CGC and post-smoother serves my purpose to apply preconditioner
>>Prec = I - A*P*(A_H)^-1 * R   with KSP_POST as RICHARDSON alongwith PCNONE. 
>>
>
>
>Read my last message again. You either want the additive
>
>
>Prec = I + C
>
>
>(where C = P*A_H^{-1}*R is the coarse solve) or the multiplicative
>
>
>Prec = C + S (I - A C)
>
>
>perhaps with S = I (or some scaling factor). I don't think your definition of Prec makes sense or is the operation that you intend to be applying.
>
>
>I hope PCNONE make smoother S = I in the framework you suggested earlier i.e. 
>>
>>C b + S (b - A C b)~~~~~~ where C is read as CGC. 
>>
>>It seems working well with levels 2, but when I force RICHARDSON_max_it 0. To my understanding, it should work with RICHARDSON_max_it = 1; 
>
>
>Read through my last message again. I explained that this does not work and that it is caused by the destabilizing effect of the extra multiply without a smoother. You can fix it for easy problems with -mg_levels_ksp_richardson_self_scale.
> 
>What if I want to approximate my all coarse matrices with any Krylov iteration ?
>
>
>The methods on each level are independent, you can set them with -mg_coarse_ksp_type gmres -mg_levels_1_ksp_type cg -mg_levels_1_ksp_max_it 100 -mg_levels_2_ksp_type minres ... 
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120308/2f557a91/attachment.htm>


More information about the petsc-users mailing list