<div dir="ltr"><div><div>Thanks Matthew, but how exactly do I do that in a user defined function of the form used by <span>KSPSetComputeOperators</span>:<br><br>#undef __FUNCT__<br>#define __FUNCT__ "ComputeMatrix"<br>

PetscErrorCode ComputeMatrix(KSP ksp, Mat J,Mat jac,MatStructure *str, void *ctx)<br>{<br><br></div><div>/* variables */<br></div><div><br>  PetscFunctionBeginUser;<br><br></div>/* Setting the system linear matrix J*/<br>

<br></div>/* Now I want to set jac=J which is the preconditioning matrix in this part , my first idea was to use matcopy, but I would like something more efficient */<br><br> PetscFunctionReturn(0);<br>  <br>}<br><div><br>

<br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Nov 21, 2013 at 10:26 PM, Matthew Knepley <span dir="ltr"><<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div class="im">On Thu, Nov 21, 2013 at 6:21 PM, iwaddington . <span dir="ltr"><<a href="mailto:iwaddington@gmail.com" target="_blank">iwaddington@gmail.com</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Sorry Matthew, but I didn't understand what you said, because it is not the case of passing arguments to a function, I have to write the function which I will later pass to <span>KSPSetComputeOperators</span>, and in the function I have to set the system linear matrix and preconditioning matrix.</div>


</blockquote><div><br></div></div><div>You can return the same matrix for the system and preconditioner.</div><div><br></div><div>   Matt</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div class="gmail_extra"><div class="gmail_quote">On Thu, Nov 21, 2013 at 10:00 PM, Matthew Knepley <span dir="ltr"><<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>On Thu, Nov 21, 2013 at 5:44 PM, iwaddington . <span dir="ltr"><<a href="mailto:iwaddington@gmail.com" target="_blank">iwaddington@gmail.com</a>></span> wrote:<br>





<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>HI everybody, I have a doubt concerning how the function KSPSetComputeRHS works, because according to its prototype one of its arguments is a pointer to a function that takes a vector object as argument, not a pointer towards a vector object, so how is it able to set the rhs if the passage of the vector is done by value and not by reference ?<br>





</div></div></blockquote><div><br></div></div><div>The values of the Vec can be set, rather than changing the object pointer itself.</div><div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div dir="ltr"><div></div>Another thing is the functioning of  KSPSetComputeOperators. I want to set the linear system matrix and I want the preconditioning matrix to be equal, so can I just set the linar system matrix in the function that is argument of KSPSetComputeOperators, or do I need to make a matcopy in it ?<br>







</div>
</blockquote></div></div><br>No, just give the same argument twice.</div><div class="gmail_extra"><br></div><div class="gmail_extra">   Matt<span><font color="#888888"><span><font color="#888888"><br clear="all">
<div><br></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
</font></span></font></span></div></div>
</blockquote></div><br></div>
</blockquote></div></div><div class="im"><br><br clear="all"><div><br></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
</div></div></div>
</blockquote></div><br></div>