tet_mesh_tet_neighbors, an Octave code which reads information defining a tet mesh of points in 3D, and determines, for each face of each tetrahedron, the index of the neighboring tetrahedron that shares that face.

The tet mesh is defined by a node file containing the coordinates of nodes, and a tetra file containing sets of 4 or 10 node indices. For this calculation, though, only the tetra file is needed.

If a tetrahedron is on the boundary, then one or more of its faces will not be shared by any tetrahedron. Such cases will be indicated by specifying the corresponding neighbor value as -1.


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


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


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

Related Programs:


neighbors_to_metis_graph, an Octave code which reads a tet mesh neighbor file created by tet_mesh_tet_neighbors and writes a modified version of the same data suitable for input to the mesh partitioning program metis.

tet_mesh, an Octave code which is useful for work with tet 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_q2l, an Octave code which can convert a quadratic (10-node) tet mesh to a linear (4-node) tet mesh.

tet_mesh_quality, an Octave code which can compute the quality of a tet mesh.

tet_mesh_rcm, an Octave code which takes a 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, a directory which includes a description and examples of the tet mesh tetrahedron neighbor data format.

tet_mesh_volumes, an Octave code which computes the volume of each tetrahedron in a tet mesh;

voronoi_neighbors, an Octave code which is given a set of points in the plane and determines the voronoi adjacency structure, that is, which points share an edge of the voronoi diagram.


  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. 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 07 July 2023.