dimnnbr
≤
2, and its “z” coordinate is located at
geomtab[(i - vnodbas) *
d b 2]
if
dimnnbr
= 3.
7.2.5
Block ordering format
Block orderings associated with graphs and meshes are described by means of block
and permutation arrays, made of
SCOTCH Num
s, 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
are based. Therefore,
rangtab[baseval]
is always equal to
baseval
, and
rangtab[c baseval]
is always equal to
vertnbr
+
baseval
for
graphs and to
vnodnbr
+
baseval
for meshes. In order to avoid memory
errors when column blocks are all single columns, the size of
rangtab
must
always be one more than the number of columns, that is,
vertnbr
+ 1 for
graphs and
vnodnbr
+ 1 for meshes.
treetab
Array of ascendants of permuted column blocks in the separators tree.
treetab[i]
is the index of the father of column block
i
in the separators
tree, or
−
1 if column block
i
is the root of the separators tree. Whenever sep-
arators or leaves of the separators tree are split into subblocks, as the block
splitting, minimum fill or minimum degree methods do, all subblocks of the
same level are linked to the column block of higher index belonging to the
closest separator ancestor. Indices in
treetab
are based, in the same way as
for the other blocking structures. See Figure 21 for a complete example.
7.3
Strategy strings
The behavior of the mapping and block ordering routines of the
libScotch
library
is parametrized by means of strategy strings, which describe how and when given
56