Skip to content

ELSA is a Python-based utility suite built on the OpenMC API that streamlines the creation of materials, regions, and geometries for nuclear simulations. It enables modular, reusable submodels and efficient generation of complex 3D parametric geometries for reactor and radiation analysis.

License

Notifications You must be signed in to change notification settings

IdahoLabResearch/ELSA

Repository files navigation

ELSA: Engineering Layer for System Analysis

Code style: black

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.

Installation

We recommend creating a dedicated Conda environment that contains OpenMC and all of ELSA’s dependencies.

  1. Create and activate the OpenMC environment

    conda create --name openmc-env openmc
    conda activate openmc-env
  2. Clone the ELSA repository and install the package

    git clone https://github.com/IdahoLabResearch/ELSA.git
    cd ELSA
    python -m pip install .

Optional installations

To build documentation use:

python -m pip install .[docs]

To run the test suite use:

python -m pip install .[test]

Troubleshooting

  • macOS (Apple Silicon, ARM)
    If you are running macOS on an Apple Silicon (ARM) processor, install OpenMC specifically for the osx-64 platform:

    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.3 or newer.

About

ELSA is a Python-based utility suite built on the OpenMC API that streamlines the creation of materials, regions, and geometries for nuclear simulations. It enables modular, reusable submodels and efficient generation of complex 3D parametric geometries for reactor and radiation analysis.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published