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