<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Mar 18, 2014 at 7:53 AM, Mohammad Bahaa <span dir="ltr"><<a href="mailto:m.bahaa.eldein@gmail.com" target="_blank">m.bahaa.eldein@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">I'm using "<span style="white-space:pre-wrap">PETSC_COMM_SELF" communicator for running n serial independent processes, I need to sum up a certain vector from the n processes in one vector, however, vectors involved in each process vary in size, and I couldn't find any function to define custom ownership ranges, so assuming I have a 4 processes run with each computing an "x" vector as follows:</span><div>
<font color="#000000"><span style="white-space:pre-wrap"><br></span></font></div><div><font color="#000000"><span style="white-space:pre-wrap">1. process (1) with x of length 51</span></font></div><div><span style="white-space:pre-wrap">2. process (2) with x of length 49</span></div>
<div><span style="white-space:pre-wrap">3. process (3) with x of length 52</span></div><div><span style="white-space:pre-wrap">4. process (4) with x of length 48</span></div></div></blockquote><div><br></div><div>Let your local length be n, so that on proc 3 n== 52. Then</div>
<div><br></div><div> VecCreate(comm, &v);</div><div> VecSetSizes(v, n, PETSC_DETERMINE);</div><div> VecSetFromOptions(v);</div><div> <fill up v></div><div> VecSum(v, &sum);</div><div><br></div><div>You could also make a parallel Vec from your Seq vecs:</div>
<div><br></div><div> VecGetArray(lv, &array);</div><div> <span style="color:rgb(0,0,0)">VecCreateMPIWithArray(comm, 1, n, PETSC_DETERMINE, array, &v);</span></div><div><span style="color:rgb(0,0,0)"><br></span></div>
<div><span style="color:rgb(0,0,0)"> Thanks,</span></div><div><span style="color:rgb(0,0,0)"><br></span></div><div><span style="color:rgb(0,0,0)"> Matt</span></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr"><div><font color="#000000"><span style="white-space:pre-wrap">The processes sum up to 100 elements, when I define a vector "x_all" of size "100" with "</span></font><span style="white-space:pre-wrap">PETSC_COMM_WORLD" communicator, the ownership ranges are equal, which isn't the case, how to customize them ?</span><span class=""><font color="#888888"><font color="#000000"><span style="white-space:pre-wrap"><br>
</span></font><div><br></div>-- <br><div dir="ltr">Mohamamd Bahaa ElDin</div>
</font></span></div></div>
</blockquote></div><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>