Mint User Guide¶
Mint provides a comprehensive mesh data model and a mesh-aware, fine-grain, parallel execution model that underpins the development of computational tools and numerical discretization methods. Thereby, enable implementations that are born parallel and portable to new and emerging architectures.
Doxygen generated API documentation can be found here: API documentation
Support for 1D/2D/3D mesh geometry.
Native support for a variety of commonly employed Cell Types.
Basic support for Finite Elements, consisting of commonly employed shape functions and quadratures.
A Mesh-Aware Execution Model, based on the RAJA programming model abstraction layer that supports on-node parallelism for mesh-traversals, enabling the implementation of computational kernels that are born parallel and portable across different processor architectures.
Mint is designed to be light-weight and self-contained. The only requirement for using Mint is a C++11 compliant compiler. However, to realize the full spectrum of capabilities, support for the following third-party libraries is provided:
RAJA, used for the parallel execution and portability layer.
Umpire, for memory management on next-generation architectures.
About this Guide¶
This guide discusses the basic concepts and architecture of Mint.
The Getting Started with Mint section provides a quick introduction to Mint, designed to illustrate high-level concepts and key capabilities, in the context of a small working example.
The Tutorial section provides code snippets that demonstrate specific topics in a structured and simple format.
For complete documentation of the interfaces of the various classes and functions in Mint consult the Mint Doxygen API Documentation.
Complete examples and code walk-throughs of mini-apps using Mint are provided in the Examples section.
- Getting Started with Mint
- Preliminary Concepts
- Mesh Representation
- Mesh Types
- Component Architecture
- Execution Model
- Finite Elements
- Create a Uniform Mesh
- Create a Rectilinear Mesh
- Create a Curvilinear Mesh
- Create an Unstructured Mesh
- Create a Mixed Unstructured Mesh
- Working with Fields
- Using External Storage
- Using Sidre
- Node Traversal Functions
- Cell Traversal Functions
- Face Traversal Functions
- Finite Elements
- Output to VTK