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

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

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
  • 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.

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.