Copyright © 1998-2001
Jean-François Remacle and Christophe Geuzaine
Gmsh

A three-dimensional finite element mesh generator with built-in pre- and post-processing facilities

General Description Gmsh is an automatic three-dimensional finite element mesh generator, primarily Delaunay, with built-in pre- and post-processing facilities. Its primal goal is to provide a simple meshing tool for academic test cases with parametric input and up to date visualization capabilities. One of the strengths of Gmsh is its ability to respect a characteristic length field for the generation of adapted meshes on lines, surfaces and volumes. These adapted meshes can be mixed with simple structured (transfinite, elliptic, etc.) meshes in order to augment the flexibility.
Geometrical Entity Definition Parameterized geometries are created by successively defining points, oriented curves (segments, circles, ellipsis, splines, etc.), oriented surfaces (plane surfaces, ruled surfaces, etc.) and volumes. Compound groups of geometrical entities can be defined, based on these elementary parameterized geometric entities. Data can be defined either interactively thanks to the menu system, or directly in the ASCII input files.
Mesh Generation A finite element mesh is a tessellation of a given subset of R^3 by elementary geometrical elements of various shapes (in this case lines, triangles, quadrangles, tetrahedra, prisms and hexahedra), arranged in such a way that two of them intersect, if they do, along a common face, edge or node, and never otherwise. All the finite element meshes produced by Gmsh as unstructured, even if they were generated in a structured way. This implies that the elementary geometrical elements are defined only by an ordered list of their vertices (which allows the orientation of all their lower order geometrical entities) but no predefined relation is assumed between any two elementary elements.

The procedure follows the same order as for the geometry creation: curves are discretized first; the mesh of the curves is then used to mesh the surfaces; then the mesh of the surfaces is used to mesh the volumes. This automatically assures the continuity of the mesh when, for example, two surfaces share a common curve. Every meshing step is constrained by the characteristic length field, which can be uniform, specified by characteristic length associated to elementary geometrical entities, or associated to another mesh (the background mesh).

For each meshing step (i.e. the discretization of lines, surfaces and volumes), all structured mesh directives are executed first, and serve as additional constraints for the unstructured parts. The implemented Delaunay algorithm is subdivided in the following five steps for surface/volume discretization:

  1. trivial meshing of a box including the convex polygon/polyhedron defined by the boundary nodes resulting from the discretization of the curves/surfaces;
  2. creation of the initial mesh by insertion of all the nodes on the curves/surfaces thanks to the Bowyer algorithm;
  3. boundary restoration to force all the edges/faces of the curves/surfaces to be present in the initial mesh;
  4. suppression of all the unwanted triangles/tetrahedra (in particular those containing the nodes of the initial box);
  5. insertion of new nodes by the Bowyer algorithm until the characteristic size of each simplex is lower or equal to the characteristic length field evaluated at the center of its circumscribed circle/sphere.

Scalar and Vector Field Visualization

Multiple post-processing scalar or vector maps can be loaded and manipulated (globally or individually) along with the geometry and the mesh. Scalar fields are represented by iso-value curves or color maps and vector fields by three-dimensional arrows or displacement maps. Post-processor functions include offsets, elevation, interactive color map modification, range clamping, interactive and scriptable animation, vector postscript output, etc. All post-processing options can be accessed either interactively or through the the input ascii files.
Mailing lists
  • gmsh-announce is a moderated list for announcements about significant Gmsh events. You should subscribe to this list to get information about software releases, important bug fixes and other Gmsh-specific news. The list is archived here.
  • gmsh is the public mailing list for Gmsh users. You should send all questions, bug reports, requests or pleas for changes related to Gmsh to this list. The list is archived here
Documentation and Download Go to http://www.geuz.org/gmsh/.
Authors Gmsh is developed by Jean-François Remacle (currently with the Rensselaer Polytechnic Institute) and Christophe Geuzaine (currently with the University of Liège). Please use gmsh@geuz.org instead of our personnal e-mails to send questions or bug reports!