Skip to content

Creating a new HDF5 nuclear data library for UQ#102

Open
Grego01-biot wants to merge 5 commits intoopenmc-dev:masterfrom
Grego01-biot:covariance_in_HDF5
Open

Creating a new HDF5 nuclear data library for UQ#102
Grego01-biot wants to merge 5 commits intoopenmc-dev:masterfrom
Grego01-biot:covariance_in_HDF5

Conversation

@Grego01-biot
Copy link
Copy Markdown

@Grego01-biot Grego01-biot commented Apr 14, 2026

This PR adds generate_endf_covariance.py, a script that extends the existing generate_endf.py with optional MF=33 multigroup cross-section covariance processing. It produces the same HDF5 library as generate_endf.py but with covariance data (lower-triangular L factors) attached to each neutron file. It is important to note that this PR depends on openmc-dev/openmc#3911!

For each neutron ENDF evaluation, the script:

  1. Runs the standard NJOY processing chain to produce cross-section data (identical to generate_endf.py)

  2. Runs NJOY/ERRORR to produce multigroup relative covariance matrices on a 1500-group uniform-lethargy grid (1e-5 eV to 20 MeV). The default settings are covariance temperature at 293.6K, eigenvalue tolerance at 1e-10, temperatures for neutron cross-sections 250, 293.6, 600, 900, 1200 and 2500K.

  3. Factors each covariance matrix as lower triangular and stores L in the HDF5 file under /<nuclide>/covariance/mf33/.

If ENDF evaluation lacks MF=33 for a nuclide, the HDF5 file is still written with standard cross sections. A warning is logged and processing continues.

The full library with covariance can be run using the following script:

python generate_endf_covariance.py --njoy /path/to/njoy -r viii.0 -d endfb-viii.0-hdf5

The impact on storage and time to generate this new library is in process and results will be added to this PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant