Actual source code: petscistypes.h
petsc-3.7.7 2017-09-25
1: #if !defined(_PETSCISTYPES_H)
2: #define _PETSCISTYPES_H
4: /*S
5: IS - Abstract PETSc object that allows indexing.
7: Level: beginner
9: Concepts: indexing, stride
11: .seealso: ISCreateGeneral(), ISCreateBlock(), ISCreateStride(), ISGetIndices(), ISDestroy()
12: S*/
13: typedef struct _p_IS* IS;
15: /*S
16: ISLocalToGlobalMapping - mappings from an arbitrary
17: local ordering from 0 to n-1 to a global PETSc ordering
18: used by a vector or matrix.
20: Level: intermediate
22: Note: mapping from Local to Global is scalable; but Global
23: to Local may not be if the range of global values represented locally
24: is very large.
26: Note: the ISLocalToGlobalMapping is actually a private object; it is included
27: here for the inline function ISLocalToGlobalMappingApply() to allow it to be inlined since
28: it is used so often.
30: .seealso: ISLocalToGlobalMappingCreate()
31: S*/
32: typedef struct _p_ISLocalToGlobalMapping* ISLocalToGlobalMapping;
34: /*S
35: ISColoring - sets of IS's that define a coloring
36: of the underlying indices
38: Level: intermediate
40: Notes:
41: One should not access the *is records below directly because they may not yet
42: have been created. One should use ISColoringGetIS() to make sure they are
43: created when needed.
45: Developer Note: this is not a PetscObject
47: .seealso: ISColoringCreate(), ISColoringGetIS(), ISColoringView(), ISColoringGetIS()
48: S*/
49: typedef struct _n_ISColoring* ISColoring;
51: /*S
52: PetscLayout - defines layout of vectors and matrices across processes (which rows are owned by which processes)
54: Level: developer
57: .seealso: PetscLayoutCreate(), PetscLayoutDestroy()
58: S*/
59: typedef struct _n_PetscLayout* PetscLayout;
61: /*S
62: PetscSection - Mapping from integers in a designated range to contiguous sets of integers.
64: In contrast to IS, which maps from integers to single integers, the range of a PetscSection is in the space of
65: contiguous sets of integers. These ranges are frequently interpreted as domains of other array-like objects,
66: especially other PetscSections, Vecs, and ISs. The domain is set with PetscSectionSetChart() and does not need to
67: start at 0. For each point in the domain of a PetscSection, the output set is represented through an offset and a
68: count, which are set using PetscSectionSetOffset() and PetscSectionSetDof() respectively. Lookup is typically using
69: accessors or routines like VecGetValuesSection().
71: Level: developer
73: .seealso: PetscSectionCreate(), PetscSectionDestroy()
74: S*/
75: typedef struct _p_PetscSection *PetscSection;
77: #endif