#include "petscsf.h" PetscErrorCode PetscSFSetGraph(PetscSF sf,PetscInt nroots,PetscInt nleaves,PetscInt *ilocal,PetscCopyMode localmode,PetscSFNode *iremote,PetscCopyMode remotemode)Collective
sf | - star forest | |
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, pass NULL for contiguous storage (locations must be >= 0, enforced during setup in debug mode) | |
localmode | - copy mode for ilocal | |
iremote | - remote locations of root vertices for each leaf on the current process (locations must be >= 0, enforced during setup in debug mode) | |
remotemode | - copy mode for iremote |
Input arrays ilocal and iremote follow the PetscCopyMode semantics. In particular, if localmode/remotemode is PETSC_OWN_POINTER or PETSC_USE_POINTER, PETSc might modify the respective array; if PETSC_USE_POINTER, the user must delete the array after PetscSFDestroy(). Only if PETSC_COPY_VALUES is used, the respective array is guaranteed to stay intact and a const array can be passed (but a cast to non-const is needed).