1 #if !defined(PETSCSECTIONTYPES_H) 2 #define PETSCSECTIONTYPES_H 3 4 /* SUBMANSEC = PetscSection */ 5 6 /*S 7 PetscSection - Mapping from integers in a designated range to contiguous sets of integers. 8 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 PetscSections, Vecs, and ISs. 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(). 15 16 Level: beginner 17 18 .seealso: `PetscSectionCreate()`, `PetscSectionDestroy()`, `PetscSectionSym` 19 S*/ 20 typedef struct _p_PetscSection *PetscSection; 21 22 /*S 23 PetscSectionSym - Symmetries of the data referenced by a PetscSection. 24 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. 29 30 Level: developer 31 32 .seealso: `PetscSection`, `PetscSectionSymCreate()`, `PetscSectionSymDestroy()`, `PetscSectionSetSym()`, `PetscSectionGetSym()`, `PetscSectionSetFieldSym()`, 33 `PetscSectionGetFieldSym()`, `PetscSectionGetSymPoints()`, `PetscSectionSymType`, `PetscSectionSymSetType()`, `PetscSectionSymGetType()` 34 S*/ 35 typedef struct _p_PetscSectionSym *PetscSectionSym; 36 37 /*J 38 PetscSectionSymType - String with the name of a PetscSectionSym type. 39 40 Level: developer 41 42 Notes: 43 PetscSectionSym has no default implementation, but is used by DM in PetscSectionSymCreateLabel(). 44 45 .seealso: `PetscSectionSymSetType()`, `PetscSectionSymGetType()`, `PetscSectionSym`, `PetscSectionSymCreate()`, `PetscSectionSymRegister()` 46 J*/ 47 typedef const char *PetscSectionSymType; 48 49 #endif 50