I gather I’d use something like this? VecGetArray(x, &xarray); VecGetArray(y, &yarray);
MPI_Scan(array, array, nglobal, MPIU_SCALAR, MPI_SUM, PETSC_COMM_WORLD); VecRestoreArray(x, &xarray); VecRestoreArray(y, &yarray); -gideon > On Feb 14, 2017, at 3:48 PM, Matthew Knepley <[email protected]> wrote: > > On Tue, Feb 14, 2017 at 2:46 PM, Gideon Simpson <[email protected] > <mailto:[email protected]>> wrote: > 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. > > 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). > > Thanks, > > Matt > > -gideon > > > > > -- > What most experimenters take for granted before they begin their experiments > is infinitely more interesting than any results to which their experiments > lead. > -- Norbert Wiener
