PETSc version 3.17.0
Fix/Edit manual page

# PetscSFSetGraphLayout

Set a parallel star forest via global indices and a PetscLayout

### Synopsis

    #include "petscsf.h"
    PetscErrorCode PetscSFSetGraphLayout(PetscSF sf,PetscLayout layout,PetscInt nleaves,PetscInt *ilocal,PetscCopyMode localmode,const PetscInt *iremote)

Collective

### Input Parameters

| sf | - star forest
| layout | - PetscLayout defining the global space for roots
| nleaves | - number of leaf vertices on the current process, each of these references a root on any process
| ilocal | - locations of leaves in leafdata buffers, pass NULL for contiguous storage
| localmode | - copy mode for ilocal
| iremote | - root vertices in global numbering corresponding to leaves in ilocal

### Notes

Global indices must lie in [0, N) where N is the global size of layout. Leaf indices in ilocal get sorted; this means the user-provided array gets sorted if localmode is PETSC_OWN_POINTER.

### Developer Notes

Local indices which are the identity permutation in the range [0,nleaves) are discarded as they encode contiguous storage. In such case, if localmode is PETSC_OWN_POINTER, the memory is deallocated as it is not needed

### See Also

PetscSFCreate(), PetscSFView(), PetscSFSetGraph(), PetscSFGetGraph()

### Level

intermediate

### Location

src/vec/is/sf/utils/sfutils.c
Index of all PetscSF routines
Table of Contents for all manual pages
Index of all manual pages