Scotch Brand 5.1.10 User Manual

Page 104

Advertising
background image

On return, permtab holds the direct permutation of the unknowns, that is,
node vertex i of the original mesh has index permtab[i] in the reordered
mesh, while peritab holds the inverse permutation, that is, node vertex i
in the reordered mesh had index peritab[i] in the original mesh. All of
these indices are numbered according to the base value of the source mesh:
permutation indices are numbered from min(velmbas, vnodbas) to vnodnbr+
min(velmbas, vnodbas) − 1, that is, from 0 to vnodnbr − 1 if the mesh base
is 0, and from 1 to vnodnbr if the mesh base is 1. The base value for mesh
orderings is taken as min(velmbas, vnodbas), and not just as vnodbas, such
that orderings that are computed on some mesh have exactly the same index
range as orderings that would be computed on the graph obtained from the
original mesh by means of the SCOTCH meshGraph routine.

The three other result fields, *cblkptr, rangtab and treetab, contain data
related to the block structure. *cblkptr holds the number of column blocks
of the produced ordering, and rangtab holds the starting indices of each of the
permuted column blocks, in increasing order, so that column block i starts at
index rangtab[i] and ends at index (rangtab[i+1]−1), inclusive, in the new
ordering. treetab holds the separators tree structure, that is, 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. Please refer to Section 7.2.5 for more
information.

Return values

SCOTCH meshOrder

returns 0 if the ordering of the mesh has been successfully

computed, and 1 else. In this last case, the rangtab, permtab, and peritab
arrays may however have been partially or completely filled, but their contents
are not significant.

7.9.2

SCOTCH meshOrderInit

Synopsis

int SCOTCH meshOrderInit (const SCOTCH Mesh *

meshptr,

SCOTCH Ordering *

ordeptr,

SCOTCH Num *

permtab,

SCOTCH Num *

peritab,

SCOTCH Num *

cblkptr,

SCOTCH Num *

rangtab,

SCOTCH Num *

treetab)

scotchfmeshorderinit (doubleprecision (*)

meshdat,

doubleprecision (*)

ordedat,

integer*num (*)

permtab,

integer*num (*)

peritab,

integer*num

cblknbr,

integer*num (*)

rangtab,

integer*num (*)

treetab,

integer

ierr)

Description

104

Advertising