Download Scotch and libScotch 6.0 User`s Guide - Gforge

Transcript
8.2.4
Geometry format
Geometry data is always associated with a graph or a mesh. It is simply made
of a single array of double-precision values which represent the coordinates of the
vertices of a graph, or of the node vertices of a mesh, in vertex order. The fields of
a geometry structure are the following:
dimnnbr
Number of dimensions of the graph or of the mesh, which can be 1, 2, or 3.
geomtab
Array of coordinates. This is an array of double precision values organized as
an array of (x), or (x, y), or (x, y, z) tuples, according to dimnnbr. Coordinates
that are not used (e.g. the z coordinates for a bidimentional object) are not
allocated. Therefore, the x coordinate of some graph vertex i is located at
geomtab[(i − baseval) ∗ dimnnbr + baseval], its y coordinate is located at
geomtab[(i − baseval) ∗ dimnnbr + baseval + 1] if dimnnbr ≥ 2, and its z
coordinate is located at geomtab[(i − baseval) ∗ dimnnbr + baseval + 2] if
dimnnbr = 3. Whenever the geometry is associated with a mesh, only node
vertices are considered, so the x coordinate of some mesh node vertex i, with
vnodbas ≤ i, is located at geomtab[(i − vnodbas) ∗ dimnnbr + baseval], its
y coordinate is located at geomtab[(i − vnodbas) ∗ dimnnbr + baseval + 1]
if dimnnbr ≥ 2, and its z coordinate is located at geomtab[(i − vnodbas) ∗
dimnnbr + baseval + 2] if dimnnbr = 3.
8.2.5
Block ordering format
Block orderings associated with graphs and meshes are described by means of block
and permutation arrays, made of SCOTCH Nums, as shown in Figure 21. In order for
all orderings to have the same structure, irrespective of whether they are created
from graphs or meshes, all ordering data indices start from baseval, even when they
refer to a mesh the node vertices of which are labeled from a vnodbas index such
that vnodbas > baseval. Consequently, row indices are related to vertex indices
in memory in the following way: row i is associated with vertex i of the SCOTCH
Graph structure if the ordering was computed from a graph, and with node vertex
i + (vnodbas− baseval) of the SCOTCH Mesh structure if the ordering was computed
from a mesh. Block orderings are made of the following data:
permtab
Array holding the permutation of the reordered matrix. Thus, if k =
permtab[i], then row i of the original matrix is now row k of the reordered
matrix, that is, row i is the k th pivot.
peritab
Inverse permutation of the reordered matrix. Thus, if i = peritab[k ], then
row k of the reordered matrix was row i of the original matrix.
cblknbr
Number of column blocks (that is, supervariables) in the block ordering.
rangtab
Array of ranges for the column blocks. Column block c, with baseval ≤ c <
(cblknbr+baseval), contains columns with indices ranging from rangtab[i]
to rangtab[i + 1], exclusive, in the reordered matrix. Indices in rangtab
58