CVT_TET_MESH
Centroidal Voronoi Tessellation
for 3D Regions


CVT_TET_MESH is a FORTRAN90 program, using double precision arithmetic, which applies CVT methods to produce a tet mesh of various test regions in 3D.

Note that, when using this program, we begin with a region, which is to be filled up with a number of (unspecified) points and then organized into tetrahedrons.

Other programs, such as TABLE_TET_MESH, are available for the case where the points are already given, and only the tetrahedrons need to be determined.

The CVT points are written to files in the TABLE format.

Related Programs:

CVT_TRIANGULATION is a FORTRAN90 library which applies CVT methods to produce a triangle mesh of various test regions in 2D.

GEOMPACK contains a routine DTRIS3 that can compute the tet mesh for a set of 3D points, as well as the adjacency information.

KEAST is a FORTRAN90 library which defines a number of quadrature rules for a tetrahedron.

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

MESH_BANDWIDTH is an interactive executable FORTRAN90 program which returns the geometric bandwidth associated with a mesh of elements of any order and in a space of arbitrary dimension.

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

TEST_TET_MESH is a FORTRAN90 library which defines a few test regions for the generation of a tet mesh.

TET_MESH_DISPLAY is a MATLAB program which can read in the node and tetra files defining a tet mesh and display a wireframe image.

TET_MESH_DISPLAY_OPEN_GL is a C++ program which reads a tet mesh and displays the nodes and edges using OpenGL.

TET_MESH_L2Q is an executable FORTRAN90 program which converts a linear to quadratic tet mesh.

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

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

TET_MESH_Q2L is an executable FORTRAN90 program which converts a quadratic to linear tet mesh.

TET_MESH_QUALITY is an executable FORTRAN90 program which computes the quality of a tet mesh.

TET_MESH_RCM is an executable FORTRAN90 program which takes a tet mesh and relabels the nodes to reduce the bandwidth of the corresponding adjacency matrix.

TET_MESH_TET_NEIGHBORS is an executable FORTRAN90 program which computes the tetrahedral adjacency information.

Reference:

  1. Franz Aurenhammer,
    Voronoi diagrams - a study of a fundamental geometric data structure,
    ACM Computing Surveys,
    Volume 23, Number 3, pages 345-405, September 1991,
    ../../pdf/aurenhammer.pdf
  2. Qiang Du, Vance Faber, Max Gunzburger,
    Centroidal Voronoi Tessellations: Applications and Algorithms,
    SIAM Review, Volume 41, 1999, pages 637-676.
  3. Lili Ju, Qiang Du, Max Gunzburger,
    Probabilistic methods for centroidal Voronoi tessellations and their parallel implementations,
    Parallel Computing,
    Volume 28, 2002, pages 1477-1500.
  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:

P01 is the 3x1x1 channel. Test files you may copy include:

We also ran problem P01 with several sizes, using the test #3 code (some points are forced to lie on the boundary, and some points are specified by the user.) These three sets of points where then used in other calculations, the first of which is TABLE_TETRA, which computes a "tetrahedronalization" of the points.

P02 is the vertical cylinder. Test files you may copy include:

List of Routines:

You can go up one level to the FORTRAN90 source codes.


Last revised on 17 July 2006.