10-Node Tet Mesh
4-Node Tet Mesh

TET_MESH_Q2L is a C++ program which reads information describing a tet mesh of a set of points using 10-node ("quadratic") triangles, and creates a 4-node ("linear") tet mesh.

The same nodes are used, but each 10-node tetrahedron is broken up into 8 smaller 4-node tetrahedrons.


tet_mesh_q2l prefix
where prefix is the common file prefix:

The input and output files use the simple TABLE format; comment lines begin with a "#" character. Otherwise, each line of the file contains one set of information, either the coordinates of a node (for a node file), or the indices of nodes that make up a tetrahedron, (for a tetrahedron file).

The input file tetras.txt contains the tetrahedron information for the 10-node tet mesh. Each line contains the indices of 10 nodes that form a tetrahedron, in a particular order. The first 4 indices are the vertices. Subsequent nodes can be described by the pair of vertices they lie between, as follows:

        1  2  3  4  (1+2)  (1+3)  (1+4)  (2+3)  (2+4)  (3+4)

The output file tetras.l2q.txt contains the tetrahedron information for the 4-node tet mesh.


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


TET_MESH_Q2L 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 contains a routine DTRIS3 that can compute the tet mesh for a set of 3D points, as well as the adjacency information.

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

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 includes a variety of routines for working with tetrahedral meshes.

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_ORDER4, a directory which contains a description and examples of a tet mesh using order 4 elements.

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

TET_MESH_QUALITY, a C++ program which computes the "quality" of a mesh.

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

TET_MESH_REFINE, a C++ program which can refine 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;


  1. Herbert Edelsbrunner,
    Geometry and Topology for Mesh Generation,
    Cambridge, 2001,
    ISBN: 0-521-79309-2,
    LC: QA377.E36.
  2. Barry Joe,
    GEOMPACK - a software package for the generation of meshes using geometric algorithms,
    Advances in Engineering Software,
    Volume 13, 1991, pages 325-331.
  3. Anwei Liu, Barry Joe,
    Quality Local Refinement of Tetrahedral Meshes Based on 8-Subtetrahedron Subdivision,
    Mathematics of Computation,
    Volume 65, Number 215, July 1996, pages 1183-1200.
  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:

Examples and Tests:

You may copy data for an example problem:

List of Routines:

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

Last revised on 18 August 2009.