Interactive Program for
Tet Mesh Quality

TET_MESH_QUALITY is a C++ program which computes and prints a variety of quality measures for a given tet mesh of a set of points in 3D.

The tet mesh is defined by a node file containing the coordinates of nodes, and a tetra file containing quadruples of node indices. For more information on this format, see the order4 tet mesh format.

The quality measures computed include:

Each quality measure is defined as the minimum of its value over each tetrahedron. The maximum and best possible value is 1, and the minimum and worst value is 0.


tet_mesh_quality prefix
where prefix is the common file prefix:

The element definition file will list node indices. In C++, it may be more natural to use 0-based indices. This program will accept an element definition file that is 0-based or 1-based, and will convert a 1-based input file so that it becomes 0-based internal to the program. The detection of 1-based data is determined by the absence of the use of a 0 index, and the use of an index equal to the number of nodes. This is an implicit and fallible, but reasonable, way to handle this problem.


The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.


TET_MESH_QUALITY is available in a C++ version and a FORTRAN90 version and a MATLAB version.

Related Programs:

CVT_TET_MESH, a FORTRAN90 library which uses CVT methods to compute a tet mesh in a region.

GEOMPACK, a C++ library which includes a routine DTRIS3 to compute the tet mesh of a set of points in 3D.

TABLE_QUALITY, a FORTRAN90 program which computes quality measures for an arbitrary (untriangulated) pointset in any dimension.

TABLE_TET_MESH, a FORTRAN90 program which computes the tet mesh of a set of points in 3D.

TEST_TET_MESH, a FORTRAN90 library which defines a few test regions for the generation of a tet mesh.

TET_MESH, a C++ library which carries out computations with a tet mesh.

TET_MESH_BOUNDARY, a C++ program which returns the nodes and faces of the boundary of a tetrahedral mesh, which themselves form a 3D triangular mesh or "TRI_SURFACE".

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

TET_MESH_DISPLAY_OPENGL, a C++ program which reads a tet mesh and displays the nodes and edges using OpenGL.

TET_MESH_L2Q, a C++ program which converts a linear to quadratic tet mesh.

TET_MESH_Q2L, a C++ program which converts a quadratic to linear tet mesh.

TET_MESH_RCM, a C++ program which takes a tet mesh and relabels the nodes to reduce the bandwidth of the corresponding adjacency matrix.

TET_MESH_REFINE, a C++ program which refines a tet mesh.

TET_MESH_TET_NEIGHBORS, a C++ program which computes the tetrahedral adjacency information.

TET_MESH_VOLUMES, a C++ program which computes the volume of each tetrahedron in a tet mesh.

TRIANGULATION_QUALITY, a C++ program which computes triangle-based quality measures for a triangulation of a set of points in 2D.


  1. Herbert Edelsbrunner,
    Geometry and Topology for Mesh Generation,
    Cambridge, 2001,
    ISBN: 0-521-79309-2,
    LC: QA377.E36.
  2. David Field,
    Qualitative Measures for Initial Meshes,
    International Journal of Numerical Methods in Engineering,
    Volume 47, 2000, pages 887-906.
  3. Barry Joe,
    GEOMPACK - a software package for the generation of meshes using geometric algorithms,
    Advances in Engineering Software,
    Volume 13, 1991, pages 325-331.
  4. Per-Olof Persson, Gilbert Strang,
    A Simple Mesh Generator in MATLAB,
    SIAM Review,
    Volume 46, Number 2, June 2004, pages 329-345.

Source Code

Tests and Examples

CUBE is a simple example of 8 nodes in a cube. Test files you may copy include:

List of Routines:

You can go up one level to the C++ source codes.

Last revised on 12 August 2009.