Installation

SaltProc has the following dependencies:

  1. Python (>=3.5)

  2. Serpent (>=2.1.31)

  3. PyNE (>=0.5.11)

  4. OpenMC (>=0.13.0)

  5. NumPy (>=1.14.0)

  6. PyTables

  7. NetworkX

  8. PyDotPlus

  9. jsonschema

Optional Dependencies:
  1. pytest (for testing)

  2. sphinx and sphinx-rtd-theme (for building documentation)

  3. matplotlib

  4. ViTables

Clone the source from the SaltProc repository from GitHub.

git clone git@github.com:arfc/saltproc.git

Note on installing OpenMC

The conda-forge build of OpenMC 0.13.0 cannot be installed alongside the conda-forge build of PyNE due to a conflict in the pinned HDF5 versions required by those builds. Since both are dependencies, users will need to pick one to install from source. We recommend users install OpenMC from source as it has a more active community and a step-by-step guide on how to install it from source on most machines. For Ubuntu users, consider using the ubuntu-nuclear-software-installer script to install OpenMC from source.

Otherwise, all of the dependencies are readily available through the conda package manager.

Note

We recommend using the mamba CLI tool to install packages quickly. SaltProc has a compltex package dependency structure which can result is long environment solve times in the default conda solver. mamba is a reimplementation of conda in C++ and we have found it is significantly faster.

You can download the required ones using conda on the provided environment.yml file in the repository:

cd saltproc/
conda env create -f environment.yml

Once all the dependencies are installed, SaltProc can be installed by running the following commands from within the cloned directory repository (assuming the saltproc-env environment is active):

pip install .

Please let us know if you run into trouble.

Cross Section Configuration

SaltProc can use any cross section library that its depletion codes can. Currently supported depletion codes and their guides on cross section configuration are listed below:

Testing

The SaltProc test suite has two types of tests: unit tests and regression tests. The unit tests check that the individual functions and classes of the saltproc module return the correct type of variables and correct values, where applicable. The regression tests run a full SaltProc simulation and check the final result with a precalculated result. The SerpentDepcode integration tests require the JEFF 3.1.2 cross section library as well as neutron induces and spontaneous fission product yield data from JEFF 3.3. The publicly available versions of JEFF 3.1.2 cannot be used with Serpent right out of the box due to Serpent’s notation for isomeric states. The scripts in scripts/xsdata download all necessary libraries and perform all the necessary processing on them for use in Serpent 2. We recommend using them for your convenience. See the README for more information.

To run the tests, execute:

pytest test/

from the root directory of SaltProc. If you want to just the unit tests, execute:

pytest tests/unit_tests

Similarly, for just the integration tests, execute:

pytest tests/integration_tests

For more precise control, please refer to the pytest documentation.