# tet_mesh

tet_mesh, a FORTRAN90 code which constructs, describes, and modifies a mesh of tetrahedrons.

The simplest tet mesh, which we term an order 4 or linear mesh, uses four points to define each tetrahedron. A second type of mesh, known as an order 10 or quadratic mesh, uses ten points.

While an order 4 mesh can naturally be constructed directly from most sets of data points, a mesh of order 10 is not usually constructed directly from the data; at least in the simplest case, one wants the 6 extra nodes to be the midpoints of the sides determined by the 4 vertices.

Thus, an order 10 tet mesh is typically generated in two steps:

• generate an order 4 mesh, in which every tetrahedral vertex comes from a user data point;
• generate an order 10 mesh from the order 4 mesh, in which the new midside points are not user data points, but rather averages of pairs of tetrahedral vertices.

MATLAB has a command delaunay3 that can compute the tet mesh for a set of 3D points.

### Languages:

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

### Related Programs:

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

TABLE_TET_MESH, a FORTRAN90 code which computes the tet mesh for a given set of points.

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

TET_MESH_BOUNDARY, a FORTRAN90 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_L2Q, a FORTRAN90 code which converts a linear to quadratic tet mesh.

TET_MESH_ORDER4, a data directory which contains a description and examples of a tet mesh using order 4 elements.

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

TET_MESH_Q2L, a FORTRAN90 code which converts a quadratic to linear tet mesh.

TET_MESH_QUALITY, a FORTRAN90 code which computes the quality of a tet mesh.

TET_MESH_RCM, a FORTRAN90 code which takes a tet mesh and relabels the nodes to reduce the bandwidth of the corresponding adjacency matrix.

TET_MESH_REFINE, a FORTRAN90 code which refines a tet mesh.

TET_MESH_TET_NEIGHBORS, a FORTRAN90 code which computes the tetrahedral adjacency information.

TET_MESH_VOLUMES, a FORTRAN90 code which computes the volume of each tetrahedron in a tet mesh;

### Reference:

A Programmer's Geometry,
Butterworths, 1983,
ISBN: 0408012420.
2. Paul Bratley, Bennett Fox, Linus Schrage,
A Guide to Simulation,
Second Edition,
Springer, 1987,
ISBN: 0387964673.
3. Qiang Du, Desheng Wang,
The Optimal Centroidal Voronoi Tesselations and the Gersho's Conjecture in the Three-Dimensional Space,
Computers and Mathematics with Applications,
Volume 49, 2005, pages 1355-1373.
4. Herbert Edelsbrunner,
Geometry and Topology for Mesh Generation,
Cambridge, 2001,
ISBN: 0-521-79309-2,
LC: QA377.E36.
5. Barry Joe,
GEOMPACK - a software package for the generation of meshes using geometric algorithms,
Volume 13, Number 5, 1991, pages 325-331.
6. 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.
7. Albert Nijenhuis, Herbert Wilf,
Combinatorial Algorithms for Computers and Calculators,
Second Edition,
ISBN: 0-12-519260-6,
LC: QA164.N54.