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