Thank you, Dave. But there is still a question: how can I get the residual 
vector in each iteration? It seems difficult to get it without modifying the 
GMRES codes.

Best regards,
Jiaxun
Dave May <dave.mayhem23 at gmail.com> ??? 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 at yahoo.com.cn>:
 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
           

---------------------------------
??????????????????? 

 

       
---------------------------------
??????????????????? 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20080203/b6fa6a95/attachment.htm>

Reply via email to