[petsc-dev] How to add root values to leaves in PetscSF?
Zhang, Junchao
jczhang at mcs.anl.gov
Tue Jan 22 13:50:11 CST 2019
On Tue, Jan 22, 2019 at 1:35 PM Matthew Knepley <knepley at gmail.com<mailto:knepley at gmail.com>> wrote:
On Tue, Jan 22, 2019 at 2:23 PM Zhang, Junchao via petsc-dev <petsc-dev at mcs.anl.gov<mailto:petsc-dev at mcs.anl.gov>> 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/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20190122/c329959b/attachment.html>
More information about the petsc-dev
mailing list