NJOY21 is made up of many smaller components. These components each solve some problem or implement some bit of code. Here are the various components that make up NJOY21:
- NJOY21 Next generation of NJOY designed to be easier, faster, more flexible, and more maintainable.
- NJOY2016 Legacy NJOY version to which NJOY21 is linked.
- NJOY2016-manual LaTeX source for the NJOY2016 manual.
- ENDFtk Toolkit for reading and interacting with ENDF-6-formatted files.
- ACEtk Toolkit for reading and interacting with ACE-formatted files.
- utility Generic utilities used throughout all NJOY subprojects.
- header-utilities A header distilling a subset of the utility library for use with header-only libraries.
- disco Header-only library for parsing data in fixed-width ascii format.
- DimensionalAnalysis Compact C++ header-only library providing compile-time dimensional analysis and unit awareness.
- metaconfigure Python scripts assisting in the generation of the build system configuration.
Some of the components maintained by NJOY developers don’t directly contribute to the NJOY21 source code, but are supporting materials such as the website and documentation. Here are those components:
- njoy.github.io Repository for the main webpage http://njoy.lanl.gov
- jekyll-website Repository containing necessary jekyll commands, etc. to ensure that the look of the website remains consistent across all the projects.
- DevelopersGuide Documents containing the expectations and instructions for those desiring to contribute to the development of NJOY21.
NJOY21 utilizes a number of third-party code, code that was not developed directly for NJOY. We maintain our own “adapters” to those third-party repositories. Our adapters take the third-party code and adapts it for our build/test system. The third-party components that we use are:
- catch-adapter Adater for Catch, a unit test project.
- fmt-adapter Adatper for fmt, an open-source formatting library.
- spdlog-adapter Adapter for spdlog, a header-only logging library.
- hana-adapter Adapter for Boost Hana, a metaprogramming library.
This is not a complete list of components. They are being updated on a regular basis.