Actual source code: petscsectiontypes.h

  1: #ifndef PETSCSECTIONTYPES_H
  2: #define PETSCSECTIONTYPES_H

  4: /* SUBMANSEC = PetscSection */

  6: /*S
  7:   PetscSection - Mapping from integers in a designated range to contiguous sets of integers.

  9:   In contrast to `IS`, which maps from integers to single integers, the range of a `PetscSection` is in the space of
 10:   contiguous sets of integers. These ranges are frequently interpreted as domains of other array-like objects,
 11:   especially other `PetscSection`, `Vec`s, and `IS`s. The domain is set with `PetscSectionSetChart()` and does not need to
 12:   start at 0. For each point in the domain of a `PetscSection`, the output set is represented through an offset and a
 13:   count, which are set using `PetscSectionSetOffset()` and `PetscSectionSetDof()` respectively. Lookup is typically using
 14:   accessors or routines like `VecGetValuesSection()`.

 16:   Level: beginner

 18: .seealso: `PetscSectionCreate()`, `PetscSectionDestroy()`, `PetscSectionSym`
 19: S*/
 20: typedef struct _p_PetscSection *PetscSection;

 22: /*S
 23:   PetscSectionSym - Symmetries of the data referenced by a `PetscSection`.

 25:   Often the order of data index by a `PetscSection` is meaningful, and describes additional structure, such as points on a
 26:   line, grid, or lattice.  If the data is accessed from a different "orientation", then the image of the data under
 27:   access then undergoes a symmetry transformation.  A `PetscSectionSym` specifies these symmetries.  The types of
 28:   symmetries that can be specified are of the form R * P, where R is a diagonal matrix of scalars, and P is a permutation.

 30:   Level: developer

 32: .seealso: `PetscSection`, `PetscSectionSymCreate()`, `PetscSectionSymDestroy()`, `PetscSectionSetSym()`, `PetscSectionGetSym()`, `PetscSectionSetFieldSym()`,
 33:           `PetscSectionGetFieldSym()`, `PetscSectionGetSymPoints()`, `PetscSectionSymType`, `PetscSectionSymSetType()`, `PetscSectionSymGetType()`
 34: S*/
 35: typedef struct _p_PetscSectionSym *PetscSectionSym;

 37: /*J
 38:   PetscSectionSymType - String with the name of a `PetscSectionSym` type.

 40:   Level: developer

 42:   Note:
 43:   `PetscSectionSym` has no default implementation, but is used by `DM` in `PetscSectionSymCreateLabel()`.

 45: .seealso: `PetscSectionSymSetType()`, `PetscSectionSymGetType()`, `PetscSectionSym`, `PetscSectionSymCreate()`, `PetscSectionSymRegister()`
 46: J*/
 47: typedef const char *PetscSectionSymType;

 49: #endif