test_triangulation


test_triangulation, a Fortran90 code which sets up a number of triangulation test problems.

As far as possible, a uniform and abstract approach has been used. For each test region, a number of routines are provided, via which it is possible for the user to determine many things about the region. Often, just one or two routines would be needed for a particular purpose. The names of the routines, and their purposes are:

The test problems include:

  1. The unit circle;
  2. The unit circle with a circular hole;
  3. A square with a circular hole;
  4. A hexagon with a hexagonal hole;
  5. The horn;
  6. The superellipse with a superelliptical hole;
  7. The bicycle seat;
  8. The slice of pie with a circular hole and triangular notch;
  9. Jeff Borggaard's square with two hexagonal holes;
  10. The unit square;
  11. The L-shaped region;
  12. John Shadid's H-shaped region;
  13. The Sandia fork;
  14. Marcus Garvie's Lake Alpha, with Beta Island;
  15. Sangbum Kim's forward step;

Licensing:

The information on this web page is distributed under the MIT license.

Languages:

test_triangulation is available in a Fortran90 version and a MATLAB version and an Octave version.

Related Data and Programs:

test_triangulation_test

cvt_triangulation, a Fortran90 code which uses routines from test_triangulation() to create a CVT-based triangularization.

table_io, a Fortran90 code which is used to write some of the output files.

triangulation, a Fortran90 code which carries out various operations on order 3 ("linear") or order 6 ("quadratic") triangulations.

triangulation_boundary_nodes, a Fortran90 code which reads data defining a triangulation, determines which nodes lie on the boundary, and writes their coordinates to a file.

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

triangulation_l2q, a Fortran90 code which reads data defining a 3-node triangulation and generates midside nodes and writes out the corresponding 6-node triangulation.

triangulation_mask, a Fortran90 code which takes an existing triangulation and deletes triangles and their corresponding nodes as requested by the user.

triangulation order3, a directory which describes the format for triangulations of order 3.

triangulation order6, a directory which describes the format for triangulations of order 6.

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

triangulation_q2l, a Fortran90 code 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 code which reads data defining a triangulation and computes a number of quality measures.

triangulation_rcm, a Fortran90 code 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 code 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 code 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,
    ISBN: 3-540-65620-0.
  2. Barry Joe,
    GEOMPACK - a software package for the generation of meshes using geometric algorithms,
    Advances in Engineering Software,
    Volume 13, 1991, pages 325-331.
  3. Joseph ORourke,
    Computational Geometry,
    Second Edition,
    Cambridge, 1998,
    ISBN: 0521649765,
    LC: QA448.D38.
  4. Per-Olof Persson, Gilbert Strang,
    A Simple Mesh Generator in MATLAB,
    SIAM Review,
    Volume 46, Number 2, June 2004, pages 329-345.

Source Code:


Last revised on 05 September 2020.