In order to save memory space as well as computation time, in the current
implementation of
SCOTCH meshGraph
, some mesh arrays are shared with the
graph structure. Therefore, one should make sure that the graph must no
longer be used after the mesh structure is freed. The graph structure can be
freed before or after the mesh structure, but must not be used after the mesh
structure is freed.
Return values
SCOTCH meshGraph
returns 0 if the graph structure has been successfully al-
located and filled, and 1 else.
7.9
Mesh ordering routines
The first routine provides high-level functionality and frees the user from the burden
of calling in sequence several of the low-level routines described afterward.
7.9.1
SCOTCH meshOrder
Synopsis
int SCOTCH meshOrder (const SCOTCH Mesh *
meshptr,
const SCOTCH Strat *
straptr,
SCOTCH Num *
permtab,
SCOTCH Num *
peritab,
SCOTCH Num *
cblkptr,
SCOTCH Num *
rangtab,
SCOTCH Num *
treetab)
scotchfmeshorder (doubleprecision (*)
meshdat,
doubleprecision (*)
stradat,
integer*
num
(*)
permtab,
integer*
num
(*)
peritab,
integer*
num
cblknbr,
integer*
num
(*)
rangtab,
integer*
num
(*)
treetab,
integer
ierr)
Description
The
SCOTCH meshOrder
routine computes a block ordering of the unknowns of
the symmetric sparse matrix the adjacency structure of which is represented
by the elements that connect the nodes of the source mesh structure pointed to
by
meshptr
, using the ordering strategy pointed to by
stratptr
, and returns
ordering data in the scalar pointed to by
cblkptr
and the four arrays
permtab
,
peritab
,
rangtab
and
treetab
.
The
permtab
,
peritab
,
rangtab
and
treetab
arrays should have been pre-
viously allocated, of a size sufficient to hold as many
SCOTCH Num
integers as
there are node vertices in the source mesh, plus one in the case of
rangtab
.
Any of the five output fields can be set to
NULL
if the corresponding infor-
mation is not needed. Since, in Fortran, there is no null reference, passing a
reference to
meshptr
in these fields will have the same effect.
103