Skip to main content

A tool for selectively downloading h5 files for specified isotopes / elements from your libraries of choice

Project description

CI - Main Upload Python Package PyPI codecov

OpenMC data downloader

A Python package for downloading preprocessed cross section data in the h5 file format for use with OpenMC.

This package allows you to download a fully reproducable composite nuclear data library with one command.

There are several methods of obtaining complete data libraries for use with OpenMC, for example:

  • OpenMC.org has entrie libraries downloadable as compressed files
  • OpenMC data repository scripts has scripts for automatically downloading ACE and ENDF files and generating h5 files from these inputs.

History

The package was originally conceived by Jonathan Shimwell as a means of downloading a minimal selection of data for use on continious intergration platforms. The package can also used to produce traceable and reproducable nuclear data distributions.

System Installation

To install the openmc_data_downloader you need to have Python3 installed, OpenMC is also advisable if you want to run simulations using the h5 data files but not actually madatory if you just want to download the cross sections.

pip install openmc_data_downloader

Features

The OpenMC data downloader is able to download corss section files for isotopes from nuclear data libraries.The user specifies the nuclear data libraries in order of their preference. When an isotope is found in multiple libraries it will be downloaded from the highest preference library. This avoid duplication of isotopes and provides a reproductible nuclear data enviroment.

The nuclear data h5 file are downloaded from the OpenMC-data-storage repository. Prior to being added to the repository they have been automatically processed using scripts from OpenMC data repository, these scripts convert ACE and ENDF file to h5 files.

The resulting h5 files are then used in and automated test suite of simulations to help ensure they are suitable for their intended purpose.

Isotopes for downloading can be found in a varity of ways as demonstrated below. When downloading a cross_section.xml file is automatically created and h5 files are named with their nuclear data library and the isotope. This helps avoid redownloading files that already exist locally.

Usage - command line usage

Getting a description of the input options

openmc_data_downloader --help

Downloading a single isotope from the FENDL 3.1d nuclear library

openmc_data_downloader -l FENDL-3.1d -i Li6

Downloading a multiple isotopes from the TENDL 2019 nuclear library

openmc_data_downloader -l TENDL-2019 -i Li6 Li7

Downloading a single element from the TENDL 2019 nuclear library

openmc_data_downloader -l TENDL-2019 -e Li

Downloading a multiple element from the TENDL 2019 nuclear library

openmc_data_downloader -l TENDL-2019 -e Li Si Na

Downloading h5 files from the ENDF/B 7.1 NNDC library to a specific folder (destination)

openmc_data_downloader -l ENDFB-7.1-NNDC -i Be9 -d my_h5_files

Downloading a combination of isotopes and element from the TENDL 2019 nuclear library

openmc_data_downloader -l TENDL-2019 -e Li Si Na -i Fe56 U235

Downloading all the isotopes in a materials.xml file from the TENDL 2019 nuclear library

openmc_data_downloader -l TENDL-2019 -m materials.xml

Downloading 3 isotopes from ENDF/B 7.1 NNDC (first choice) and TENDL 2019 (second choice) nuclear library

openmc_data_downloader -l ENDFB-7.1-NNDC TENDL-2019 -i Li6 Li7 Be9

Downloading the photon only cross section for an element ENDF/B 7.1 NNDC

openmc_data_downloader -l ENDFB-7.1-NNDC -e Li -p photon 

Downloading the neutron and photon cross section for an element ENDF/B 7.1 NNDC

openmc_data_downloader -l ENDFB-7.1-NNDC -e Li -p neutron photon

Downloading the neutron cross section for elements and an SaB cross sections

openmc_data_downloader -l ENDFB-7.1-NNDC -e Be O -s c_Be_in_BeO

Usage - within a Python enviroment

When using the Python API the just_in_time_library_generator() function provides similar capabilities to the openmc_data_downloader terminal command. With one key difference being that just_in_time_library_generator() sets the OPENMC_CROSS_SECTIONS enviromental varible to point to the newly created cross_sections.xml by default.

Downloading the isotopes present in an OpenMC material

import openmc
import openmc_data_downloader as odd

mat1 = openmc.Material()
mat1.add_element('Fe', 0.95)
mat1.add_element('C', 0.05)

odd.just_in_time_library_generator(
    libraries='FENDL-3.1d',
    materials=mat1
)

Downloading the isotopes present in an OpenMC material from two libraries but with a preference for ENDF/B 7.1 NNDC library over TENDL 2019

import openmc
import openmc_data_downloader as odd

mat1 = openmc.Material()
mat1.add_element('Fe', 0.95)
mat1.add_element('C', 0.05)

odd.just_in_time_library_generator(
    libraries=['ENDFB-7.1-NNDC', 'TENDL-2019'],
    materials=mat1
)

Downloading the isotopes in several OpenMC materials

import openmc
import openmc_data_downloader as odd

mat1 = openmc.Material()
mat1.add_element('Fe', 0.95)
mat1.add_element('C', 0.05)

mat2 = openmc.Material()
mat2.add_element('H', 0.66)
mat2.add_element('0', 0.33)

# a list of openmc.Material objects can be used
odd.just_in_time_library_generator(
    libraries='ENDFB-7.1-NNDC',
    materials=[mat1, mat2]
)

# alternatively an openmc.Materials() object can be used
mats = openmc.Materials([mat1, mat2]) 
odd.just_in_time_library_generator(
    libraries='ENDFB-7.1-NNDC',
    materials=mats
)

Downloading neutron cross sections for a material with an SaB

import openmc
import openmc_data_downloader as odd

my_mat = openmc.Material()
my_mat.add_element('Be', 0.5)
my_mat.add_element('O', 0.5)
my_mat.add_s_alpha_beta('Be_in_BeO')

odd.just_in_time_library_generator(
    libraries='ENDFB-7.1-NNDC',
    materials= my_mat
    particles = ['neutrons'],
)

Downloading photon and neutron cross sections for isotopes and elements from the TENDL 2019 library

import openmc
import openmc_data_downloader as odd

odd.just_in_time_library_generator(
    libraries='TENDL-2019',
    elements=['Li', 'Be'],
    particles = ['photon', 'neutrons'],
    isotopes=['Fe56', 'U235'],
)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openmc_data_downloader-0.3.0.tar.gz (17.5 kB view details)

Uploaded Source

Built Distribution

openmc_data_downloader-0.3.0-py3-none-any.whl (16.8 kB view details)

Uploaded Python 3

File details

Details for the file openmc_data_downloader-0.3.0.tar.gz.

File metadata

  • Download URL: openmc_data_downloader-0.3.0.tar.gz
  • Upload date:
  • Size: 17.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for openmc_data_downloader-0.3.0.tar.gz
Algorithm Hash digest
SHA256 36219b726e86a3f9cfa06f2613bf685cc44b1fcb3fe15281faed2557313c489d
MD5 7625f8b3821e99c185a41a33077c85a0
BLAKE2b-256 1b7b054a3c643d254ae25d77a047c990ac76e9a6f06ce070a74b9dc2c00373c9

See more details on using hashes here.

File details

Details for the file openmc_data_downloader-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: openmc_data_downloader-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 16.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for openmc_data_downloader-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5f35749a93d4a832e54752d27b3ab7dba832138a840f05a189ee0dad39737329
MD5 2880db797ac5603b55fa8c28cef16365
BLAKE2b-256 4ae7025fae9e920b51d70072c38e4a839da486965f2430af674a1d515183a3e1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page