triangulation_rcm


triangulation_rcm, an Octave code which computes the reverse Cuthill-McKee reordering for nodes in a triangulation composed of 3-node or 6-node triangles.

The user supplies a node file and a triangle file, containing the coordinates of the nodes, and the indices of the nodes that make up each triangle. Either 3-node or 6-node triangles 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 triangles, and writes out new node and triangle files that correspond to the RCM permutation.

Note that the node file would normally contain exactly 2 values on each line, namely the X and Y coordinates of the nodes. However, this is not necessary. Extra information can be included on each line, for instance, a "Z" 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:

triangulation_rcm 'prefix'
where 'prefix' is the common file prefix:

Licensing:

The information on this web page is distributed under the MIT license.

Languages:

triangulation_rcm is available in a C++ version and a Fortran90 version and a MATLAB version and an Octave version.

Related Data and Programs:

triangulation_rcm_test

mesh_bandwidth, an Octave code which returns the geometric bandwidth associated with a mesh of elements of any order and in a space of arbitrary dimension.

quad_mesh_rcm, an Octave code which computes the reverse Cuthill-Mckee (RCM) reordering for nodes in a mesh of 4-node quadrilaterals.

rcm, an Octave code which carries out reverse Cuthill-Mckee (RCM) computations.

tet_mesh_rcm, an Octave code which applies the reverse Cuthill-Mckee (RCM) reordering to a tetrahedral mesh of nodes in 3d.

triangulation, an Octave code which carries out various operations on order 3 (linear) or order 6 (quadratic) triangulations.

triangulation_display, an Octave code which displays the nodes and elements of a triangulation on the MATLAB graphics screen;

triangulation_plot, an Octave code which reads data defining a triangulation and creates a Postscript image of the nodes and triangles.

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. Marc deBerg, Marc Krevald, Mark Overmars, Otfried Schwarzkopf,
    Computational Geometry,
    Springer, 2000,
    ISBN: 3-540-65620-0.
  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, 1976, pages 236-250.
  6. Joseph ORourke,
    Computational Geometry,
    Second Edition,
    Cambridge, 1998,
    ISBN: 0521649765,
    LC: QA448.D38.

Source Code:


Last revised on 18 September 2024.