<div dir="ltr">Forgive me as my expression "sum up" was misguiding or misplaced, I didn't mean to literally sum the values in the vectors, I meant I want to put all values from each local vector into one global vector that can be accessed by all processes, "COMM_WORLD" communicator for instance</div>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Mar 18, 2014 at 3:09 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="">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><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>VecCreateMPIWithArray(comm, 1, n, PETSC_DETERMINE, array, &v);</span></div><div><span style><br></span></div>
<div><span style>  Thanks,</span></div><div><span style><br></span></div><div><span style>     Matt</span></div><div class=""><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><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></div><span class="HOEnZb"><font color="#888888"><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
</font></span></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr">Mohamamd Bahaa ElDin</div>
</div>