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