PETSc version 3.16.5
Fix/Edit manual page

# PetscSFGetGraph

Get the graph specifying a parallel star forest

### Synopsis

    #include "petscsf.h"
    PetscErrorCode PetscSFGetGraph(PetscSF sf,PetscInt *nroots,PetscInt *nleaves,const PetscInt **ilocal,const PetscSFNode **iremote)

Not Collective

### Input Parameter

| sf | - star forest

### Output Parameters

| nroots | - number of root vertices on the current process (these are possible targets for other process to attach leaves)
| 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 (if returned value is NULL, it means leaves are in contiguous storage)
| iremote | - remote locations of root vertices for each leaf on the current process

### Notes

We are not currently requiring that the graph is set, thus returning nroots=-1 if it has not been set yet

### Fortran Notes

The returned iremote array is a copy and must be deallocated after use. Consequently, if you want to update the graph, you must call PetscSFSetGraph() after modifying the iremote array.

To check for a NULL ilocal use

         if (loc(ilocal) == loc(PETSC_NULL_INTEGER)) then

### See Also

PetscSFCreate(), PetscSFView(), PetscSFSetGraph()

### Level

intermediate

### Location

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

### Examples

src/vec/is/sf/tutorials/ex1.c.html
src/vec/is/sf/tutorials/ex1f.F90.html

### Implementations

PetscSFGetGraph_Allgatherv in src/vec/is/sf/impls/basic/allgatherv/sfallgatherv.c
PetscSFGetGraph_Alltoall in src/vec/is/sf/impls/basic/alltoall/sfalltoall.c
Index of all PetscSF routines
Table of Contents for all manual pages
Index of all manual pages