Actual source code: petscsectiontypes.h

      1: #if !defined(PETSCSECTIONTYPES_H)
      2: #define PETSCSECTIONTYPES_H

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

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

     14:   Level: beginner

     16: .seealso:  PetscSectionCreate(), PetscSectionDestroy(), PetscSectionSym
     17: S*/
     18: typedef struct _p_PetscSection *PetscSection;

     20: /*S
     21:   PetscSectionSym - Symmetries of the data referenced by a PetscSection.

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

     28:   Level: developer

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

     35: /*J
     36:   PetscSectionSymType - String with the name of a PetscSectionSym type.

     38:   Level: developer

     40:   Notes:
     41:     PetscSectionSym has no default implementation, but is used by DM in PetscSectionSymCreateLabel().

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

     47: #endif