TRIANGULATION
Triangulation of 2D data


TRIANGULATION is a MATLAB library which computes a triangulation of a set of points in 2D, and carries out various other related operations on triangulations of order 3 or 6.

Routines are available to

Since triangulations are often used to define a finite element mesh, which in turn defines a sparse matrix, there are routines available which can define the sparse compressed column arrays needed for a sparse matrix associated with a mesh of order 3 or 6. The special case of the Taylor-Hood mixed element is also handled, which is essentially an order 6 grid counted twice and an order 3 grid that only uses the vertices of the order 6 grid.

Related Data and Programs:

CVT_TRIANGULATION is a FORTRAN90 partial program, which uses routines from the TEST_TRIANGULATION library to create a CVT-based triangularization.

DISTMESH is a MATLAB program which takes the definition of a 2D region, and fills it up with a set of nodes, and triangulates those nodes to make a triangulation of the region. The region may be nonconvex and may include holes; the user may request a specific density for the nodes, and may require certain points to be in the set of nodes.

DUNAVANT is a MATLAB library of routines for defining Dunavant rules for quadrature on a triangle.

FEKETE is a MATLAB library of routines for defining a Fekete rule for quadrature or interpolation over a triangle.

FEM_SAMPLE is a MATLAB library of routines for evaluating a finite element function defined on an order 3 or order 6 triangulation.

HEX_GRID_TRIANGULATE is an executable FORTRAN90 program which uses this library of test regions and computes points on a hexagonal grid inside each region.

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

NCC_TRIANGLE is a MATLAB library defining Newton-Cotes closed quadrature rules on a triangle.

NCO_TRIANGLE is a MATLAB library defining Newton-Cotes open quadrature rules on a triangle.

QUADRATURE_RULES_TRI is a collection of files defining quadrature rules to be applied to triangular regions.

STROUD is a MATLAB library of routines which includes some quadrature rules for triangles.

TABLE_DELAUNAY is an executable FORTRAN90 program for the triangulation of a set of nodes whose coordinates are stored in a file.

TEST_TRI_INT is a FORTRAN90 library of functions that can be used to test algorithms for quadrature over a triangle.

TEST_TRIANGULATION is a FORTRAN90 library of routines which can set up a number of triangulation test problems.

TOMS612 is a FORTRAN77 library of routines which can estimate the integral of a function over a triangle.

TOMS706 is a FORTRAN77 library which estimates the integral of a function over a triangulated region.

TRIANGLE is an executable C program which computes a triangulation of a geometric region.

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

TRIANGULATION_BOUNDARY_NODES is an executable MATLAB program that reads data defining a triangulation, determines which nodes lie on the boundary, and writes their coordinates to a file.

TRIANGULATION_DISPLAY_OPEN_GL is an executable C++ program which reads files defining a triangulation and displays an image using Open GL.

TRIANGULATION_L2Q is an executable MATLAB program that reads data defining a 3-node triangulation and generates midside nodes and writes out the corresponding 6-node triangulation.

TRIANGULATION_MASK is an executable MATLAB program, which takes an existing triangulation and deletes triangles and their corresponding nodes as requested by the user.

TRIANGULATION_ORDER3 is a directory which contains a description and examples of order 3 triangulations.

TRIANGULATION_ORDER6 is a directory which contains a description and examples of order 6 triangulations.

TRIANGULATION_ORIENT is an executable MATLAB program that reads data defining a triangulation, makes sure that every triangle has positive orientation, and if not, writes a corrected triangle file.

TRIANGULATION_PLOT is an executable MATLAB program that reads data defining a triangulation and creates a PostScript image of the nodes and triangles.

TRIANGULATION_Q2L is an executable MATLAB program that reads data defining a 6-node triangulation, and subdivides each triangle into 4 3-node triangles, writing the resulting triangulation to a file.

TRIANGULATION_QUALITY is an executable MATLAB program that reads data defining a triangulation and computes a number of quality measures.

TRIANGULATION_RCM is an executable MATLAB program that reads data defining a triangulation, determines an ordering of the nodes that will reduce the bandwidth of the adjacency matrix, and writes the new triangulation information to a file.

TRIANGULATION_REFINE is an executable MATLAB program that reads data defining a triangulation, replaces each triangle by four congruent smaller ones, and writes the new triangulation information to a file.

TRIANGULATION_TRIANGLE_NEIGHBORS is an executable MATLAB program that reads data defining a triangulation, determines the neighboring triangles of each triangle, and writes that information to a file.

WANDZURA is a MATLAB library of routines for defining Wandzura rules for quadrature on a triangle.

Reference:

  1. Franz Aurenhammer,
    Voronoi diagrams - a study of a fundamental geometric data structure,
    ACM Computing Surveys,
    Volume 23, Number 3, September 1991, pages 345-405.
  2. Paul Bratley, Bennett Fox, Linus Schrage,
    A Guide to Simulation,
    Second Edition,
    Springer, 1987,
    ISBN: 0387964673.
  3. Marc deBerg, Marc Krevald, Mark Overmars, Otfried Schwarzkopf,
    Computational Geometry,
    Springer, 2000,
    ISBN: 3-540-65620-0.
  4. Barry Joe,
    GEOMPACK - a software package for the generation of meshes using geometric algorithms,
    Advances in Engineering Software,
    Volume 13, Number 5, 1991, pages 325-331.
  5. Albert Nijenhuis, Herbert Wilf,
    Combinatorial Algorithms for Computers and Calculators,
    Second Edition,
    Academic Press, 1978,
    ISBN: 0-12-519260-6,
    LC: QA164.N54.
  6. Atsuyuki Okabe, Barry Boots, Kokichi Sugihara, Sung Nok Chiu,
    Spatial Tesselations: Concepts and Applications of Voronoi Diagrams,
    Second Edition,
    Wiley, 2000,
    ISBN: 0-471-98635-6,
    LC: QA278.2.O36.
  7. Joseph ORourke,
    Computational Geometry,
    Second Edition,
    Cambridge, 1998,
    ISBN: 0521649765,
    LC: QA448.D38.
  8. Per-Olof Persson, Gilbert Strang,
    A Simple Mesh Generator in MATLAB,
    SIAM Review,
    Volume 46, Number 2, June 2004, pages 329-345.

Tar File:

A GZIP'ed TAR file of the contents of this directory is available. This is only done as a convenience for users who want ALL the files, and don't want to download them individually. This is not a convenience for me, so don't be surprised if the tar file is somewhat out of date.

Source Code:

Examples and Tests:

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


Last revised 15 July 2007.