Axom

Note

This page is under heavy construction.

Axom is a project in WCI/WSC that is funded by ECP/ATDM. Its principal goal is to provide a collection of robust and flexible software components that serve as building blocks for LLNL simulation tools. The emphasis is on sharing core infrastructure software amongst applications rather than having different codes develop and maintain similar capabilities.

A key objective of Axom is to facilitate integration of novel, forward-looking computer science capabilities into LLNL simulation codes. Thus, a central function of Axom is to enable and simplify data exchange between applications and tools that Axom provides. To meet these objectives, developers of Axom components emphasize the following features in software design and implementation:

  • Flexibility to meet the needs of a diverse set of applications
  • High-quality, with well designed APIs, good documentation, tested well, high performance, etc.
  • Consistency in software engineering practices
  • Integrability so that components work well together and are easily adopted by applications

The main drivers of the Axom project are to:

  • Provide the CS infrastructure foundation of the ECP/ATDM multi-physics application at LLNL
  • Support current ASC and other production applications and as they continue to evolve
  • Provide capabilities for LLNL research codes, proxy apps, etc. that simplify technology transfer from research efforts into production applications

Quickstart Guide

The Axom Quickstart Guide contains information about accessing the code, configuring and building, linking with an application, etc.

Axom Software Documentation

The following lists contain links to user guides and source code documentation for Axom software components:

Source Code Documentation

Look for documentation to appear for new components as they are developed.

Dependencies between modules are as follows:

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

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

digraph dependencies {
  quest -> {slam primal mint spin};
  {quest slam primal mint spin} -> {slic core};
  mint -> sidre [style="dashed"];
  spin -> {slam primal};
  sidre -> {slic core};
  slic -> core;
  slic -> lumberjack [style="dashed"];
  lumberjack -> core;
}

Other Tools Application Developers May Find Useful

Axom developers support other tools that can be used by software projects independent of the Axom. These include:

  • BLT (CMake-based build system developed by the Axom team to simplify CMake usage and development tool integration)
  • Shroud (Generator for native C and Fortran APIs from C++ code)
  • Conduit (Library for describing and managing in-memory data structures)

Communicating with the Axom Team

Mailing Lists

The project maintains two email lists:

Chat Room

We also have a chat room on LLNL’s Cisco Jabber instance called ‘Axom Dev’. It is open to anyone on the llnl network. Just log onto Jabber and join the room.

Atlassian Tools

The main interaction hub for the Axom software is the Atlassian tool suite on the Livermore Computing Collaboration Zone (CZ). These tools can be accessed through the MyLC Portal.

Direct links to the Axom Atlassian projects/spaces are:

LC Groups

Access to Axom projects/spaces in these Atlassian tools requires membership in the axom group on LC systems. Please contact the team for group access by sending an email request to ‘axom-dev@llnl.gov’.