9 mesh ordering routines – Scotch Brand 5.1.10 User Manual

Page 103

Advertising
background image

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

Advertising