[petsc-users] DGMRES Right preconditioner
Gong Ding
gdiso at ustc.edu
Mon Oct 3 04:47:09 CDT 2011
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