LWN.net Logo

Three-dimensional mesh graphics with Gmsh

Christophe Geuzaine and Jean-François Remacle have authored a graphics utility known as Gmsh.

[Gmsh]

Gmsh is an automatic 3D finite element mesh generator (primarily Delaunay) with build-in CAD and post-processing facilities. Its primal design goal is to provide a simple meshing tool for academic test cases with parametric input and up to date visualization capabilities. One of its strengths is the ability to respect a characteristic length field for the generation of adapted meshes on lines, surfaces and volumes, and to mix these meshes with simple structured grids. Gmsh is built around four modules: geometry, mesh, solver and post-processing. The specification of any input to these modules is done either interactively using the graphical user interface or in ASCII text files using Gmsh's own scripting language.

Some of the available Gmsh documentation includes the online reference manual and FAQ. The overview section of the documentation mentions a number of possible applications for Gmsh. As with most graphical software, the screenshots give you a good idea of the software's capabilities. Some interesting electrical, mechanical, and fluid engineering drawings are included.

Version 1.44 of Gmsh has been released. Changes include new documentation and PNG support, see the VERSIONS file for more information on the project's history.

Gmsh is a cross-platform project, it runs on Linux, various flavors of UNIX, and Windows. Gmsh has been licensed under the GPL, downloads are available here, tarballs and RPMs are available. Dependencies include the OpenGL libraries, GSL (>1.2), and FLTK 1.1.X.


(Log in to post comments)

the purpose of a "mesh" tool

Posted Apr 26, 2003 9:47 UTC (Sat) by scottt (subscriber, #5028) [Link]

I only understood what a mesh tool was supposed to do after reading parts of the documentation on gmsh's site:

"A finite element mesh is a tessellation of a given subset of the three-dimensional space by elementary geometrical elements of various shapes (in Gmsh's case: lines, triangles, quadrangles, tetrahedra, prisms, hexahedra and pyramids), arranged in such a way that if two of them intersect, they do so along a face, an edge or a node, and never otherwise."

I don't suppose this is common knowledge among other lwn readers ?

I'd appreciate if someone can educated me on the common application of such a tool.(Is there a field that routinely uses this?)

Re: the purpose of a "mesh" tool

Posted Apr 28, 2003 19:22 UTC (Mon) by roelofs (subscriber, #2599) [Link]

I'd appreciate if someone can educated me on the common application of such a tool.(Is there a field that routinely uses this?)

Many. This particular tools appears to be mainly for visualization, but finite meshes (a.k.a. structured and unstructured grids) are used in many fields of engineering and science to simulate loads, stresses, collisions, airflow parameters, galactic dynamics, etc. For example, see the NAS page (originally Numerical Aerodynamic Simulation, now "NASA Advanced Supercomputing") at NASA Ames, http://www.nas.nasa.gov/, particularly some of the back issues of Gridpoints Magazine. The FAST toolkit (see the history page) is an ancestor and possibly a big brother of Gmsh, from what I've seen/recall.

There was a similar tool mentioned here a few months ago, which included some nice screenshots of grids surrounding various surface ships, but I can't quite put a name to it. (Maybe gerbv? I don't seem to have bookmarked it...)

Greg Roelofs

the purpose of a "mesh" tool

Posted May 2, 2003 15:02 UTC (Fri) by joib (guest, #8541) [Link]

Meshes are needed for the numerical solution of partial differential equations (PDE). It turns out that many problems in physics and engineering are described by PDE:s.

As an example, consider heat flow in a rod. The temperature u is a function of the three space coordinates (if we're in a 3D world) as well as time t. Lets assume cartesian coordinates (x,y,z). So, we have u=u(x,y,z,t). Thus, for every point (x,y,z) and time t there is an associated temperature u.

The heat flow in the rod is described by a PDE of the form Dt(u)=a*Laplace(u), where Dt is the derivative with respect to time and Laplace is the second derivative of the space coordinates.

Now, how to solve this equation? Except for simple cases, an analytical solution is impossible. The usual numerical method is something called the finite element method (FEM). One central piece of that is discretization. As there are an infinite amount of points in the rod, this clearly represents a problem for the solving process. Thus, the problem is discretizised, that is, only a finite amount of points are used for the solution. Which points to choose? In some simple geometry, it is of course easy to choose some regular grid. But what if the geometry is complicated (for example, the rod is bent)? That's where a triangulation engine such as gmsh is handy. Additionally, triangulation engines often can make a denser mesh around points where numerical instabilities often occur, such as sharp corners etc.

So, with gmsh you cannot do very much as is, you also need a program that understands the output of gmsh and actually solves the equation you're interested in. The gmsh homepage had a link to a solver program written by the same author, IIRC.

Copyright © 2003, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds