Skip to main content
`Ctrl`+`K`

# PetscSFGetMultiSF

gets the inner `PetscSF` implementing gathers and scatters

## Synopsis

    #include "petscsf.h"
    PetscErrorCode PetscSFGetMultiSF(PetscSF sf, PetscSF *multi)

Collective

## Input Parameter

- sf - star forest that may contain roots with 0 or with more than 1 vertex

## Output Parameter

- multi - star forest with split roots, such that each root has degree exactly 1 (has one leaf)

## Note

In most cases, users should use `PetscSFGatherBegin()` and `PetscSFScatterBegin()` instead of manipulating multi directly. Since multi satisfies the stronger condition that each entry in the global space has exactly one incoming edge, it is a candidate for future optimization that might involve its removal.

## See Also

PetscSF - an alternative to low-level MPI calls for data communication, `PetscSF`, `PetscSFSetGraph()`, `PetscSFGatherBegin()`, `PetscSFScatterBegin()`, `PetscSFComputeMultiRootOriginalNumbering()`

## Level

developer

## Location

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

## Examples

src/vec/is/sf/tutorials/ex1.c

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