<div class="gmail_quote">On Sun, Mar 6, 2011 at 21:03, Jack Poulson <span dir="ltr"><<a href="mailto:jack.poulson@gmail.com">jack.poulson@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 id=":26p">Sorry to hit the list so quickly again, but the PCShellSetApply documentation doesn't say anything about how the 'xin' and 'xout' vectors will be distributed, or if it'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>