On Thu, May 14, 2009 at 3:58 PM, Barai, Pallab <span dir="ltr">&lt;<a href="mailto:baraip@ornl.gov">baraip@ornl.gov</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hello,<br>
<br>
I am using PETSc to solve a set of linear equations &quot;Sx=b&quot;.<br>
<br>
Here &quot;b&quot; is known and &quot;x&quot; is the trial solution.<br>
<br>
The complete (assembled) form of S is not known. That is why I am not able to use something like &quot;KSPSolve&quot;.<br>
<br>
But given a trial solution &quot;x&quot;, I can calculate &quot;S*x&quot; using a &quot;MatVec&quot; routine.<br>
<br>
Is it possible to use the Conjugate Gradient (CG) technique to find a solution in this case? In place of &quot;S&quot;, I can give &quot;S*x&quot; as the input.</blockquote><div><br>You can use CG if S is symmetric. If not, try GMRES.<br>
 </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
It will be great if someone can show me some direction. If this thing has already been discussed before, the link to that thread will be sufficient.</blockquote><div><br>You can wrap your function in a MatShell:<br><br><a href="http://www.mcs.anl.gov/petsc/petsc-as/snapshots/petsc-current/docs/manualpages/Mat/MatCreateShell.html">http://www.mcs.anl.gov/petsc/petsc-as/snapshots/petsc-current/docs/manualpages/Mat/MatCreateShell.html</a><br>
<br>   Matt<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
Thanking you.<br>
<font color="#888888"><br>
Pallab Barai<br>
</font></blockquote></div>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener<br>