openmc-data 2.5.0__tar.gz → 2.6.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {openmc_data-2.5.0 → openmc_data-2.6.0}/.github/workflows/test_package.yml +7 -4
- openmc_data-2.6.0/.github/workflows/test_processing.yml +114 -0
- openmc_data-2.6.0/.github/workflows/test_urls.yml +55 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/.gitignore +1 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/PKG-INFO +63 -9
- {openmc_data-2.5.0 → openmc_data-2.6.0}/README.md +62 -8
- {openmc_data-2.5.0 → openmc_data-2.6.0}/pyproject.toml +10 -3
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/_version.py +3 -3
- openmc_data-2.6.0/src/openmc_data/convert/convert_jeff.py +306 -0
- openmc_data-2.6.0/src/openmc_data/download/download_jeff.py +54 -0
- openmc_data-2.6.0/src/openmc_data/generate/generate_jeff.py +286 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/urls.py +67 -40
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/urls_h5.py +17 -0
- openmc_data-2.6.0/src/openmc_data/urls_jeff.py +151 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/utils.py +21 -5
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data.egg-info/PKG-INFO +63 -9
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data.egg-info/SOURCES.txt +5 -3
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data.egg-info/entry_points.txt +3 -3
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data.egg-info/scm_file_list.json +5 -3
- openmc_data-2.6.0/src/openmc_data.egg-info/scm_version.json +8 -0
- openmc_data-2.6.0/tests/test_download_jeff.py +207 -0
- openmc_data-2.6.0/tests/test_urls.py +272 -0
- openmc_data-2.5.0/.github/workflows/test_processing.yml +0 -143
- openmc_data-2.5.0/.github/workflows/test_urls.yml +0 -52
- openmc_data-2.5.0/src/openmc_data/convert/convert_jeff32.py +0 -266
- openmc_data-2.5.0/src/openmc_data/convert/convert_jeff33.py +0 -228
- openmc_data-2.5.0/src/openmc_data/generate/generate_jeff33.py +0 -216
- openmc_data-2.5.0/src/openmc_data.egg-info/scm_version.json +0 -8
- openmc_data-2.5.0/tests/test_urls.py +0 -83
- {openmc_data-2.5.0 → openmc_data-2.6.0}/.github/workflows/python-publish.yml +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/LICENSE +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/MANIFEST.in +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/setup.cfg +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/__init__.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/convert/__init__.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/convert/convert_endf.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/convert/convert_fendl.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/convert/convert_lib80x.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/convert/convert_mcnp70.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/convert/convert_mcnp71.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/convert/convert_tendl.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/depletion/__init__.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/depletion/add_branching_ratios.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/depletion/branching_ratios_pwr.json +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/depletion/branching_ratios_sfr.json +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/depletion/casl_chain.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/depletion/generate_branching_ratios.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/depletion/generate_endf71_chain_casl.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/depletion/generate_endf_chain.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/depletion/generate_jeff_chain.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/depletion/generate_jendl_chain.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/depletion/generate_serpent_fissq.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/depletion/generate_tendl_chain.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/depletion/reduce_chain.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/depletion/serpent_fissq.json +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/depletion/tendl2019_nuclides.json +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/depletion/tendl2021_nuclides.json +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/download/__init__.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/download/download_chain.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/download/download_endf.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/download/download_tendl.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/generate/__init__.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/generate/generate_cendl.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/generate/generate_endf.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/generate/generate_fendl.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/generate/generate_jendl.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/generate/generate_tendl.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/other/__init__.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/other/combine_libraries.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/other/convert_tendl_rand.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/other/make_compton.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/other/make_stopping_powers.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/other/remove_corrupt_h5.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/other/sample_sandy.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/urls_chain.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data/urls_xml.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data.egg-info/dependency_links.txt +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data.egg-info/requires.txt +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/src/openmc_data.egg-info/top_level.txt +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/tests/test_utils.py +0 -0
- {openmc_data-2.5.0 → openmc_data-2.6.0}/tests/test_version.py +0 -0
|
@@ -41,15 +41,17 @@ jobs:
|
|
|
41
41
|
cd ..
|
|
42
42
|
pip install .
|
|
43
43
|
cd ..
|
|
44
|
-
pip install .
|
|
44
|
+
pip install '.[tests]'
|
|
45
|
+
|
|
46
|
+
- name: Test offline unit and CLI behavior
|
|
47
|
+
run: python -m pytest -q -rs tests -m 'not network and not integration'
|
|
45
48
|
|
|
46
49
|
# this just check the scripts are accessible after the install
|
|
47
50
|
# the scripts are not run or checked for correct behaviour
|
|
48
51
|
- name: Test convert scripts exist
|
|
49
52
|
run: |
|
|
50
53
|
convert_fendl --help
|
|
51
|
-
|
|
52
|
-
convert_jeff33 --help
|
|
54
|
+
convert_jeff --help
|
|
53
55
|
convert_lib80x --help
|
|
54
56
|
convert_mcnp70 --help
|
|
55
57
|
convert_mcnp71 --help
|
|
@@ -60,12 +62,13 @@ jobs:
|
|
|
60
62
|
run: |
|
|
61
63
|
generate_cendl --help
|
|
62
64
|
generate_endf --help
|
|
63
|
-
|
|
65
|
+
generate_jeff --help
|
|
64
66
|
generate_jendl --help
|
|
65
67
|
|
|
66
68
|
- name: Test download h5 scripts exist
|
|
67
69
|
run: |
|
|
68
70
|
download_endf --help
|
|
71
|
+
download_jeff --help
|
|
69
72
|
download_tendl --help
|
|
70
73
|
|
|
71
74
|
- name: Test download chain files scripts exist
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
|
|
2
|
+
name: test_convert_scripts
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
inputs:
|
|
6
|
+
script:
|
|
7
|
+
description: Script recipe to run (downloads and processes large datasets)
|
|
8
|
+
required: true
|
|
9
|
+
type: choice
|
|
10
|
+
options:
|
|
11
|
+
- convert_fendl
|
|
12
|
+
- convert_jeff
|
|
13
|
+
- convert_endf
|
|
14
|
+
- convert_tendl
|
|
15
|
+
- convert_tendl_rand
|
|
16
|
+
- download_endf
|
|
17
|
+
- download_tendl
|
|
18
|
+
- download_chain
|
|
19
|
+
- add_branching_ratios
|
|
20
|
+
- reduce_chain
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
jobs:
|
|
24
|
+
run_scripts:
|
|
25
|
+
runs-on: ubuntu-latest
|
|
26
|
+
timeout-minutes: 360
|
|
27
|
+
steps:
|
|
28
|
+
- uses: actions/checkout@v5
|
|
29
|
+
|
|
30
|
+
- name: Set up Python
|
|
31
|
+
uses: actions/setup-python@v6
|
|
32
|
+
with:
|
|
33
|
+
python-version: 3.12
|
|
34
|
+
|
|
35
|
+
- name: Install testing dependencies
|
|
36
|
+
run: |
|
|
37
|
+
sudo apt-get update
|
|
38
|
+
sudo apt-get install libhdf5-serial-dev
|
|
39
|
+
git clone --single-branch --branch develop --depth 1 https://github.com/openmc-dev/openmc.git
|
|
40
|
+
cd openmc
|
|
41
|
+
mkdir build
|
|
42
|
+
cd build
|
|
43
|
+
cmake ..
|
|
44
|
+
make -j2
|
|
45
|
+
sudo make -j2 install
|
|
46
|
+
cd ..
|
|
47
|
+
pip install .
|
|
48
|
+
cd ..
|
|
49
|
+
pip install .
|
|
50
|
+
|
|
51
|
+
# Convert scripts that require MCNP nuclear data are not tested because
|
|
52
|
+
# the CI doesn't contain that nuclear data.
|
|
53
|
+
# convert_lib80x.py convert_mcnp70.py convert_mcnp71.py files are not tested here
|
|
54
|
+
|
|
55
|
+
- name: test default convert_fendl
|
|
56
|
+
if: inputs.script == 'convert_fendl'
|
|
57
|
+
run: |
|
|
58
|
+
convert_fendl --cleanup
|
|
59
|
+
|
|
60
|
+
# Limit neutron processing to one temperature to bound disk use.
|
|
61
|
+
- name: test convert_jeff
|
|
62
|
+
if: inputs.script == 'convert_jeff'
|
|
63
|
+
run: convert_jeff -t 293 --cleanup
|
|
64
|
+
|
|
65
|
+
- name: test default convert_endf
|
|
66
|
+
if: inputs.script == 'convert_endf'
|
|
67
|
+
run: |
|
|
68
|
+
convert_endf --cleanup
|
|
69
|
+
|
|
70
|
+
- name: test default convert_tendl
|
|
71
|
+
if: inputs.script == 'convert_tendl'
|
|
72
|
+
run: |
|
|
73
|
+
convert_tendl --cleanup
|
|
74
|
+
|
|
75
|
+
- name: test default convert_tendl_rand
|
|
76
|
+
if: inputs.script == 'convert_tendl_rand'
|
|
77
|
+
run: |
|
|
78
|
+
convert_tendl_rand --nuclides O16 --cleanup
|
|
79
|
+
|
|
80
|
+
# download scripts
|
|
81
|
+
- name: test default download_endf
|
|
82
|
+
if: inputs.script == 'download_endf'
|
|
83
|
+
run: |
|
|
84
|
+
download_endf
|
|
85
|
+
|
|
86
|
+
- name: test default download_tendl
|
|
87
|
+
if: inputs.script == 'download_tendl'
|
|
88
|
+
run: |
|
|
89
|
+
download_tendl -r 2019
|
|
90
|
+
download_tendl -r 2021
|
|
91
|
+
|
|
92
|
+
- name: test default download_chain
|
|
93
|
+
if: inputs.script == 'download_chain'
|
|
94
|
+
run: |
|
|
95
|
+
download_chain -l endf -r b7.1 -b None
|
|
96
|
+
download_chain -l endf -r b8.0 -b None
|
|
97
|
+
download_chain -l endf -r b7.1 -b SFR
|
|
98
|
+
download_chain -l endf -r b8.0 -b SFR
|
|
99
|
+
download_chain -l endf -r b7.1 -b PWR
|
|
100
|
+
download_chain -l endf -r b8.0 -b PWR
|
|
101
|
+
download_chain -l endf -r b8.0 -b PWR
|
|
102
|
+
|
|
103
|
+
- name: test default add_branching_ratios
|
|
104
|
+
if: inputs.script == 'add_branching_ratios'
|
|
105
|
+
run: |
|
|
106
|
+
download_chain -l endf -r b8.0
|
|
107
|
+
add_branching_ratios -i chain-endf-b8.0.xml -o chain_endf_b8.0_sfr.xml -b sfr
|
|
108
|
+
add_branching_ratios -i chain-endf-b8.0.xml -o chain_endf_b8.0_pwr.xml -b pwr
|
|
109
|
+
|
|
110
|
+
- name: test default reduce_chain
|
|
111
|
+
if: inputs.script == 'reduce_chain'
|
|
112
|
+
run: |
|
|
113
|
+
download_chain -l endf -r b8.0
|
|
114
|
+
reduce_chain -i chain-endf-b8.0.xml -o chain_endf_b8.0_sfr.xml -hl 1e15
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
|
|
2
|
+
name: test_urls
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
pull_request:
|
|
6
|
+
branches:
|
|
7
|
+
- main
|
|
8
|
+
paths-ignore:
|
|
9
|
+
- "**.md"
|
|
10
|
+
- "**.txt"
|
|
11
|
+
- "**.cff"
|
|
12
|
+
- 'docs/**'
|
|
13
|
+
- '.gitignore'
|
|
14
|
+
push:
|
|
15
|
+
branches:
|
|
16
|
+
- main
|
|
17
|
+
schedule:
|
|
18
|
+
- cron: "0 0 * * *"
|
|
19
|
+
# cron job runs every day
|
|
20
|
+
|
|
21
|
+
jobs:
|
|
22
|
+
ping_urls:
|
|
23
|
+
runs-on: ubuntu-latest
|
|
24
|
+
steps:
|
|
25
|
+
- uses: actions/checkout@v5
|
|
26
|
+
|
|
27
|
+
- name: Set up Python
|
|
28
|
+
uses: actions/setup-python@v6
|
|
29
|
+
with:
|
|
30
|
+
python-version: 3.12
|
|
31
|
+
|
|
32
|
+
- name: Install testing dependencies
|
|
33
|
+
run: python -m pip install '.[tests]'
|
|
34
|
+
|
|
35
|
+
- name: Test URL registry and HTTP helpers offline
|
|
36
|
+
run: python -m pytest -q -rs tests/test_urls.py -m 'not network and not integration'
|
|
37
|
+
|
|
38
|
+
live_urls:
|
|
39
|
+
if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'
|
|
40
|
+
runs-on: ubuntu-latest
|
|
41
|
+
timeout-minutes: 180
|
|
42
|
+
steps:
|
|
43
|
+
- uses: actions/checkout@v5
|
|
44
|
+
|
|
45
|
+
- name: Set up Python
|
|
46
|
+
uses: actions/setup-python@v6
|
|
47
|
+
with:
|
|
48
|
+
python-version: 3.12
|
|
49
|
+
|
|
50
|
+
- name: Install testing dependencies
|
|
51
|
+
run: python -m pip install '.[tests]'
|
|
52
|
+
|
|
53
|
+
# External failures remain failures; this health check is not a PR gate.
|
|
54
|
+
- name: Test live URLs with explicit skip reasons
|
|
55
|
+
run: python -m pytest -v -rs tests/test_urls.py -m network
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openmc_data
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.6.0
|
|
4
4
|
Summary: A Python package containing a collection of scripts for producing and downloading data for OpenMC
|
|
5
5
|
Author-email: Jonathan Shimwell <mail@jshimwell.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -40,6 +40,34 @@ The package is distributed on [PYPI](https://pypi.org/project/openmc-data/) and
|
|
|
40
40
|
pip install openmc_data
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
+
# Testing
|
|
44
|
+
|
|
45
|
+
Install the test dependencies with `python -m pip install '.[tests]'`, then run
|
|
46
|
+
the offline suite with `python -m pytest -q -rs tests -m 'not network and not integration'`.
|
|
47
|
+
Tests stay in the flat [tests](tests) directory: [test_utils.py](tests/test_utils.py)
|
|
48
|
+
covers shared utilities, [test_urls.py](tests/test_urls.py) covers registry
|
|
49
|
+
validation, HTTP helper regressions and marked live URL checks, and script-specific
|
|
50
|
+
tests belong in files named test_<script>.py alongside them. Use pytest's
|
|
51
|
+
`tmp_path` for generated test artifacts rather than writing into the repository.
|
|
52
|
+
|
|
53
|
+
The `network` marker identifies live external URL checks; `integration` identifies
|
|
54
|
+
data download and processing tests. Pull requests and pushes run offline tests
|
|
55
|
+
and CLI help checks in [test_package.yml](.github/workflows/test_package.yml), and
|
|
56
|
+
offline URL syntax and repository-file checks in
|
|
57
|
+
[test_urls.yml](.github/workflows/test_urls.yml), without compiling OpenMC for the
|
|
58
|
+
URL jobs. Live URL checks run nightly or manually in a separate job of that same
|
|
59
|
+
workflow. Full, multi-GB processing runs only through the required script choice
|
|
60
|
+
in the manual [test_processing.yml](.github/workflows/test_processing.yml) workflow.
|
|
61
|
+
|
|
62
|
+
Exactly one URL is explicitly **not tested over HTTP** because of its Cloudflare
|
|
63
|
+
challenge:
|
|
64
|
+
<https://nds.iaea.org/fendl/data/neutron/fendl-FENDL-3.2c-neutron-endf.zip>.
|
|
65
|
+
Its syntax is still checked offline. Other HTTP errors, including IAEA and
|
|
66
|
+
Cloudflare 403 responses, remain failures, not skips or expected failures.
|
|
67
|
+
Nightly/manual external health checks may remain red until blocked IAEA and
|
|
68
|
+
obsolete OECD URLs are restored; passing offline checks does not establish that
|
|
69
|
+
downloads are available.
|
|
70
|
+
|
|
43
71
|
# Usage
|
|
44
72
|
|
|
45
73
|
Once installed several scripts are available in your terminal that are able to
|
|
@@ -81,10 +109,36 @@ A few categories of scripts are available:
|
|
|
81
109
|
|convert_endf | ENDF/B | VII.1 | NNDC |
|
|
82
110
|
|convert_lib80x | ENDF/B | VIII.0 | LANL |
|
|
83
111
|
|convert_fendl | FENDL | 3.2c<br>3.2b<br>3.2a<br>3.2<br>3.1d<br>3.1a<br>3.1<br>3.0<br>2.1 |
|
|
84
|
-
|
|
|
85
|
-
|convert_jeff33 | JEFF | 3.3 |
|
|
112
|
+
|convert_jeff | JEFF | 3.2<br>3.3<br>4.0 (default) | OECD/NEA |
|
|
86
113
|
|convert_tendl | TENDL | 2015<br>2017<br>2019<br>2021 |
|
|
87
114
|
|
|
115
|
+
#### JEFF ACE conversion
|
|
116
|
+
|
|
117
|
+
`convert_jeff -r 3.3 -t 600 900 --destination jeff-hot` converts neutron and
|
|
118
|
+
thermal ACE data without NJOY or a 293 K base. Defaults: release 4.0, all neutron
|
|
119
|
+
temperatures, `--libver latest`. Available neutron archive temperatures:
|
|
120
|
+
|
|
121
|
+
| Release | Neutron archive temperatures (K) |
|
|
122
|
+
| --- | --- |
|
|
123
|
+
| 3.2 | 293, 300, 400, 500, 600, 700, 800, 900, 1000, 1200, 1500, 1800 |
|
|
124
|
+
| 3.3 | 293, 600, 900, 1200, 1500, 1800 |
|
|
125
|
+
| 4.0 | 0.1, 293, 300, 600, 900, 1200, 1500, 1800 |
|
|
126
|
+
|
|
127
|
+
Select the 4.0 archive containing 293.6 K data with `-t 293`. **All native thermal
|
|
128
|
+
temperatures** are retained, including the 1 K UO2 pairs. **JEFF-4.0 supplies only
|
|
129
|
+
the public 12-case/316-table thermal subset**, not the full TSL library.
|
|
130
|
+
Unknown thermal aliases retain their identity with a `c_` prefix and warning.
|
|
131
|
+
|
|
132
|
+
Output HDF5/XML goes directly into `--destination` (default `jeff-<release>-hdf5`),
|
|
133
|
+
staged until conversion succeeds; existing files and name/temperature collisions fail.
|
|
134
|
+
Downloads require multiple GB. `--no-download --no-extract` reuses working-directory
|
|
135
|
+
caches `jeff-<release>-download` and `jeff-<release>-ace`; `--cleanup` removes both
|
|
136
|
+
only after success. Metastable corrections never edit cached ACE files.
|
|
137
|
+
Every discovered nuclide must have every selected neutron temperature; 3.3 also
|
|
138
|
+
requires its 20 thermal groups. Caches cannot reveal nuclides absent at all temperatures.
|
|
139
|
+
|
|
140
|
+
See `convert_jeff --help` for all options.
|
|
141
|
+
|
|
88
142
|
### Generate cross sections
|
|
89
143
|
|
|
90
144
|
| Script name | Library | Release | Processed by |
|
|
@@ -93,15 +147,17 @@ A few categories of scripts are available:
|
|
|
93
147
|
| generate_endf | ENDF/B | VII.1<br>VIII.0<br>VIII.1 | NNDC |
|
|
94
148
|
| generate_fendl | FENDL | 3.2c<br>3.2b<br>3.2a<br>3.2<br>3.1d<br>3.1a<br>3.0 | |
|
|
95
149
|
| generate_jendl | JENDL | 4.0<br>5.0 | |
|
|
150
|
+
| generate_jeff | JEFF | 3.3<br>4.0 | NJOY |
|
|
96
151
|
| generate_tendl | TENDL | 2023<br>2025 | |
|
|
97
152
|
|
|
98
153
|
|
|
99
154
|
### Download cross sections
|
|
100
155
|
|
|
101
|
-
| Script name | Library | Release | Processed by |
|
|
102
|
-
|
|
103
|
-
| download_endf | ENDF/B | VII.1<br>VIII.0<br>VIII.1 | NNDC |
|
|
104
|
-
|
|
|
156
|
+
| Script name | Library | Release | Processed by | Neutron temperatures (K) |
|
|
157
|
+
|-|-|-|-|-|
|
|
158
|
+
| download_endf | ENDF/B | VII.1<br>VIII.0<br>VIII.1 | NNDC | 250, 293.6, 600, 900, 1200, 2500 |
|
|
159
|
+
| download_jeff | JEFF | 3.3<br>4.0 | OpenMC development team | 250, 293.6, 600, 900, 1200, 2500 |
|
|
160
|
+
| download_tendl | TENDL | 2019<br>2021 | | 293.6 |
|
|
105
161
|
|
|
106
162
|
<!-- | Script name | Library | Release | Processed by | Download available | Downloads ACE files and convert to HDF5 | Downloads ENDF files and convert to HDF5 | Convert local ACE files |
|
|
107
163
|
|-|-|-|-|-|-|-|-|
|
|
@@ -114,8 +170,6 @@ A few categories of scripts are available:
|
|
|
114
170
|
|generate_endf| ENDF/B | VIII.0 | NNDC | [openmc.org](https://anl.box.com/shared/static/uhbxlrx7hvxqw27psymfbhi7bx7s6u6a.xz) | | :heavy_check_mark: | |
|
|
115
171
|
|convert_fendl| FENDL | 2.1<br>3.0<br>3.1a<br>3.1d<br>3.2 | | [openmc.org 3.2](https://anl.box.com/shared/static/3cb7jetw7tmxaw6nvn77x6c578jnm2ey.xz) | :heavy_check_mark: | | |
|
|
116
172
|
|generate_jendl| JENDL | 4.0 | | | | :heavy_check_mark: | |
|
|
117
|
-
|convert_jeff32| JEFF | 3.2 | | [openmc.org](https://anl.box.com/shared/static/pb94oxriiipezysu7w4r2qdoufc2epxv.xz) | :heavy_check_mark: | | |
|
|
118
|
-
|convert_jeff33| JEFF | 3.3 | | [openmc.org](https://anl.box.com/shared/static/ddetxzp0gv1buk1ev67b8ynik7f268hw.xz) | :heavy_check_mark: | | |
|
|
119
173
|
|convert_tendl| TENDL | 2015<br>2017<br>2019<br>2021| | | :heavy_check_mark: | | | -->
|
|
120
174
|
|
|
121
175
|
## Produce Depletion Chain files
|
|
@@ -20,6 +20,34 @@ The package is distributed on [PYPI](https://pypi.org/project/openmc-data/) and
|
|
|
20
20
|
pip install openmc_data
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
+
# Testing
|
|
24
|
+
|
|
25
|
+
Install the test dependencies with `python -m pip install '.[tests]'`, then run
|
|
26
|
+
the offline suite with `python -m pytest -q -rs tests -m 'not network and not integration'`.
|
|
27
|
+
Tests stay in the flat [tests](tests) directory: [test_utils.py](tests/test_utils.py)
|
|
28
|
+
covers shared utilities, [test_urls.py](tests/test_urls.py) covers registry
|
|
29
|
+
validation, HTTP helper regressions and marked live URL checks, and script-specific
|
|
30
|
+
tests belong in files named test_<script>.py alongside them. Use pytest's
|
|
31
|
+
`tmp_path` for generated test artifacts rather than writing into the repository.
|
|
32
|
+
|
|
33
|
+
The `network` marker identifies live external URL checks; `integration` identifies
|
|
34
|
+
data download and processing tests. Pull requests and pushes run offline tests
|
|
35
|
+
and CLI help checks in [test_package.yml](.github/workflows/test_package.yml), and
|
|
36
|
+
offline URL syntax and repository-file checks in
|
|
37
|
+
[test_urls.yml](.github/workflows/test_urls.yml), without compiling OpenMC for the
|
|
38
|
+
URL jobs. Live URL checks run nightly or manually in a separate job of that same
|
|
39
|
+
workflow. Full, multi-GB processing runs only through the required script choice
|
|
40
|
+
in the manual [test_processing.yml](.github/workflows/test_processing.yml) workflow.
|
|
41
|
+
|
|
42
|
+
Exactly one URL is explicitly **not tested over HTTP** because of its Cloudflare
|
|
43
|
+
challenge:
|
|
44
|
+
<https://nds.iaea.org/fendl/data/neutron/fendl-FENDL-3.2c-neutron-endf.zip>.
|
|
45
|
+
Its syntax is still checked offline. Other HTTP errors, including IAEA and
|
|
46
|
+
Cloudflare 403 responses, remain failures, not skips or expected failures.
|
|
47
|
+
Nightly/manual external health checks may remain red until blocked IAEA and
|
|
48
|
+
obsolete OECD URLs are restored; passing offline checks does not establish that
|
|
49
|
+
downloads are available.
|
|
50
|
+
|
|
23
51
|
# Usage
|
|
24
52
|
|
|
25
53
|
Once installed several scripts are available in your terminal that are able to
|
|
@@ -61,10 +89,36 @@ A few categories of scripts are available:
|
|
|
61
89
|
|convert_endf | ENDF/B | VII.1 | NNDC |
|
|
62
90
|
|convert_lib80x | ENDF/B | VIII.0 | LANL |
|
|
63
91
|
|convert_fendl | FENDL | 3.2c<br>3.2b<br>3.2a<br>3.2<br>3.1d<br>3.1a<br>3.1<br>3.0<br>2.1 |
|
|
64
|
-
|
|
|
65
|
-
|convert_jeff33 | JEFF | 3.3 |
|
|
92
|
+
|convert_jeff | JEFF | 3.2<br>3.3<br>4.0 (default) | OECD/NEA |
|
|
66
93
|
|convert_tendl | TENDL | 2015<br>2017<br>2019<br>2021 |
|
|
67
94
|
|
|
95
|
+
#### JEFF ACE conversion
|
|
96
|
+
|
|
97
|
+
`convert_jeff -r 3.3 -t 600 900 --destination jeff-hot` converts neutron and
|
|
98
|
+
thermal ACE data without NJOY or a 293 K base. Defaults: release 4.0, all neutron
|
|
99
|
+
temperatures, `--libver latest`. Available neutron archive temperatures:
|
|
100
|
+
|
|
101
|
+
| Release | Neutron archive temperatures (K) |
|
|
102
|
+
| --- | --- |
|
|
103
|
+
| 3.2 | 293, 300, 400, 500, 600, 700, 800, 900, 1000, 1200, 1500, 1800 |
|
|
104
|
+
| 3.3 | 293, 600, 900, 1200, 1500, 1800 |
|
|
105
|
+
| 4.0 | 0.1, 293, 300, 600, 900, 1200, 1500, 1800 |
|
|
106
|
+
|
|
107
|
+
Select the 4.0 archive containing 293.6 K data with `-t 293`. **All native thermal
|
|
108
|
+
temperatures** are retained, including the 1 K UO2 pairs. **JEFF-4.0 supplies only
|
|
109
|
+
the public 12-case/316-table thermal subset**, not the full TSL library.
|
|
110
|
+
Unknown thermal aliases retain their identity with a `c_` prefix and warning.
|
|
111
|
+
|
|
112
|
+
Output HDF5/XML goes directly into `--destination` (default `jeff-<release>-hdf5`),
|
|
113
|
+
staged until conversion succeeds; existing files and name/temperature collisions fail.
|
|
114
|
+
Downloads require multiple GB. `--no-download --no-extract` reuses working-directory
|
|
115
|
+
caches `jeff-<release>-download` and `jeff-<release>-ace`; `--cleanup` removes both
|
|
116
|
+
only after success. Metastable corrections never edit cached ACE files.
|
|
117
|
+
Every discovered nuclide must have every selected neutron temperature; 3.3 also
|
|
118
|
+
requires its 20 thermal groups. Caches cannot reveal nuclides absent at all temperatures.
|
|
119
|
+
|
|
120
|
+
See `convert_jeff --help` for all options.
|
|
121
|
+
|
|
68
122
|
### Generate cross sections
|
|
69
123
|
|
|
70
124
|
| Script name | Library | Release | Processed by |
|
|
@@ -73,15 +127,17 @@ A few categories of scripts are available:
|
|
|
73
127
|
| generate_endf | ENDF/B | VII.1<br>VIII.0<br>VIII.1 | NNDC |
|
|
74
128
|
| generate_fendl | FENDL | 3.2c<br>3.2b<br>3.2a<br>3.2<br>3.1d<br>3.1a<br>3.0 | |
|
|
75
129
|
| generate_jendl | JENDL | 4.0<br>5.0 | |
|
|
130
|
+
| generate_jeff | JEFF | 3.3<br>4.0 | NJOY |
|
|
76
131
|
| generate_tendl | TENDL | 2023<br>2025 | |
|
|
77
132
|
|
|
78
133
|
|
|
79
134
|
### Download cross sections
|
|
80
135
|
|
|
81
|
-
| Script name | Library | Release | Processed by |
|
|
82
|
-
|
|
83
|
-
| download_endf | ENDF/B | VII.1<br>VIII.0<br>VIII.1 | NNDC |
|
|
84
|
-
|
|
|
136
|
+
| Script name | Library | Release | Processed by | Neutron temperatures (K) |
|
|
137
|
+
|-|-|-|-|-|
|
|
138
|
+
| download_endf | ENDF/B | VII.1<br>VIII.0<br>VIII.1 | NNDC | 250, 293.6, 600, 900, 1200, 2500 |
|
|
139
|
+
| download_jeff | JEFF | 3.3<br>4.0 | OpenMC development team | 250, 293.6, 600, 900, 1200, 2500 |
|
|
140
|
+
| download_tendl | TENDL | 2019<br>2021 | | 293.6 |
|
|
85
141
|
|
|
86
142
|
<!-- | Script name | Library | Release | Processed by | Download available | Downloads ACE files and convert to HDF5 | Downloads ENDF files and convert to HDF5 | Convert local ACE files |
|
|
87
143
|
|-|-|-|-|-|-|-|-|
|
|
@@ -94,8 +150,6 @@ A few categories of scripts are available:
|
|
|
94
150
|
|generate_endf| ENDF/B | VIII.0 | NNDC | [openmc.org](https://anl.box.com/shared/static/uhbxlrx7hvxqw27psymfbhi7bx7s6u6a.xz) | | :heavy_check_mark: | |
|
|
95
151
|
|convert_fendl| FENDL | 2.1<br>3.0<br>3.1a<br>3.1d<br>3.2 | | [openmc.org 3.2](https://anl.box.com/shared/static/3cb7jetw7tmxaw6nvn77x6c578jnm2ey.xz) | :heavy_check_mark: | | |
|
|
96
152
|
|generate_jendl| JENDL | 4.0 | | | | :heavy_check_mark: | |
|
|
97
|
-
|convert_jeff32| JEFF | 3.2 | | [openmc.org](https://anl.box.com/shared/static/pb94oxriiipezysu7w4r2qdoufc2epxv.xz) | :heavy_check_mark: | | |
|
|
98
|
-
|convert_jeff33| JEFF | 3.3 | | [openmc.org](https://anl.box.com/shared/static/ddetxzp0gv1buk1ev67b8ynik7f268hw.xz) | :heavy_check_mark: | | |
|
|
99
153
|
|convert_tendl| TENDL | 2015<br>2017<br>2019<br>2021| | | :heavy_check_mark: | | | -->
|
|
100
154
|
|
|
101
155
|
## Produce Depletion Chain files
|
|
@@ -37,6 +37,13 @@ tests = [
|
|
|
37
37
|
"requests"
|
|
38
38
|
]
|
|
39
39
|
|
|
40
|
+
[tool.pytest.ini_options]
|
|
41
|
+
testpaths = ["tests"]
|
|
42
|
+
markers = [
|
|
43
|
+
"network: live external URL checks (scheduled or manual, not a pull request gate)",
|
|
44
|
+
"integration: data download and processing tests (manual only)",
|
|
45
|
+
]
|
|
46
|
+
|
|
40
47
|
[project.urls]
|
|
41
48
|
"Homepage" = "https://github.com/fusion-energy/openmc_data"
|
|
42
49
|
"Bug Tracker" = "https://github.com/fusion-energy/openmc_data/issues"
|
|
@@ -54,8 +61,7 @@ include-package-data = false
|
|
|
54
61
|
|
|
55
62
|
[project.scripts]
|
|
56
63
|
convert_fendl = "openmc_data.convert.convert_fendl:main"
|
|
57
|
-
|
|
58
|
-
convert_jeff33 = "openmc_data.convert.convert_jeff33:main"
|
|
64
|
+
convert_jeff = "openmc_data.convert.convert_jeff:main"
|
|
59
65
|
convert_lib80x = "openmc_data.convert.convert_lib80x:main"
|
|
60
66
|
convert_mcnp70 = "openmc_data.convert.convert_mcnp70:main"
|
|
61
67
|
convert_mcnp71 = "openmc_data.convert.convert_mcnp71:main"
|
|
@@ -64,7 +70,7 @@ convert_tendl = "openmc_data.convert.convert_tendl:main"
|
|
|
64
70
|
|
|
65
71
|
generate_cendl = "openmc_data.generate.generate_cendl:main"
|
|
66
72
|
generate_endf = "openmc_data.generate.generate_endf:main"
|
|
67
|
-
|
|
73
|
+
generate_jeff = "openmc_data.generate.generate_jeff:main"
|
|
68
74
|
generate_jendl = "openmc_data.generate.generate_jendl:main"
|
|
69
75
|
generate_fendl = "openmc_data.generate.generate_fendl:main"
|
|
70
76
|
generate_tendl = "openmc_data.generate.generate_tendl:main"
|
|
@@ -87,5 +93,6 @@ sample_sandy = "openmc_data.other.sample_sandy:main"
|
|
|
87
93
|
reduce_chain = "openmc_data.depletion.reduce_chain:main"
|
|
88
94
|
|
|
89
95
|
download_endf = "openmc_data.download.download_endf:main"
|
|
96
|
+
download_jeff = "openmc_data.download.download_jeff:main"
|
|
90
97
|
download_tendl = "openmc_data.download.download_tendl:main"
|
|
91
98
|
download_chain = "openmc_data.download.download_chain:main"
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '2.
|
|
22
|
-
__version_tuple__ = version_tuple = (2,
|
|
21
|
+
__version__ = version = '2.6.0'
|
|
22
|
+
__version_tuple__ = version_tuple = (2, 6, 0)
|
|
23
23
|
|
|
24
|
-
__commit_id__ = commit_id = '
|
|
24
|
+
__commit_id__ = commit_id = 'g06d8c2c1f'
|