<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Yes, that’s the kind of thing that I want.<div class=""><br class=""><div class="">
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;  ">-gideon</span>

</div>
<br class=""><div style=""><blockquote type="cite" class=""><div class="">On Feb 14, 2017, at 5:28 PM, Barry Smith <<a href="mailto:bsmith@mcs.anl.gov" class="">bsmith@mcs.anl.gov</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class=""><br class=""><blockquote type="cite" class="">On Feb 14, 2017, at 3:01 PM, Gideon Simpson <<a href="mailto:gideon.simpson@gmail.com" class="">gideon.simpson@gmail.com</a>> wrote:<br class=""><br class="">I gather I’d use something like this?<br class=""><br class="">VecGetArray(x, &xarray);<br class="">VecGetArray(y, &yarray);<br class=""><br class="">MPI_Scan(array, array, nglobal, MPIU_SCALAR, MPI_SUM, PETSC_COMM_WORLD);<br class=""><br class="">VecRestoreArray(x, &xarray);<br class="">VecRestoreArray(y, &yarray);<br class=""></blockquote><br class="">  This definitely won't work!  What do you want to do take a PETSc vector that lies across process and produce a new PETSc vector that lies across processes in the same way but each entry in the new vector contains the sum of the entries "to the left of that entry, plus the current entry" For example<br class=""><br class="">[1 3 ]   [8 1]<br class=""><br class="">becomes<br class=""><br class="">[1 4] [12 13]?<br class=""><br class="">Where [] represents the values on each process? and you have two processes in this example.<br class=""><br class="">Barry<br class=""><br class=""><br class=""><br class=""><blockquote type="cite" class=""><br class=""><br class="">-gideon<br class=""><br class=""><blockquote type="cite" class="">On Feb 14, 2017, at 3:48 PM, Matthew Knepley <<a href="mailto:knepley@gmail.com" class="">knepley@gmail.com</a>> wrote:<br class=""><br class="">On Tue, Feb 14, 2017 at 2:46 PM, Gideon Simpson <<a href="mailto:gideon.simpson@gmail.com" class="">gideon.simpson@gmail.com</a>> wrote:<br class="">Is there a clever way to handle a prefix (cumulative) sum in petsc?  I think I can see how to do with using some underlying MPI, but I was wondering if there were some built in routines that could be useful.<br class=""><br class="">It is one MPI call (MPI_Scan), but you could do it by assigning sizes to a PetscLayout (which is how I have done it several places).<br class=""><br class="">  Thanks,<br class=""><br class="">    Matt<br class=""><br class="">-gideon<br class=""><br class=""><br class=""><br class=""><br class="">-- <br class="">What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br class="">-- Norbert Wiener<br class=""></blockquote><br class=""></blockquote><br class=""></div></div></blockquote></div><br class=""></div></body></html>