PETSc version 3.17.0
Fix/Edit manual page

# 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 on PetscSF

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

### Notes

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 noticable cost. If you already knew the info, you should use PetscSFBcastWithMemTypeBegin() instead.

### See Also

PetscSFBcastEnd(), PetscSFBcastWithMemTypeBegin()

### Level

intermediate

### Location

src/vec/is/sf/interface/sf.c

### Examples

src/vec/is/sf/tutorials/ex1.c.html
src/vec/is/sf/tutorials/ex2.c.html
src/vec/is/sf/tutorials/ex1f.F90.html

### 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
Index of all PetscSF routines
Table of Contents for all manual pages
Index of all manual pages