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 Per-Olof 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: 3-540-65620-0.
-
David Field,
Qualitative Measures for Initial Meshes,
International Journal of Numerical Methods in Engineering,
Volume 47, 2000, pages 887-906.
-
Joseph ORourke,
Computational Geometry,
Second Edition,
Cambridge, 1998,
ISBN: 0521649765,
LC: QA448.D38.
-
Per-Olof Persson, Gilbert Strang,
A Simple Mesh Generator in MATLAB,
SIAM Review,
Volume 46, Number 2, pages 329-345, June 2004.
Source Code:
Examples and Tests:
ELL3 is a set of nodes in an L-shaped 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.