Hi,<br>&nbsp;&nbsp;&nbsp; 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>&nbsp;&nbsp;&nbsp; Dave.<br><br><br><br><br><br><div class="gmail_quote">2008/2/2 jiaxun hou &lt;<a href="mailto:jiaxun_hou@yahoo.com.cn">jiaxun_hou@yahoo.com.cn</a>&gt;:<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&nbsp; must&nbsp; be&nbsp; based on the&nbsp; actual residuals (b-Ax). But the&nbsp; GMRES codes of PETSc seems to use the preconditioned residuals (B^-1(b-Ax)) only. In addition,&nbsp; when I set KSPSetNormType(ksp,KSP_NORM_UNPRECONDITIONED), I receive the error message: &quot;Currently can use GMRES with only preconditioned residual (right preconditioning not coded)&quot;. 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&amp;souce=mail_mailletter_tagline" target="_blank">雅虎邮箱传递新年祝福,个性贺卡送亲朋!</a> </blockquote></div><br>