Speaker
Description
Transport codes used to simulate reactors, critical assemblies, medical diagnostics, etc. need access to nuclear and atomic data (e.g., data from ENDF/B-VIII.0 and EPICS2017). The Generalized Nuclear Data Structure (GNDS) supports storing evaluated and processed nuclear and atomic data - processed data are data in a form more suitable for transport codes (e.g., cross sections reconstructed from resonance parameters, heated cross sections, multi-grouped data). The specification for version 2.0 of the GNDS standard has recently been finalized. In this talk we will describe GIDI+ which is a suite of C++ APIs for reading GNDS 2.0 data, performing multi-group operations and sampling the data for Monte Carlo transport.
GIDI+ is comprised of the following C++ APIs:
- PoPI: Properties of Particles Interface
-
Supports reading and accessing GNDS PoPs data. PoPs data describe properties of particles including a particle’s mass, spin, halflife and decay particles.
-
GIDI: General Interaction Data Interface
- Supports reading and accessing data in a GNDS reactionSuite. A reactionSuite describes the nuclear or atomic reactions for a projectile hitting a target (e.g., “n + O16”).
- Supports reading GNDS map files. A map file links many reactionSuites together to form a nuclear and atomic data library.
- Provides functions for finding and reading in a reactionSuite for a specified projectile and target (e.g., “n + Th232”) found in a map file.
- Provides functions for accessing multi-group data in a reactionSuite which includes performing operations on the multi-group data (e.g., summing, collapsing and transport correcting with the Pendlebury/Underhill formalism).
- Allows one to mark some reactions as disabled in a reactionSuite instance. Disables reactions are skipped by multi-group routines and MCGIDI. For example, one can disable the (n,3n) reaction. With this reaction disabled, a subsequent call to the total multi-group cross section will not include the (n,3n) cross section.
-
Support specifying modifications to reaction cross sections to perform sensitivity studies.
-
MCGIDI: Monte Carlo GIDI
- Loads data from GIDI classes into classes that are better suited for Monte Carlo lookup, sampling and require less memory.
- Provides functions to evaluate the total cross section or the cross section for a reaction.
- Provides functions for sampling a reaction from the reactions in a reactionSuite.
- Provides functions for sampling outgoing particle data for a reaction.
- Supports continuous energy and multi-group cross section data.
- Supports unresolved region probability tables.
- Provides serializing a reactionSuite’s data which can then be broadcasted to MPI processes and GPUs.
- Supports shared memory to reduce footprint.
Currently, GIDI+ supports transporting n, p, d, t, h, $\alpha$ and $\gamma$. For $\gamma$ both photo-atomic and photo-nuclear data are supported. For neutrons, Thermal Neutron Scattering Law data are supported. We are currently adding support for electron transport and will describe its status at the meeting.
GIDI+ is freely available under the open-source MIT license and can be downloaded from https://github.com/LLNL/gidiplus.
Prepared by LLNL under Contract DE-AC52-07NA27344.
LLNL-ABS-827368