Hi,<br> You can use the function<br><pre>PetscErrorCode PETSCKSP_DLLEXPORT KSPSetConvergenceTest(KSP ksp,PetscErrorCode (*converge)(KSP,PetscInt,PetscReal,KSPConvergedReason*,void*),void *cctx)</pre>to define your own convergence test.<br>
<br>Cheers,<br> Dave.<br><br><br><br><br><br><div class="gmail_quote">2008/2/2 jiaxun hou <<a href="mailto:jiaxun_hou@yahoo.com.cn">jiaxun_hou@yahoo.com.cn</a>>:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi everyone,<br><br>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?<br>
<br>Best regards,<br>Jiaxun<br> <p>
</p><hr size="1"><a href="http://cn.mail.yahoo.com/gc/index.html?entry=5&souce=mail_mailletter_tagline" target="_blank">雅虎邮箱传递新年祝福,个性贺卡送亲朋!</a> </blockquote></div><br>