1: #if !defined(_PETSCSFTYPES_H)
  2: #define _PETSCSFTYPES_H
  4: /*S
  5:    PetscSF - PETSc object for setting up and managing the communication of certain entries of arrays and Vecs between MPI processes.
  7:    Level: intermediate
  9:   Concepts: star forest
 11:        PetscSF uses the concept of star forests to indicate and determine the communication patterns concisely and efficiently.
 12:   A star  http://en.wikipedia.org/wiki/Star_(graph_theory) forest is simply a collection of trees of height 1. The leave nodes represent
 13:   "ghost locations" for the root nodes.
 15: .seealso: PetscSFCreate(), VecScatter, VecScatterCreate()
 16: S*/
 17: typedef struct _p_PetscSF* PetscSF;
 19: /*S
 20:    PetscSFNode - specifier of owner and index
 22:    Level: beginner
 24:   Concepts: indexing, stride, distribution
 26: .seealso: PetscSFSetGraph()
 27: S*/
 28: typedef struct {
 29:   PetscInt rank;                /* Rank of owner */
 30:   PetscInt index;               /* Index of node on rank */
 31: } PetscSFNode;
 33: #endif