On Tue, Jan 22, 2019 at 1:35 PM Matthew Knepley 
<[email protected]<mailto:[email protected]>> wrote:
On Tue, Jan 22, 2019 at 2:23 PM Zhang, Junchao via petsc-dev 
<[email protected]<mailto:[email protected]>> wrote:
I want to add root values to leaves, and keep root unchanged. PetscSFBcast came 
to my mind, but unfortunately it only broadcasts roots and does not have an 
MPI_Op argument like PetscSFReduce for me to choose from INSERT_VALUES, 
ADD_VALUES, etc.
Any tips? Thanks.

PS: I met this problem when I tried to implement VecScatter in SF.  In 
VecScatter, multiple entries of vec x can be scattered to the same entry of vec 
y, and one entry of x can also be scattered to multiple entries of y.  I want 
to use one SF for all combinations of SCATTER_FORWARD/BACKWARD, 
INSERT/ADD_VALUES. It seems impossible with current SF interface.

I think you might want this: 
https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/PetscSF/PetscSFFetchAndOpBegin.html

I read it as: Leaves are accumulated to root (root is changed), and leaves get 
a snapshot of the root before each atomic update. It is not what I want.

  Thanks,

    Matt

--Junchao Zhang


--
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

https://www.cse.buffalo.edu/~knepley/<http://www.cse.buffalo.edu/~knepley/>

Reply via email to