:orphan: # PetscSFCreate create a star forest communication context ## Synopsis ``` #include "petscsf.h" PetscErrorCode PetscSFCreate(MPI_Comm comm, PetscSF *sf) ``` Collective ## Input Parameter - ***comm -*** communicator on which the star forest will operate ## Output Parameter - ***sf -*** new star forest context ## Options Database Key - ***-sf_type type -*** value of type may be ```none basic -Use MPI persistent Isend/Irecv for communication (Default) window -Use MPI-3 one-sided window for communication neighbor -Use MPI-3 neighborhood collectives for communication ``` ## Note When one knows the communication graph is one of the predefined graph, such as `MPI_Alltoall()`, `MPI_Allgatherv()`, `MPI_Gatherv()`, one can create a `PetscSF` and then set its graph with `PetscSFSetGraphWithPattern()`. These special `SF`s are optimized and they have better performance than the general `SF`s. ## See Also `PetscSF`, `PetscSFSetType`, PetscSFSetGraph()`, `PetscSFSetGraphWithPattern()`, `PetscSFDestroy()` ## Level intermediate ## Location src/vec/is/sf/interface/sf.c ## Examples 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 PetscSFCreate_Allgather in src/vec/is/sf/impls/basic/allgather/sfallgather.c
PetscSFCreate_Allgatherv in src/vec/is/sf/impls/basic/allgatherv/sfallgatherv.c
PetscSFCreate_Alltoall in src/vec/is/sf/impls/basic/alltoall/sfalltoall.c
PetscSFCreate_Gather in src/vec/is/sf/impls/basic/gather/sfgather.c
PetscSFCreate_Gatherv in src/vec/is/sf/impls/basic/gatherv/sfgatherv.c
PetscSFCreate_Neighbor in src/vec/is/sf/impls/basic/neighbor/sfneighbor.c
PetscSFCreate_Basic in src/vec/is/sf/impls/basic/sfbasic.c
PetscSFCreate_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)