Skip to main content
`Ctrl`+`K`

# PetscSFType

String with the name of a `PetscSF` type. Each `PetscSFType` uses different mechanisms to perform the communication.

## Synopsis

    typedef const char *PetscSFType;
    #define PETSCSFBASIC      "basic"
    #define PETSCSFNEIGHBOR   "neighbor"
    #define PETSCSFALLGATHERV "allgatherv"
    #define PETSCSFALLGATHER  "allgather"
    #define PETSCSFGATHERV    "gatherv"
    #define PETSCSFGATHER     "gather"
    #define PETSCSFALLTOALL   "alltoall"
    #define PETSCSFWINDOW     "window"

## Available Types

- `PETSCSFBASIC` - use MPI sends and receives

- `PETSCSFNEIGHBOR` - use MPI_Neighbor operations

- `PETSCSFALLGATHERV` - use MPI_Allgatherv operations

- `PETSCSFALLGATHER` - use MPI_Allgather operations

- `PETSCSFGATHERV` - use MPI_Igatherv and MPI_Iscatterv operations

- `PETSCSFGATHER` - use MPI_Igather and MPI_Iscatter operations

- `PETSCSFALLTOALL` - use MPI_Ialltoall operations

- `PETSCSFWINDOW` - use MPI_Win operations

## Note

Some `PetscSFType` only provide specialized code for a subset of the `PetscSF` operations and use `PETSCSFBASIC` for the others.

## See Also

PetscSF - an alternative to low-level MPI calls for data communication, `PetscSFSetType()`, `PetscSF`

## Level

beginner

## Location

include/petscsftypes.h

Index of all PetscSF routines
Table of Contents for all manual pages
Index of all manual pages