Tuesday, July 10, 2012

Gmsh. Introduction

What is Gmsh?

Gmsh is a software package described by its authors as "a three-dimensional finite element mesh generator with built-in pre- and post-processing facilities". Gmsh is free and open-source (GNU GPL2 license). It was developed by Christophe Geuzaine and Jean-Fran├žois Remacle. Now it is being developed and supported by Applied and Computational Electromagnetics group from Montefiore Institute.
Gmsh has good manual (though it doesn't cover all Gmsh's capabilities), several tutorials and alive mailing list. The main location of resources is Gmsh's site geuz.org/gmsh.

What is Gmsh designed for?

One can divide a process of mathematical modeling of some physical phenomenon into several parts:
  1. pre-processing part
    • geometry definition
    • mesh building
  2. task solving
  3. post-processing part
    • data preparation
    • visualization
Gmsh provides the tools to work with all these parts, even with task-solving stage (but in this case you should bind Gmsh with some outer solver (your own or, for example, GetDP written by P. Dular and C. Geuzaine and therefore easily embedded into Gmsh)).

Is there an alternative to Gmsh?

Yes, there is a lot. Many FEM-packages have their own triangulators. Here, I just want to mention two: Tetgen and Netgen. They are very widely used, and it is interesting that they are connected via Gmsh. Here is a quotation from the Gmsh's manual:

"6.1 Choosing the right unstructured algorithm
In 3D two unstructured algorithms are available:
1. The "Delaunay" algorithm is split into two separate steps. First, an initial mesh of the union of all the volumes in the model is performed using H. Si’s Tetgen algorithm. Then a three-dimensional version of the 2D Delaunay algorithm described above is applied.
2. The "Frontal" algorithm uses J. Schoeberl’s Netgen algorithm."

So the relationship between Gmsh, Netgen and Tetgen can be seen as:

I mean that on one hand, Gmsh is the same mesh generator as others, but on another hand, it contains mesh building algorithms from such packages as Netgen and Tetgen. It even has Netgen optimization. So Gmsh does build a good mesh.

Where is Gmsh?

Gmsh can be downloaded from its site. There are binaries (including all stable releases and automated nightly builds) for Windows, Linux and Mac OS X systems, as well as source code of all stable Gmsh versions and last developing version from SVN.

No comments:

Post a Comment