TET_MESH_RCM
Reverse Cuthill-McKee Node Reordering


TET_MESH_RCM is a FORTRAN90 program which computes the reverse Cuthill-McKee reordering for nodes in a tetrahedral mesh ("tet mesh").

The user supplies a node file and a tetrahedron file, containing the coordinates of the nodes, and the indices of the nodes that make up each tetrahedron. Either 4-node or 10-node tetrahedrons may be used.

The program reads the data, computes the adjacency information, carries out the RCM algorithm to get the permutation, applies the permutation to the nodes and tetrahedrons, and writes out new node and tetrahedron files that correspond to the RCM permutation.

Note that the node file would normally contain exactly 3 values on each line, namely the X, Y and Z coordinates of the nodes. However, this is not necessary. Extra information can be included on each line, for instance, a "W" coordinate. Each line should include the same number of items, but all will be permuted correctly together. The program does not actually need to know the coordinates of the nodes, so in fact, ANY data (as long as it is real numeric data) associated with the nodes can be listed in the node file, and will be correctly permuted.

Usage:

tet_mesh_rcm node_file tetra_file
reads the tet mesh whose nodal coordinates are given in node_file, and tetrahedron indices in tetra_file, and produces a reordering of the nodes that will reduce the bandwidth.

Related Data and Programs:

CVT_TET_MESH is an executable FORTRAN90 program which uses CVT techniques to compute a tet mesh in a region.

MESH_BANDWIDTH is an interactive executable FORTRAN90 program which returns the geometric bandwidth associated with a mesh of elements of any order and in a space of arbitrary dimension.

RCM is a FORTRAN90 library of routines for reverse Cuthill-McKee computations.

TABLE_TET_MESH is an executable FORTRAN90 program which can compute the tet mesh for a given set of points.

TEST_TET_MESH is a FORTRAN90 library of routines defining regions for which a tet mesh is desired.

TET_MESH is a FORTRAN90 library of routines for working with tet meshes.

TET_MESH_DISPLAY is an executable MATLAB program which can read in the node and tetra files defining a tet mesh and display a wireframe image.

TET_MESH_DISPLAY_OPEN_GL is a C++ executable program which reads a tet mesh and displays the nodes and edges using OpenGL.

TET_MESH_L2Q is an executable FORTRAN90 program which converts a linear (4-node) to quadratic (10-node) tetrahedral mesh.

TET_MESH_ORDER4 is a directory which contains a description and examples of a tet mesh using order 4 elements.

TET_MESH_ORDER10 is a directory which contains a description and examples of a tet mesh using order 10 elements.

TET_MESH_Q2L is an executable FORTRAN90 program which converts a quadratic (10-node) to linear (4-node) tetrahedral mesh.

TET_MESH_QUALITY is an executable FORTRAN90 program which computes the quality of a tetrahedral mesh.

TET_MESH_RCM is also available in a C++ version and a MATLAB version.

TET_MESH_REFINE is an executable FORTRAN90 program which can refine a tet mesh.

TET_MESH_TET_NEIGHBORS is an executable FORTRAN90 program which computes the tetrahedral adjacency information.

TRIANGULATION_RCM is an executable FORTRAN90 program which applies the reverse Cuthill-McKee reordering to a triangulation of 2D data.

Reference:

  1. HL Crane, Norman Gibbs, William Poole, Paul Stockmeyer,
    Algorithm 508: Matrix Bandwidth and Profile Reduction,
    ACM Transactions on Mathematical Software,
    Volume 2, Number 4, December 1976, pages 375-377.
  2. Herbert Edelsbrunner,
    Geometry and Topology for Mesh Generation,
    Cambridge, 2001,
    ISBN: 0-521-79309-2,
    LC: QA377.E36.
  3. Alan George, Joseph Liu,
    Computer Solution of Large Sparse Positive Definite Matrices,
    Prentice Hall, 1981,
    ISBN: 0131652745,
    LC: QA188.G46
  4. Norman Gibbs,
    Algorithm 509: A Hybrid Profile Reduction Algorithm,
    ACM Transactions on Mathematical Software,
    Volume 2, Number 4, December 1976, pages 378-387.
  5. Norman Gibbs, William Poole, Paul Stockmeyer,
    An Algorithm for Reducing the Bandwidth and Profile of a Sparse Matrix,
    SIAM Journal on Numerical Analysis,
    Volume 13, Number 2, April 1976, pages 236-250.
  6. Barry Joe,
    GEOMPACK - a software package for the generation of meshes using geometric algorithms,
    Advances in Engineering Software,
    Volume 13, 1991, pages 325-331.
  7. Per-Olof Persson, Gilbert Strang,
    A Simple Mesh Generator in MATLAB,
    SIAM Review,
    Volume 46, Number 2, June 2004, pages 329-345.

Source Code:

Examples and Tests:

CUBE4 is an order 4 tet mesh of a cube:

CUBE4_EXTRA is a second version of the CUBE4 example, with two extra nodal data items at each node.

List of Routines:

You can go up one level to the FORTRAN90 source codes.


Last revised on 12 January 2007.