triangulation, a Fortran77 code 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.
The mesh is the collection of triangles. Each triangle is termed an "element". The points used to define the shape of the triangle (the corners, and sometimes a few more points) are called the "nodes".
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.
The computer code and data files described and made available on this web page are distributed under the MIT license
triangulation is available in a C version and a C++ version and a Fortran90 version and a MATLAB version and an Octave version.
cvt_triangulation, a Fortran90 program which uses routines from the TEST_TRIANGULATION library to create a CVT-based triangularization.
GEOMPACK, a Fortran77 library which can compute Delaunay triangulations, Voronoi diagrams, and other information, by Barry Joe.
MESH_TO_XML, a Fortran77 program which reads information defining a 1D, 2D or 3D mesh, namely a file of node coordinates and a file of elements defined by node indices, and creates a corresponding XML file for input to DOLFIN or FENICS.
TABLE_DELAUNAY, a Fortran90 program which triangulates a set of nodes whose coordinates are stored in a file.
TEST_TRIANGULATION, a Fortran90 library which sets up a number of triangulation test problems.
TRIANGLE, a C program which computes a triangulation of a geometric region.
TRIANGULATION_BOUNDARY_NODES, a Fortran90 program which reads data defining a triangulation, determines which nodes lie on the boundary, and writes their coordinates to a file.
TRIANGULATION_CORNER, a Fortran90 program which patches triangulations so that no triangle has two sides on the boundary.
TRIANGULATION_DISPLAY_OPENGL, a C++ program which reads files defining a triangulation and displays an image using Open GL.
TRIANGULATION_L2Q, a Fortran90 program which reads data defining a 3-node triangulation and generates midside nodes and writes out the corresponding 6-node triangulation.
TRIANGULATION_MASK, a Fortran90 program which takes an existing triangulation and deletes triangles and their corresponding nodes as requested by the user.
TRIANGULATION_ORDER3, a directory which contains a description and examples of order 3 triangulations.
TRIANGULATION_ORDER6, a directory which contains a description and examples of order 6 triangulations.
TRIANGULATION_ORIENT, a Fortran90 program which reads data defining a triangulation, makes sure that every triangle has positive orientation, and if not, writes a corrected triangle file.
TRIANGULATION_PLOT, a Fortran90 program which reads data defining a triangulation and creates a PostScript image of the nodes and triangles.
TRIANGULATION_Q2L, a Fortran90 program which 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, a Fortran90 program which reads data defining a triangulation and computes a number of quality measures.
TRIANGULATION_RCM, a Fortran90 program which 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, a Fortran90 program which 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, a Fortran90 program which reads data defining a triangulation, determines the neighboring triangles of each triangle, and writes that information to a file.