TRIANGULATION_QUALITY
Triangulation Quality Measures
TRIANGULATION_QUALITY
is a C++ program which
computes and prints quality measures for a given triangulation of a set of points in 2D.
The triangulation is defined by a node file containing
the coordinates of nodes, and a triangle file containing
sets of 3 or 6 node indices.
The quality measures computed include:

Alpha, the minimum angle divided by the maximum possible
minimum angle.

Area, the ratio of the minimum area to the maximum area;

Q, the triangle shape uniformity measure, twice the
radius of the inscribed circle divided by the radius of the
circumscribed circle;
Each quality measure is defined as the minimum of its value
over all the triangles; the maximum and best possible value is
1, and the minimum and worst possible value is 0.
Usage:
triangulation_quality prefix
where prefix is the common filename prefix:

prefix_nodes.txt, the node coordinates;

prefix_elements.txt, the triangulation.
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
TRIANGULATION_QUALITY is available in
a C++ version and
a FORTRAN90 version and
a MATLAB version.
Related Data and Programs:
DISTMESH,
a MATLAB library which
carries out triangular or tetrahedral mesh generation,
by PerOlof Persson and Gilbert Strang.
MESH2D,
a MATLAB library which
can automatically create a triangular mesh for a given polygonal region,
by Darren Engwirda.
TET_MESH_QUALITY,
a C++ program which
computes quality measures of a tetrahedral mesh.
TRIANGLE
is a C program which
computes a triangulation of a geometric region.
TRIANGULATION
is a C++ library which
carries out various operations on order 3 ("linear") or order 6
("quadratic") triangulations.
TRIANGULATION_NODE_TO_ELEMENT,
a C++ program which
reads files describing a set of nodes, their triangulation, and the
value of one or more quantities at each node, and outputs a file
that averages the quantities for each element. This operation
in effect creates an "order1" finite element model of the data.
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.
Reference:

Marc deBerg, Marc Krevald, Mark Overmars,
Otfried Schwarzkopf,
Computational Geometry,
Springer, 2000,
ISBN: 3540656200.

David Field,
Qualitative Measures for Initial Meshes,
International Journal of Numerical Methods in Engineering,
Volume 47, 2000, pages 887906.

Joseph ORourke,
Computational Geometry,
Second Edition,
Cambridge, 1998,
ISBN: 0521649765,
LC: QA448.D38.

PerOlof Persson, Gilbert Strang,
A Simple Mesh Generator in MATLAB,
SIAM Review,
Volume 46, Number 2, pages 329345, June 2004.
Source Code:
Examples and Tests:
ELL3 is a set of nodes in an Lshaped region, which have
been arranged into an order 3 triangulation.
HEX_HOLES6 is a set of nodes in an square region, with
two hexagonal holes, which have
been arranged into an order 6 triangulation.
List of Routines:

MAIN is the main program for TRIANGULATION_QUALITY.

ALPHA_MEASURE determines the triangulated pointset quality measure ALPHA.

ARC_COSINE computes the arc cosine function, with argument truncation.

AREA_MEASURE determines the area ratio quality measure.

BANDWIDTH_MESH determines the bandwidth of the coefficient matrix.

CH_CAP capitalizes a single character.

CH_EQI is true if two characters are equal, disregarding case.

CH_TO_DIGIT returns the integer value of a base 10 digit.

FILE_COLUMN_COUNT counts the columns in the first line of a file.

FILE_EXIST reports whether a file exists.

FILE_ROW_COUNT counts the number of row records in a file.

I4_MAX returns the maximum of two I4's.

I4_MIN returns the minimum of two I4's.

I4MAT_DATA_READ reads data from an I4MAT file.

I4MAT_HEADER_READ reads the header from an I4MAT file.

I4MAT_TRANSPOSE_PRINT prints an I4MAT, transposed.

I4MAT_TRANSPOSE_PRINT_SOME prints some of an I4MAT, transposed.

Q_MEASURE determines the triangulated pointset quality measure Q.

R8_ABS returns the absolute value of an R8.

R8_HUGE returns a "huge" R8.

R8_MAX returns the maximum of two R8's.

R8_MIN returns the minimum of two R8's.

R8MAT_DATA_READ reads the data from an R8MAT file.

R8MAT_HEADER_READ reads the header from an R8MAT file.

R8MAT_TRANSPOSE_PRINT prints an R8MAT, transposed.

R8MAT_TRANSPOSE_PRINT_SOME prints some of an R8MAT, transposed.

S_LEN_TRIM returns the length of a string to the last nonblank.

S_TO_I4 reads an I4 from a string.

S_TO_I4VEC reads an I4VEC from a string.

S_TO_R8 reads an R8 from a string.

S_TO_R8VEC reads an R8VEC from a string.

S_WORD_COUNT counts the number of "words" in a string.

TIMESTAMP prints the current YMDHMS date as a time stamp.
You can go up one level to
the C++ source codes.
Last revised on 22 August 2009.