Quadrilateral Meshes

QUAD_MESH is a C++ library which carries out operations involving meshes of quadrilaterals.

The mesh is the collection of quadrilaterals. Each quadrilateral is termed an "element". The points used to define the shape of the quadrilateral (the corners, and sometimes a few more points) are called the "nodes".

Routines are available to:


The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.


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

Related Data and Programs:

FEM2D, a data directory which contains a description and examples of files that describe a 2D finite element model.

FEM_IO, a C++ library which reads or writes node, element and data files defining a finite element model.

FEM2D_PACK, a C++ library which handles various tasks associated with finite element meshes.

MESH_BANDWIDTH, a C++ program which returns the geometric bandwidth associated with a mesh of elements of any order and in a space of arbitrary dimension.

MESH_DISPLAY, a MATLAB program which reads data defining a polygonal mesh and displays it, with optional numbering.

MESH_DISPLAY_OPENGL, a C++ program which reads files defining a polygonal mesh and displays an image using OpenGL.

QUAD_MESH, a data directory which defines a format for storing meshes of quadrilaterals over a 2D region.

QUAD_MESH_RCM, a C++ program which computes the reverse Cuthill-McKee (RCM) reordering for nodes in a mesh of 4-node quadrilaterals.

TRIANGULATION, a C++ library which carries out operations involving meshes of triangular elements.


  1. Hans Rudolf Schwarz,
    Methode der Finiten Elemente,
    Teubner Studienbuecher, 1980,
    ISBN: 3-519-02349-0.
  2. Gilbert Strang, George Fix,
    An Analysis of the Finite Element Method,
    Cambridge, 1973,
    ISBN: 096140888X,
    LC: TA335.S77.
  3. Olgierd Zienkiewicz,
    The Finite Element Method,
    Sixth Edition,
    Butterworth-Heinemann, 2005,
    ISBN: 0750663200,

Source Code:

Examples and Tests:

EXAMPLE1 is a mesh made up of squares of uniform size. The squares are arranged in a grid with a few irregularities, however. In particular, there is an interior hole.

EXAMPLE2 is a mesh made up of quadrilaterals that are "trying" to tile a semicircle. The row of elements that touches the origin is degenerate, and are essentially triangles. The elements vary in area.

SAMPLE_QUAD demonstrates how a single quadrilateral can be randomly sampled.

List of Routines:

You can go up one level to the C++ source codes.

Last revised on 29 September 2009.