AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
Axom

Axom provides libraries that address common computer science needs. It grew from the recognition that physics codes at Lawrence Livermore National Laboratories had encountered the need for logging, a data store, geometric computation, file I/O, and other facilities and had addressed the needs in various idiosyncratic methods. Axom is designed to provide a drop-in replacement for code that wants to adopt it.

Axom components

  • Core provides shared utility functionality to all components.
  • Inlet provides input file functionality.
  • Lumberjack provides logging aggregation and filtering capability.
  • Mint provides a comprehensive mesh data model.
  • Primal provides an API for geometric primitives and computational geometry tests.
  • Quest provides an API to query point distance and position relative to meshes.
  • Sidre provides a data store with hierarchical structure.
  • Slam provides an API to construct and process meshes.
  • Slic provides infrastructure for logging application messages.
  • Spin provides spatial acceleration data structures, also known as spatial indexes.

Dependencies between components are as follows:

  • Core has no dependencies, and the other modules depend on Core
  • Slic optionally depends on Lumberjack
  • Slam, Primal, Mint, Quest, Spin, and Sidre depend on Slic
  • Inlet depends on Sidre, and Slic
  • Mint optionally depends on Sidre
  • Spin depends on Primal, and Slam
  • Quest depends on Slam, Primal, Spin, and Mint

The figure below summarizes the dependencies between the modules. Solid links indicate hard dependencies; dashed links indicate optional dependencies.

dot_dependencies.png
Module dependencies

Further documentation

Each component contains a test subdirectory containing numerous code unit tests and an example subdirectory with more extensive demonstrations of the Axom library. The Sidre, Mint, and Slam examples include several versions of the lulesh mini-app, an implementation of the heat equation and a 1-D shock tube simulation.