:orphan: # PetscSFBcastBegin begin pointwise broadcast with root value being reduced to leaf value, to be concluded with call to `PetscSFBcastEnd()` ## Synopsis ``` #include "petscsf.h" PetscErrorCode PetscSFBcastBegin(PetscSF sf, MPI_Datatype unit, const void *rootdata, void *leafdata, MPI_Op op) ``` Collective ## Input Parameters - ***sf -*** star forest on which to communicate - ***unit -*** data type associated with each node - ***rootdata -*** buffer to broadcast - ***op -*** operation to use for reduction ## Output Parameter - ***leafdata -*** buffer to be reduced with values from each leaf's respective root ## Note When PETSc is configured with device support, it will use its own mechanism to figure out whether the given data pointers are host pointers or device pointers, which may incur a noticeable cost. If you already knew the info, you should use `PetscSFBcastWithMemTypeBegin()` instead. ## See Also `PetscSF`, `PetscSFBcastEnd()`, `PetscSFBcastWithMemTypeBegin()` ## Level intermediate ## Location src/vec/is/sf/interface/sf.c ## Examples src/dm/impls/plex/tutorials/ex14.c
src/ts/tutorials/ex11_sa.c
src/vec/is/sf/tutorials/ex1.c
src/vec/is/sf/tutorials/ex1f.F90
src/vec/is/sf/tutorials/ex2.c
src/vec/is/sf/tutorials/ex3.c
## Implementations PetscSFBcastBegin_Allgather in src/vec/is/sf/impls/basic/allgather/sfallgather.c
PetscSFBcastBegin_Allgatherv in src/vec/is/sf/impls/basic/allgatherv/sfallgatherv.c
PetscSFBcastBegin_Alltoall in src/vec/is/sf/impls/basic/alltoall/sfalltoall.c
PetscSFBcastBegin_Gather in src/vec/is/sf/impls/basic/gather/sfgather.c
PetscSFBcastBegin_Gatherv in src/vec/is/sf/impls/basic/gatherv/sfgatherv.c
PetscSFBcastBegin_Neighbor in src/vec/is/sf/impls/basic/neighbor/sfneighbor.c
PetscSFBcastBegin_Basic in src/vec/is/sf/impls/basic/sfbasic.c
PetscSFBcastBegin_Window in src/vec/is/sf/impls/window/sfwindow.c
--- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/vec/is/sf/interface/sf.c) [Index of all PetscSF routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)