# 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

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

PetscSF, PetscSFSetGraph(), PetscSFGatherBegin(), PetscSFScatterBegin(), PetscSFComputeMultiRootOriginalNumbering()

developer

## Location#

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

Edit on GitLab