Actual source code: petscistypes.h
1: #if !defined(PETSCISTYPES_H)
2: #define PETSCISTYPES_H
5: IS - Abstract PETSc object that allows indexing.
7: Level: beginner
9: .seealso: ISCreateGeneral(), ISCreateBlock(), ISCreateStride(), ISGetIndices(), ISDestroy()
11: typedef struct _p_IS* IS;
14: ISLocalToGlobalMapping - mappings from an arbitrary
15: local ordering from 0 to n-1 to a global PETSc ordering
16: used by a vector or matrix.
18: Level: intermediate
20: Note: mapping from Local to Global is scalable; but Global
21: to Local may not be if the range of global values represented locally
22: is very large.
24: Note: the ISLocalToGlobalMapping is actually a private object; it is included
25: here for the inline function ISLocalToGlobalMappingApply() to allow it to be inlined since
26: it is used so often.
28: .seealso: ISLocalToGlobalMappingCreate()
30: typedef struct _p_ISLocalToGlobalMapping* ISLocalToGlobalMapping;
33: ISColoring - sets of IS's that define a coloring
34: of the underlying indices
36: Level: intermediate
39: One should not access the *is records below directly because they may not yet
40: have been created. One should use ISColoringGetIS() to make sure they are
41: created when needed.
43: Developer Note: this is not a PetscObject
45: .seealso: ISColoringCreate(), ISColoringGetIS(), ISColoringView(), ISColoringGetIS()
47: typedef struct _n_ISColoring* ISColoring;
50: PetscLayout - defines layout of vectors and matrices across processes (which rows are owned by which processes)
52: Level: developer
55: .seealso: PetscLayoutCreate(), PetscLayoutDestroy()
57: typedef struct _n_PetscLayout* PetscLayout;
60: PetscSection - Mapping from integers in a designated range to contiguous sets of integers.
62: In contrast to IS, which maps from integers to single integers, the range of a PetscSection is in the space of
63: contiguous sets of integers. These ranges are frequently interpreted as domains of other array-like objects,
64: especially other PetscSections, Vecs, and ISs. The domain is set with PetscSectionSetChart() and does not need to
65: start at 0. For each point in the domain of a PetscSection, the output set is represented through an offset and a
66: count, which are set using PetscSectionSetOffset() and PetscSectionSetDof() respectively. Lookup is typically using
67: accessors or routines like VecGetValuesSection().
69: Level: developer
71: .seealso: PetscSectionCreate(), PetscSectionDestroy()
73: typedef struct _p_PetscSection *PetscSection;
76: PetscSectionSym - Symmetries of the data referenced by a PetscSection.
78: Often the order of data index by a PetscSection is meaningful, and describes additional structure, such as points on a
79: line, grid, or lattice. If the data is accessed from a different "orientation", then the image of the data under
80: access then undergoes a symmetry transformation. A PetscSectionSym specifies these symmetries. The types of
81: symmetries that can be specified are of the form R * P, where R is a diagonal matrix of scalars, and P is a permutation.
83: Level: developer
85: .seealso: PetscSectionSymCreate(), PetscSectionSymDestroy(), PetscSectionSetSym(), PetscSectionGetSym(), PetscSectionSetFieldSym(), PetscSectionGetFieldSym(), PetscSectionGetSymPoints()
87: typedef struct _p_PetscSectionSym *PetscSectionSym;