<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.30.3">
</HEAD>
<BODY>
Dear all,<BR>
<BR>
I need to solve a system of equation Ax = b in which A is a MatShell object for which I defined a matrix-vector multiplication routine with MatShellSetOperation. Let's call this routine MyMatMult. The MyMatMult routine gives me an approximate matrix vector product, and I'm able to tune the parameters of MyMatMult so that I can choose a trade-off between calculation time and accuracy of the product. I successfully solved this problem with a KSPGMRES solver.<BR>
So far so good...<BR>
<BR>
Now I'd like to precondition the system to accelerate the solving stage. To do this I'd like to use a lower-order (less accurate but faster) solution of Ax=b.<BR>
<BR>
I tried to do this with a PCKSP type preconditioner, but it doesn't seem to accept MatShell objects as preconditioning matrix.<BR>
I also tried to use a PCSHELL preconditioner for which the PCApply routine consists in solving the lower order Ax=b system.<BR>
<BR>
I didn't manage to get this working properly: the outer solver doesn't converge to the expected rate. Indeed if I use for the inner loop the same accuracy than for the outer loop, the outer loop should converge in one iteration, which is not the case...<BR>
<BR>
Is there another way of doing this ?<BR>
Any hint ?<BR>
<BR>
Thanks for your help,<BR>
Thomas Leissing
</BODY>
</HTML>