TRIANGULATION_Q2L 6-Node Triangulation to 3-Node Triangulation

TRIANGULATION_Q2L, a MATLAB program which reads information describing a triangulation of a set of points using 6-node ("quadratic") triangles, and creates a 3-node ("linear") triangulation.

The same nodes are used, but each 6-node triangle is broken up into four smaller 3-node triangles.

Thus, the program might be given the following 4 triangles:

```        11-12-13-14-15
|\    |\    |
| \   | \   |
6  7  8  9 10
|   \ |   \ |
|    \|    \|
1--2--3--4--5
```

It would make a new triangulation involving 16 triangles:

```        11-12-13-14-15
|\ |\ |\ |\ |
| \| \| \| \|
6--7--8--9-10
|\ |\ |\ |\ |
| \| \| \| \|
1--2--3--4--5
```

The input and output files use the simple TABLE format; comment lines begin with a "#" character. Otherwise, each line of the file contains one set of information, either the coordinates of a node (for a node file), or the indices of nodes that make up a triangle, (for a triangle file).

The input file prefix_elements.txt contains the triangle information for the 6-node triangulation. Each line contains the indices of six nodes that form a triangle, in counterclockwise order. The first three indices are the vertices, in counterclockwise order. The fourth index is the midside node between vertices 1 and 2, the fifth the midside between vertices 2 and 3, and the sixth the midside between vertices 3 and 1.

The output file prefix_q2l_elements.txt contains the triangle information for the 3-node triangulation. The vertices for each triangle are listed in counterclockwise order. There are 4 times as many triangles in this triangulation.

Usage:

triangulation_q2l ( 'prefix' )
where prefix is the common filename prefix:
• prefix_nodes.txt contains the node coordinates (not needed by this program),
• prefix_elements.txt contains the quadratic element definitions.
• prefix_q2l_elements.txt will contain the linear element definitions, based on the same set of nodes.

Languages:

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

Related Data and Programs:

MESH_TO_XML, a MATLAB 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.

TRIANGLE, a C program which computes a triangulation of a geometric region.

TRIANGULATION, a MATLAB library which carries out various operations on order 3 ("linear") or order 6 ("quadratic") triangulations.

TRIANGULATION_BOUNDARY_EDGES, a MATLAB program which reads data defining a triangulation, determines which edges lie on the boundary, organizes them into connected components, and writes this information to a file.

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

TRIANGULATION_CORNER, a MATLAB program which patches triangulations so that no triangle has two sides on the boundary.

TRIANGULATION_DELAUNAY_DISCREPANCY, a MATLAB program which measures the amount by which a triangulation fails the local Delaunay test;

TRIANGULATION_DISPLAY, a MATLAB program which displays the nodes and elements of a triangulation on the MATLAB graphics screen;

TRIANGULATION_DISPLAY_OPENGL, a C++ program which reads files defining a triangulation and displays an image using Open GL.

TRIANGULATION_HISTOGRAM, a MATLAB program which computes histograms of data over a triangulation.

TRIANGULATION_L2Q, a MATLAB program which reads data defining a 3-node triangulation and generates midside nodes and writes out the corresponding 6-node triangulation.

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

TRIANGULATION_NODE_TO_ELEMENT, a MATLAB 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, 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 MATLAB 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 MATLAB program which reads data defining a triangulation and creates a PostScript image of the nodes and triangles.

TRIANGULATION_QUAD, a MATLAB program which estimates the integral of a function over a triangulated region.

TRIANGULATION_QUALITY, a MATLAB program which reads data defining a triangulation and computes a number of quality measures.

TRIANGULATION_RCM, a MATLAB 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 MATLAB 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 MATLAB program which reads data defining a triangulation, determines the neighboring triangles of each triangle, and writes that information to a file.

Reference:

1. Marc deBerg, Marc Krevald, Mark Overmars, Otfried Schwarzkopf,
Computational Geometry,
Springer, 2000.
2. Joseph ORourke,
Computational Geometry,
Cambridge University Press,
Second Edition, 1998.

Source Code:

Last revised on 10 April 2019.