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