<div class="gmail_quote">On Wed, Feb 22, 2012 at 08:52, Kuhlemann, Verena <span dir="ltr">&lt;<a href="mailto:vkuhlem@emory.edu">vkuhlem@emory.edu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>I am not sure that I understand the MatStructure flag in the call of KSPSetOperators</div>
<div>correctly.</div>
<div><br>
</div>
<div>If I use KSPSetOperators(ksp, A, P, DIFFERENT_NONZERO_PATTERN) and then</div>
<div>solve two linear systems with the same matrix operators but different rhs is</div>
<div>the preconditioner reassembled in every solve. I.e., if I call</div>
<div>KSPSolve(ksp,b1,x1);</div>
<div>KSPSolve(ksp,b2,x2);</div></blockquote><div><br></div><div>If you don&#39;t put anything between these calls, the preconditioner will be reused.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><br>
</div>
<div>And if I use KSPSetOperators(ksp, A, P, SAME_PRECONDITIONER) the preconditioner is </div>
<div>only setup one time and reused later.</div>
<div><br>
</div>
<div>Or is the flag only important if I change the matrix operators in between.</div>
<div></div></blockquote></div><br><div>You only need to call KSPSetOperators() when the matrix changes.</div>