# TET_MESH_ORDER10 Quadratic Tet Mesh Definition

TET_MESH_ORDER10 is a dataset directory which contains examples of 10-node "tet meshes" (meshes of tetrahedrons). In such a mesh, the fundamental shape is a tetrahedron, but each tetrahedron is described by 10 nodes, namely, the four vertices, and the six midside nodes.

Typically, such a mesh is not generated directly from arbitrary data, since the midside nodes are expected to be the averages of pairs of vertices, or nearly so. It is more typical that a linear mesh, using 4-node tetrahedrons, is generated, and then a quadratic mesh is derived from the linear mesh.

A 10-node tet mesh is called quadratic since it easily allows for piecewise quadratic interpolation of data values defined at the nodes.

The definition of an order 10 tet mesh requires two files:

• the node file lists the coordinates of a set of points.
• the element file lists groups of 10 node indices, which form each element.

There is little agreement about how to order the nodes that describe a 10-node tetrahedron. The first four nodes are always the vertices. We might label them as "A", "B", "C", and "D". Then the six remaining nodes are each halfway between a pair of vertices, and in fact can be uniquely identified by that pair. Thus, the node between vertices B and D could be called "BD". One way to order these six nodes is to sort the two bracketing vertices and list the pairs in order. In that case, the full set of 10 nodes might be listed as

A, B, C, D, AB, AC, AD, BC, BD, CD.

### Example of a node file:

Here is an example of a node file:

```        #  Node file for the vertices of a cube.
#
0.0  0.0  0.0
0.0  0.0  1.0
0.0  1.0  0.0
0.0  1.0  1.0
1.0  0.0  0.0
1.0  0.0  1.0
1.0  1.0  0.0
1.0  1.0  1.0
0.0  0.0  0.5
0.0  0.5  0.0
0.0  0.5  0.5
0.5  0.0  0.0
0.0  0.5  1.0
0.5  0.0  0.5
0.5  0.0  1.0
0.0  1.0  0.5
0.5  0.5  0.0
0.5  1.0  0.0
0.5  0.5  0.5
0.5  0.5  1.0
0.5  1.0  0.5
0.5  1.0  1.0
1.0  0.0  0.5
1.0  0.5  0.0
1.0  0.5  0.5
1.0  0.5  1.0
1.0  1.0  0.5
```

### Example of a tet element file:

Each tetrahedron will be described by a list of 10 nodes. An arbitrary ordering for these nodes must be imposed. It is natural to list the four vertices first, but the 6 midside nodes have no natural ordering. Here, then, is one ordering that we use, where we have indicated the position of the midside nodes by listing the two "parent" vertices:

```        1, 2, 3, 4, (1+2), (1+3), (1+4), (2+3), (2+4), (3+4)
```

A possible tet mesh of these nodes would be described by the following element file:

```       4   3   5   1  16  19  11  17   10  12
4   2   5   1  13  19  11  14    9  12
4   7   3   5  21  16  19  18   24  17
4   7   8   5  21  22  19  27   24  25
4   6   2   5  20  13  19  15   23  14
4   6   8   5  20  22  19  26   23  25
```

### Related Data and Programs:

TABLE_TET_MESH, a FORTRAN90 program which reads a TABLE file of N points in 3 dimensions and produces a tet mesh;

TEST_TET_MESH, a FORTRAN90 library which implements test problems for tetrahedralization or meshing of arbitrary regions in 3 dimensions.

TET_MESH, a C++ library which carries out various operations on tetrahedral meshes.

TET_MESH_BOUNDARY, a FORTRAN90 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 reads in the node and element files defining a tet mesh and displays a wireframe image.

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

TET_MESH_L2Q, a C++ program which reads information about a 4-node (linear) tet mesh and creates data defining a corresponding 10-node (quadratic) tet mesh;

TET_MESH_ORDER4, a dataset directory which contains a description of a linear tet mesh of a set of 3D points, using a pair of files to list the node coordinates and the 4 nodes that make up each tetrahedron;

TET_MESH_ORDER20, a dataset directory which contains a description of a cubic tet mesh of a set of 3D points, using a pair of files to list the node coordinates and the 20 nodes that make up each tetrahedron;

TET_MESH_Q2L, a C++ program which reads information about a 10-node (quadratic) tet mesh and creates data defining a corresponding 4-node (linear) tet mesh;

TET_MESH_QUALITY, a C++ program which computes quality measures of a tetrahedral mesh.

TET_MESH_RCM, a C++ program which computes the reverse Cuthill-McKee reordering for the nodes of a tet mesh that uses 4-node or 10-node tetrahedrons;

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

TET_MESH_TET_NEIGHBORS, a C++ program which reads information about a tet mesh and writes out a list of the tetrahedrons that are adjacent to a given tetrahedron;

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

### Reference:

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,
Volume 13, Number 5, 1991, pages 325-331.
A Simple Mesh Generator in MATLAB,
SIAM Review,
Volume 46, Number 2, June 2004, pages 329-345.

### Sample Files:

CUBE_ORDER10 is the 8 vertices of a cube, plus 19 midside points, making a mesh of 6 tetrahedrons of order 10. The ordering of nodes in the element file is 1, 2, 3, 4, (1+2), (1+3), (1+4), (2+3), (2+4), (3+4).

ONEONEEIGHT_ORDER10 is 118 nodes forming 70 order-10 tetrahedrons (derived by applying TET_MESH_L2Q to the order-4 dataset "TWENTY_ORDER4".) The ordering of nodes in the element file is 1, 2, 3, 4, (1+2), (1+3), (1+4), (2+3), (2+4), (3+4).

TETRA_RHOMBIC_ORDER10 is the 4 vertices of a tetrahedron, plus the 6 midside points, making a mesh of 1 tetrahedron of order 10. This tetrahedron has some nice properties under a subdivision algorithm. The ordering of nodes in the element file is 1, 2, 3, 4, (1+2), (1+3), (1+4), (2+3), (2+4), (3+4).

You can go up one level to the DATASETS page.

Last revised on 21 December 2010.