tet_mesh_q2l, an Octave code 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 MIT license


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

Related Programs:


tet_mesh, an Octave code which includes a variety of routines for working with tetrahedral meshes.

tet_mesh_boundary, an Octave code 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, an Octave code which can read in the node and tetra files defining a tet mesh and display a wireframe image.

tet_mesh_l2q, an Octave code 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, an Octave code which computes the "quality" of a mesh.

tet_mesh_rcm, an Octave code 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, an Octave code which can refine a tet mesh.

tet_mesh_tet_neighbors, an Octave code which computes the tetrahedral adjacency information.

tet_mesh_volumes, an Octave code 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:

Last revised on 06 July 2023.