<div class="gmail_quote">On Sun, Mar 6, 2011 at 21:03, Jack Poulson <span dir="ltr">&lt;<a href="mailto:jack.poulson@gmail.com">jack.poulson@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div id=":26p">Sorry to hit the list so quickly again, but the PCShellSetApply documentation doesn&#39;t say anything about how the &#39;xin&#39; and &#39;xout&#39; vectors will be distributed, or if it&#39;s up to the user to determine it. </div>
</blockquote><div><br></div><div>When you create a parallel matrix, MatSetSizes(A,m,n,M,N) is always called (one way or another, perhaps as part of MatCreateMPIAIJ or similar). The pair (m,M) defines the row distribution (m locally owned out of M global) and (n,N) defines the column distribution. This is also the distribution of the vectors obtained using MatGetVecs().</div>
<div><br></div><div>Most KSPs only work for square systems in which case the left and right Vecs necessarily have the same distribution. LSQR is the only KSP I can think of that works with non-square systems. With LSQR, PCApply is called after MatMultTranspose so its input should be in the column distribution of the operator.</div>
</div>