[petsc-users] DGMRES Right preconditioner

Barry Smith bsmith at mcs.anl.gov
Mon Oct 3 08:03:45 CDT 2011


  Desire,

    Any suggestions? Does this make sense?

   Thanks

   Barry

On Oct 3, 2011, at 4:47 AM, Gong Ding wrote:

> Hi,
> I had installed petsc-3.2, which has a new deflated GMRES solver.
> It seems the deflation procedure provides addtional precondition on top of GMRES.
> 
> However, it seems the deflation was implemented as first right preconditioner:
> 
> if (ksp->pc_side == PC_LEFT) {
>                /* Apply the first preconditioner */
>                ierr = KSP_PCApplyBAorAB (ksp,VEC_VV (it), VEC_TEMP,VEC_TEMP_MATOP);
>                CHKERRQ (ierr);
>                /* Then apply Deflation as a preconditioner */
>                ierr=KSPDGMRESApplyDeflation (ksp, VEC_TEMP, VEC_VV (1+it));
>                CHKERRQ (ierr);
>            } else if (ksp->pc_side == PC_RIGHT) {
>                ierr=KSPDGMRESApplyDeflation (ksp, VEC_VV (it), VEC_TEMP);
>                CHKERRQ (ierr);
>                ierr=KSP_PCApplyBAorAB (ksp, VEC_TEMP, VEC_VV (1+it), VEC_TEMP_MATOP);
>                CHKERRQ (ierr);
>            }  
> 
> Since a "fixed" external preconditoner M such as ILU or my own PC will be used,
> I want the deflation apply on AM^-1. As a result, the update of deflation preconditioner will not
> affect the fixed preconditioner M. How should I modify the source code?
> 
> 
> Gong Ding
> 
> 
> 
> 
> 
> 
> 



More information about the petsc-users mailing list