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