About ViennaGrid

Various areas impose a broad range of different requirements on a mesh library, which certainly cannot be fulfilled by a single, predetermined datastructure. ViennaGrid employs a highly configurable internal representation of meshes, while providing a uniform interface for the storage and access of data on mesh elements as well as STL-compatible iteration over such elements.

A non-exhaustive list of features is as follows:

  • Open source library written in C++ using modern template metaprogramming techniques for highest usability without sacrificing performance
  • Header-only library for simple integration to existing projects
  • No external dependencies
  • Multi-dimensional (in particular 1d, 2d and 3d) management of unstructured grids
  • Arbitrary iterations over mesh elements (vertices, edges, faces, etc.)
  • Support for triangular, quadrilateral, tetrahedral and hexahedral meshes in arbitrary dimensions
  • Support for piecewise linear complexes (PLCs)
  • Highly customizable internal datastructure. A user has fine-grained control over the internal data structures of ViennaGrid in order to optimize the performance and/or memory footprint for a particular application
  • Triangular and tetrahedral mesh refinement
  • Computation of Voronoi diagrams for Delaunay meshes
  • Reader for Neper, Netgen, Tetgen, Synopsys .bnd, and VTK files
  • Writer for COMSOL .mphtxt, OpenDX and VTK (Paraview)
  • Permissive MIT/X11 license