<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, May 29, 2014 at 10:58 AM, Giacomo Mulas <span dir="ltr"><<a href="mailto:gmulas@oa-cagliari.inaf.it" target="_blank">gmulas@oa-cagliari.inaf.it</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Thu, 29 May 2014, Matthew Knepley wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
There might be an easier way to do this:<br>
  PetscScalar val = 0.0, gval;<br>
<br>
  VecGetOwnershipRange(xr, &low, &high);<br>
  if ((myindex >= low) && (myindex < high)) {<br>
    VecGetArray(localx1,&a);<br>
    val = a[myindex-low];<br>
    VecRestoreArray(localx1, &a);<br>
  }<br>
  MPI_Allreduce(&val, &gval, 1, MPIU_SCALAR, MPI_SUM, PETSC_COMM_WORLD);<br>
<br>
Now everyone has the value at myindex.<br>
</blockquote>
<br>
brilliant, why didn't I think of this? Only, I guess you were<br>
copying/pasting and some variable names slipped, namely localx instead of<br>
xr.  Should it be<br></blockquote><div><br></div><div>Yes</div><div><br></div><div>   Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  PetscScalar val = 0.0, gval;<br>
  PetscScalar *a;<br>
<br>
  VecGetOwnershipRange(xr, &low, &high);<br>
  if ((myindex >= low) && (myindex < high)) {<br>
    VecGetArray(xr,&a);<br>
    val = a[myindex-low];     VecRestoreArray(xr, &a);<br>
  }<br>
  MPI_Allreduce(&val, &gval, 1, MPIU_SCALAR, MPI_SUM, PETSC_COMM_WORLD);<br>
  *rr = gval*gval;<br>
  *ri = 0;<br>
<br>
?<br>
<br>
Thanks!<br>
Giacomo<br>
<br>
-- <br>
______________________________<u></u>______________________________<u></u>_____<br>
<br>
Giacomo Mulas <<a href="mailto:gmulas@oa-cagliari.inaf.it" target="_blank">gmulas@oa-cagliari.inaf.it</a>><br>
______________________________<u></u>______________________________<u></u>_____<br>
<br>
INAF - Osservatorio Astronomico di Cagliari<br>
via della scienza 5 - 09047 Selargius (CA)<br>
<br>
tel.   <a href="tel:%2B39%20070%2071180244" value="+3907071180244" target="_blank">+39 070 71180244</a><br>
mob. : <a href="tel:%2B39%20329%20%206603810" value="+393296603810" target="_blank">+39 329  6603810</a><br>
______________________________<u></u>______________________________<u></u>_____<br>
<br>
"When the storms are raging around you, stay right where you are"<br>
                         (Freddy Mercury)<br>
______________________________<u></u>______________________________<u></u>_____</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>