Actual source code: petscistypes.h

  1: #ifndef PETSCISTYPES_H
  2: #define PETSCISTYPES_H

  4: /* SUBMANSEC = IS */

  6: /*S
  7:      IS - Abstract PETSc object that used for efficient indexing

  9:    Level: beginner

 11: .seealso: `ISCreateGeneral()`, `ISCreateBlock()`, `ISCreateStride()`, `ISGetIndices()`, `ISDestroy()`
 12: S*/
 13: typedef struct _p_IS *IS;

 15: /*S
 16:    ISLocalToGlobalMapping - mappings from an arbitrary
 17:       local ordering from 0 to n-1 to a global PETSc ordering
 18:       used by a vector or matrix.

 20:    Level: intermediate

 22:    Notes:
 23:    Mapping from local to global is scalable; but global
 24:    to local may not be if the range of global values represented locally
 25:    is very large.

 27:    `ISLocalToGlobalMapping` is actually a private object; it is included
 28:    here for the inline function `ISLocalToGlobalMappingApply()` to allow it to be inlined since
 29:    it is used so often.

 31: .seealso: `ISLocalToGlobalMappingCreate()`, `ISLocalToGlobalMappingApply()`, `ISLocalToGlobalMappingDestroy()`
 32: S*/
 33: typedef struct _p_ISLocalToGlobalMapping *ISLocalToGlobalMapping;

 35: /*S
 36:      ISColoring - sets of IS's that define a coloring of something, such as a graph defined by a sparse matrix

 38:    Level: intermediate

 40:     Notes:
 41:     One should not access the *is records below directly because they may not yet
 42:     have been created. One should use `ISColoringGetIS()` to make sure they are
 43:     created when needed.

 45:     When the coloring type is `IS_COLORING_LOCAL` the coloring is in the local ordering of the unknowns.
 46:     That is the matching the local (ghosted) vector; a local to global mapping must be applied to map
 47:     them to the global ordering.

 49:     Developer Note:
 50:     This is not a `PetscObject`

 52: .seealso: `ISColoringCreate()`, `ISColoringGetIS()`, `ISColoringView()`
 53: S*/
 54: typedef struct _n_ISColoring *ISColoring;

 56: /*S
 57:      PetscLayout - defines layout of vectors and matrices across processes (which rows are owned by which processes)

 59:    Level: developer

 61: .seealso: `PetscLayoutCreate()`, `PetscLayoutDestroy()`
 62: S*/
 63: typedef struct _n_PetscLayout *PetscLayout;

 65: #endif