#if !defined(PETSCSECTIONTYPES_H) #define PETSCSECTIONTYPES_H /* SUBMANSEC = PetscSection */ /*S PetscSection - Mapping from integers in a designated range to contiguous sets of integers. In contrast to IS, which maps from integers to single integers, the range of a PetscSection is in the space of contiguous sets of integers. These ranges are frequently interpreted as domains of other array-like objects, especially other PetscSections, Vecs, and ISs. The domain is set with PetscSectionSetChart() and does not need to start at 0. For each point in the domain of a PetscSection, the output set is represented through an offset and a count, which are set using PetscSectionSetOffset() and PetscSectionSetDof() respectively. Lookup is typically using accessors or routines like VecGetValuesSection(). Level: beginner .seealso: `PetscSectionCreate()`, `PetscSectionDestroy()`, `PetscSectionSym` S*/ typedef struct _p_PetscSection *PetscSection; /*S PetscSectionSym - Symmetries of the data referenced by a PetscSection. Often the order of data index by a PetscSection is meaningful, and describes additional structure, such as points on a line, grid, or lattice. If the data is accessed from a different "orientation", then the image of the data under access then undergoes a symmetry transformation. A PetscSectionSym specifies these symmetries. The types of symmetries that can be specified are of the form R * P, where R is a diagonal matrix of scalars, and P is a permutation. Level: developer .seealso: `PetscSection`, `PetscSectionSymCreate()`, `PetscSectionSymDestroy()`, `PetscSectionSetSym()`, `PetscSectionGetSym()`, `PetscSectionSetFieldSym()`, `PetscSectionGetFieldSym()`, `PetscSectionGetSymPoints()`, `PetscSectionSymType`, `PetscSectionSymSetType()`, `PetscSectionSymGetType()` S*/ typedef struct _p_PetscSectionSym *PetscSectionSym; /*J PetscSectionSymType - String with the name of a PetscSectionSym type. Level: developer Notes: PetscSectionSym has no default implementation, but is used by DM in PetscSectionSymCreateLabel(). .seealso: `PetscSectionSymSetType()`, `PetscSectionSymGetType()`, `PetscSectionSym`, `PetscSectionSymCreate()`, `PetscSectionSymRegister()` J*/ typedef const char *PetscSectionSymType; #endif