MSTK is a mesh framework that allows users to represent, manipulate and query unstructured 3D arbitrary topology meshes in a general manner without the need to code their own data structures. MSTK is a flexible framework in that it allows a variety of underlying representations for the mesh while maintaining a common interface. It allows users to choose from different mesh representations either at initialization (implemented) or during the program execution (not yet implemented) so that the optimal data structures are used for the particular algorithm. The interaction of users and applications with MSTK is through a functional interface that acts as though the mesh always contains vertices, edges, faces and regions and maintains connectivity between all these entities.
MSTK allows for the simultaneous existence of an arbitrary number of meshes. However, any entity in MSTK can belong to only one mesh at a time. MSTK also allows applications to attach application or field data to entities. This data may be integers, reals and pointers.
MSTK supports distributed meshes for parallel computing. In the future it will allow for parallel mesh modification.
MSTK is not a mesh generator but the infrastructure it provides can be used to develop sophisticated mesh generators and other mesh based applications.
MSTK is not related in anyway to STK or STKmesh in the Trilinos suite of software products.
MSTK has been tested on Linux systems, on HPC Unix systems and on MacOS with GNU, PGI and Intel compilers. If it doesn't work on a particular system, please let me know. If you have a patch, feel free to submit a pull request.