Hi,
You can use the function
PetscErrorCode PETSCKSP_DLLEXPORT KSPSetConvergenceTest(KSP ksp,PetscErrorCode (*converge)(KSP,PetscInt,PetscReal,KSPConvergedReason*,void*),void *cctx)
to define your own convergence test.
Cheers,
Dave.
2008/2/2 jiaxun hou <
jiaxun_hou@xxxxxxxxxxxx>:
Hi everyone,
I want to use the
Left Preconditioned GMRES to solve a linear system, and the stopping criterion must be based on the actual residuals (b-Ax). But the GMRES codes of PETSc seems to use the preconditioned residuals (B^-1(b-Ax)) only. In addition, when I set KSPSetNormType(ksp,KSP_NORM_UNPRECONDITIONED), I receive the error message: "Currently can use GMRES with only preconditioned residual (right preconditioning not coded)". So, is there any way to set stopping criterion based on the actual residuals?
Best regards,
Jiaxun
雅虎邮箱传递新年祝福,个性贺卡送亲朋!