petsc-3.3-p7 2013-05-11
MATIJ
MATIJ = "ij". A matrix class encoding a PseudoGraph -- a directed graph that admits multiple edges between its vertices. The underlying pseudograph, and therefore the matrix, can be interpreted as a multiset-valued or array-valued map from vertices to vertices: each vertex v is mapped to the multiset or array of the vertices that terminate the edges originating at v.
Vertices, edges, and local sizes
Pseudograph vertices are identified with indices -- nonnegative integers of type PetscInt
- domain indices, from which the edges emanate
- range or codomain indices, at which the edges terminate
Each processor owns the domain indices falling within the local ownership range (see MatGetOwnershipRange()).
Edges emanating from a local domain index correspond to the matrix entries in the corresponding local row.
Indices terminating the local edges can have any value in [0,N) (where N is Mat's global column size).
Since any global index can be the target of any local edge, or even of multiple local edges with the same
source index, the matrix column size does not reflect row sizes. In particular, the number of edges with the
same local source can be greater than N (where n is the global column size). As with MatMPIADJ, there is no
particular distinction attached to the local column size n.
Map, support, image(s)
The interpretation as an array-valued map allows MATIJ to define its action on indices or indexed arrays.
An array of indices with entries within the local ownership range can be mapped to the index array obtained by
a concatenation of the images of all of the input indices. Likewise, an indexed array of weights -- scalars,
integers or integer-scalar pairs -- can be mapped to a similar indexed array with the indices replaced by
their images, and the weights duplicated, if necessary.
Using the above map interpretation of MATIJ, the indices within the local ownership range and nonempty
images constitute the local support of the Mat -- an array of size m0 <= m. The indices that belong to any of
the images of the locally-supported indices constitute the local image of size n0 <= N.
Level:advanced
Location:src/mat/impls/ij/matij.c
Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages
Examples
src/mat/examples/tutorials/ex14.c.html