triangulation_corner


triangulation_corner, an Octave code which tries to correct situations in which a triangulation includes corner triangles, that is, triangles which have two sides on boundary.

Especially in finite element settings, such a triangle is considered undesirable. Especially in the case when a linear (order 3) finite element is involved, the function approximation in the interior of the triangle will be entirely determined by boundary data. If, for instance, the solution is constrained to be zero on the boundary, then the finite element function will be zero throughout the interior of the corner triangle.

Presumably, the triangle has a neighbor triangle on the one non-boundary side. It is generally possible and reasonable to replace these two triangles but another two which fill the same quadrilateral, but which are separated by the other diagonal of the quadrilateral.

The initial situation at the corner is suggest by the following diagram:

          |/  |/
          A---C--
          |\  |\
          | \ |
          |  \|
          B---D--
      

By rearranging the corner triangle and its neighbor, we have the more satisfactory triangulation:

          |/  |/
          A---C--
          |  /|\
          | / |
          |/  |
          B---D--
      

Usage:

triangulation_corner ( 'prefix' )
where 'prefix' is the common filename prefix:

Licensing:

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

Languages:

triangulation_corner is available in a C++ version and a Fortran90 version and a MATLAB version and an Octave version.

Related Data and Programs:

triangulation_corner_test

distmesh, an Octave code which carries out Persson and Strang's method of mesh generation;

test_triangulation, an Octave code which defines a number of test regions to be triangulated.

triangulation, an Octave code which performs various operations on order 3 (linear) or order 6 (quadratic) triangulations.

triangulation_boundary_edges, an Octave code 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, an Octave code which reads data defining a triangulation, determines which nodes lie on the boundary, and writes their coordinates to a file.

triangulation_delaunay_discrepancy, an Octave code which measures the amount by which a triangulation fails the local Delaunay test;

triangulation_histogram, an Octave code which computes histograms of data over a triangulation.

triangulation_l2q, an Octave code which reads information about a 3-node (linear) triangulation and creates data defining a corresponding 6-node (quadratic) triangulation;

triangulation_mask, an Octave code which reads a triangulation and calls a user-supplied routine to consider each triangle for deletion;

triangulation_order3, a data directory of examples of triangulation_order3 files, description of a linear triangulation of a set of 2d points, using a pair of files to list the node coordinates and the 3 nodes that make up each triangle;

triangulation_order6, a data directory of examples of triangulation_order6 files, a description of a quadratic triangulation of a set of 2d points, using a pair of files to list the node coordinates and the 6 nodes that make up each triangle.

triangulation_orient, an Octave code which ensures that the triangles in an order 3 or order 6 triangulation have positive orientation;

triangulation_plot, an Octave code which makes a postscript image of a triangulation of points.

triangulation_quad, an Octave code which estimates the integral of a function over a triangulated region.

triangulation_refine, an Octave code which can refine a triangulation.

triangulation_triangle_neighbors, an Octave code which reads data defining a triangulation, determines the neighboring triangles of each triangle, and writes that information to a file.

Reference:

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

Source Code:


Last revised on 20 September 2024.