GrAL (Grid Algorithms Library) is a generic library for mesh data structures and mesh-based algorithms.

GrAL - The Grid Algorithms Library

GrAL is an open source C++ library supporting geometric data structures for meshes and mesh-related algorithms. GrAL is based on generic programming, a relatively new programming paradigm allowing the development of very general software and the data-structure neutral implementation of algorithms.

GrAL is actively maintained and available from

The design goals of GrAL are on the one hand to provide generic and thus universally usable software components for geometric meshes and algorithms, and on the other hand to investigate and further develop the methods and concepts of generic programming for applications in scientific and technical computing.

GrAL contains — among others — the following components:

  • data structures for diverse types of meshes (Cartesian, simplicial, general), for arbitrary dimensions
  • space-trees of arbitrary dimension (includes quadtrees in 2D and octrees in 3D)
  • generic components for distributed grids
  • adapters for a number of traditional libraries and data structures (e.g. VTK) and for I/O from and to diverse file formats
  • A number of combinatorial and geometric algorithms on meshes
A complete overview over GrAL's components can be found in the GrAL documentation.