The Engineering Layer for System Analysis (ELSA) codebase is designed to facilitate the creation and manipulation of computational models for nuclear simulations using OpenMC. It provides several utility classes and methods to simplify the process of defining regions, materials, and geometries within a nuclear simulation. Key functionalities include generating OpenMC regions, handling material properties, and providing convenient abstractions for complex geometrical and physical configurations. Additionally, ELSA supports the creation of submodels, allowing users to build modular and reusable components for their simulations. The codebase also includes powerful extrusion and revolution capabilities, enabling the efficient creation of 3D geometries from 2D profiles through linear and rotational transformations.
We recommend creating a dedicated Conda environment that contains OpenMC and all of ELSA’s dependencies.
-
Create and activate the OpenMC environment
conda create --name openmc-env openmc conda activate openmc-env
-
Clone the ELSA repository and install the package
git clone https://github.com/IdahoLabResearch/ELSA.git cd ELSA python -m pip install .
To build documentation use:
python -m pip install .[docs]To run the test suite use:
python -m pip install .[test]-
macOS (Apple Silicon, ARM)
If you are running macOS on an Apple Silicon (ARM) processor, install OpenMC specifically for theosx-64platform:conda create --name openmc-env --platform osx-64 openmc
-
Pandas compatibility when running tests
When executing the test suite, you might see an error such as:ValueError: setting an array element with a sequence.This can be resolved by installing a specific version of Pandas that is compatible with OpenMC:
conda create --name openmc-env --platform osx-64 openmc pandas=2.3.3
-
Missing NCrystal module
If you encounter:ModuleNotFoundError: No module named 'NCrystal'upgrade OpenMC to a version that includes the precompiled NCrystal bindings—for example,
0.15.3or newer.