mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-29 06:35:48 -04:00
Refactor use of ACE tables to generate neutron/thermal scattering data
This commit is contained in:
parent
9230203efb
commit
e19291118e
36 changed files with 2467 additions and 10238 deletions
|
|
@ -1,96 +0,0 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
import glob
|
||||
import os
|
||||
from xml.dom.minidom import getDOMImplementation
|
||||
|
||||
import openmc.data.ace
|
||||
|
||||
|
||||
if not os.path.isdir('nndc_hdf5'):
|
||||
os.mkdir('nndc_hdf5')
|
||||
|
||||
nndc_files = glob.glob('nndc/293.6K/*.ace')
|
||||
nndc_thermal_files = glob.glob('nndc/tsl/*.acer')
|
||||
|
||||
thermal_names = {'al': 'c_Al27',
|
||||
'be': 'c_Be',
|
||||
'bebeo': 'c_Be_in_BeO',
|
||||
'benzine': 'c_Benzine',
|
||||
'dd2o': 'c_D_in_D2O',
|
||||
'fe': 'c_Fe56',
|
||||
'graphite': 'c_Graphite',
|
||||
'hch2': 'c_H_in_CH2',
|
||||
'hh2o': 'c_H_in_H2O',
|
||||
'hzrh': 'c_H_in_ZrH',
|
||||
'lch4': 'c_liquid_CH4',
|
||||
'obeo': 'c_O_in_BeO',
|
||||
'orthod': 'c_ortho_D',
|
||||
'orthoh': 'c_ortho_H',
|
||||
'ouo2': 'c_O_in_UO2',
|
||||
'parad': 'c_para_D',
|
||||
'parah': 'c_para_H',
|
||||
'sch4': 'c_solid_CH4',
|
||||
'uuo2': 'c_U_in_UO2',
|
||||
'zrzrh': 'c_Zr_in_ZrH'}
|
||||
|
||||
impl = getDOMImplementation()
|
||||
doc = impl.createDocument(None, "cross_sections", None)
|
||||
doc_root = doc.documentElement
|
||||
|
||||
for f in sorted(nndc_files):
|
||||
print('Converting {}...'.format(f))
|
||||
|
||||
# Deterine output file name
|
||||
dirname, basename = os.path.split(f)
|
||||
root, ext = os.path.splitext(basename)
|
||||
outfile = os.path.join('nndc_hdf5', root + '.h5')
|
||||
if os.path.exists(outfile):
|
||||
os.remove(outfile)
|
||||
|
||||
# Determine elemental symbol, mass number and metastable state
|
||||
element, mass_number, temp = basename.split('_')
|
||||
metastable = int(mass_number[-1]) if 'm' in mass_number else 0
|
||||
mass_number = int(mass_number[:3])
|
||||
|
||||
# Parse ACE file, create HDF5 file
|
||||
t = openmc.data.ace.get_table(f)
|
||||
t.export_to_hdf5(outfile, element, mass_number, metastable)
|
||||
xs = t.name.split('.')[1]
|
||||
if metastable > 0:
|
||||
name = "{}{}_m{}.{}".format(element, mass_number, metastable, xs)
|
||||
else:
|
||||
name = "{}{}.{}".format(element, mass_number, xs)
|
||||
|
||||
# Add entry to XML listing
|
||||
libraryNode = doc.createElement("library")
|
||||
libraryNode.setAttribute("path", root + '.h5')
|
||||
libraryNode.setAttribute("materials", name)
|
||||
libraryNode.setAttribute("type", "neutron")
|
||||
doc_root.appendChild(libraryNode)
|
||||
|
||||
for f in sorted(nndc_thermal_files):
|
||||
print('Converting {}...'.format(f))
|
||||
|
||||
# Deterine output file name
|
||||
dirname, basename = os.path.split(f)
|
||||
root, ext = os.path.splitext(basename)
|
||||
outfile = os.path.join('nndc_hdf5', root + '.h5')
|
||||
if os.path.exists(outfile):
|
||||
os.remove(outfile)
|
||||
|
||||
# Parse ACE file, create HDF5 file
|
||||
t = openmc.data.ace.get_table(f)
|
||||
t.export_to_hdf5(outfile, thermal_names[root])
|
||||
xs = t.name.split('.')[1]
|
||||
|
||||
# Add entry to XML listing
|
||||
libraryNode = doc.createElement("library")
|
||||
libraryNode.setAttribute("path", root + '.h5')
|
||||
libraryNode.setAttribute("materials", thermal_names[root] + '.' + xs)
|
||||
libraryNode.setAttribute("type", "thermal")
|
||||
doc_root.appendChild(libraryNode)
|
||||
|
||||
# Write cross_sections.xml
|
||||
lines = doc.toprettyxml(indent=' ')
|
||||
open(os.path.join('nndc_hdf5', 'cross_sections.xml'), 'w').write(lines)
|
||||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -1,870 +0,0 @@
|
|||
<?xml version="1.0" ?>
|
||||
<cross_sections>
|
||||
<filetype>ascii</filetype>
|
||||
<ace_table alias="H-1.71c" awr="0.999167" location="1" name="1001.71c" path="293.6K/H_001_293.6K.ace" temperature="2.53e-08" zaid="1001"/>
|
||||
<ace_table alias="H-2.71c" awr="1.9968" location="1" name="1002.71c" path="293.6K/H_002_293.6K.ace" temperature="2.53e-08" zaid="1002"/>
|
||||
<ace_table alias="H-3.71c" awr="2.989596" location="1" name="1003.71c" path="293.6K/H_003_293.6K.ace" temperature="2.53e-08" zaid="1003"/>
|
||||
<ace_table alias="He-3.71c" awr="2.989032" location="1" name="2003.71c" path="293.6K/He_003_293.6K.ace" temperature="2.53e-08" zaid="2003"/>
|
||||
<ace_table alias="He-4.71c" awr="3.968219" location="1" name="2004.71c" path="293.6K/He_004_293.6K.ace" temperature="2.53e-08" zaid="2004"/>
|
||||
<ace_table alias="Li-6.71c" awr="5.9634" location="1" name="3006.71c" path="293.6K/Li_006_293.6K.ace" temperature="2.53e-08" zaid="3006"/>
|
||||
<ace_table alias="Li-7.71c" awr="6.955732" location="1" name="3007.71c" path="293.6K/Li_007_293.6K.ace" temperature="2.53e-08" zaid="3007"/>
|
||||
<ace_table alias="Be-7.71c" awr="6.9545" location="1" name="4007.71c" path="293.6K/Be_007_293.6K.ace" temperature="2.53e-08" zaid="4007"/>
|
||||
<ace_table alias="Be-9.71c" awr="8.93478" location="1" name="4009.71c" path="293.6K/Be_009_293.6K.ace" temperature="2.53e-08" zaid="4009"/>
|
||||
<ace_table alias="B-10.71c" awr="9.926921" location="1" name="5010.71c" path="293.6K/B_010_293.6K.ace" temperature="2.53e-08" zaid="5010"/>
|
||||
<ace_table alias="B-11.71c" awr="10.9147" location="1" name="5011.71c" path="293.6K/B_011_293.6K.ace" temperature="2.53e-08" zaid="5011"/>
|
||||
<ace_table alias="C-Nat.71c" awr="11.898" location="1" name="6000.71c" path="293.6K/C_000_293.6K.ace" temperature="2.53e-08" zaid="6000"/>
|
||||
<ace_table alias="N-14.71c" awr="13.88278" location="1" name="7014.71c" path="293.6K/N_014_293.6K.ace" temperature="2.53e-08" zaid="7014"/>
|
||||
<ace_table alias="N-15.71c" awr="14.871" location="1" name="7015.71c" path="293.6K/N_015_293.6K.ace" temperature="2.53e-08" zaid="7015"/>
|
||||
<ace_table alias="O-16.71c" awr="15.85751" location="1" name="8016.71c" path="293.6K/O_016_293.6K.ace" temperature="2.53e-08" zaid="8016"/>
|
||||
<ace_table alias="O-17.71c" awr="16.8531" location="1" name="8017.71c" path="293.6K/O_017_293.6K.ace" temperature="2.53e-08" zaid="8017"/>
|
||||
<ace_table alias="F-19.71c" awr="18.835" location="1" name="9019.71c" path="293.6K/F_019_293.6K.ace" temperature="2.53e-08" zaid="9019"/>
|
||||
<ace_table alias="Na-22.71c" awr="21.8055" location="1" name="11022.71c" path="293.6K/Na_022_293.6K.ace" temperature="2.53e-08" zaid="11022"/>
|
||||
<ace_table alias="Na-23.71c" awr="22.792" location="1" name="11023.71c" path="293.6K/Na_023_293.6K.ace" temperature="2.53e-08" zaid="11023"/>
|
||||
<ace_table alias="Mg-24.71c" awr="23.779" location="1" name="12024.71c" path="293.6K/Mg_024_293.6K.ace" temperature="2.53e-08" zaid="12024"/>
|
||||
<ace_table alias="Mg-25.71c" awr="24.7712" location="1" name="12025.71c" path="293.6K/Mg_025_293.6K.ace" temperature="2.53e-08" zaid="12025"/>
|
||||
<ace_table alias="Mg-26.71c" awr="25.7594" location="1" name="12026.71c" path="293.6K/Mg_026_293.6K.ace" temperature="2.53e-08" zaid="12026"/>
|
||||
<ace_table alias="Al-27.71c" awr="26.74975" location="1" name="13027.71c" path="293.6K/Al_027_293.6K.ace" temperature="2.53e-08" zaid="13027"/>
|
||||
<ace_table alias="Si-28.71c" awr="27.737" location="1" name="14028.71c" path="293.6K/Si_028_293.6K.ace" temperature="2.53e-08" zaid="14028"/>
|
||||
<ace_table alias="Si-29.71c" awr="28.728" location="1" name="14029.71c" path="293.6K/Si_029_293.6K.ace" temperature="2.53e-08" zaid="14029"/>
|
||||
<ace_table alias="Si-30.71c" awr="29.716" location="1" name="14030.71c" path="293.6K/Si_030_293.6K.ace" temperature="2.53e-08" zaid="14030"/>
|
||||
<ace_table alias="P-31.71c" awr="30.708" location="1" name="15031.71c" path="293.6K/P_031_293.6K.ace" temperature="2.53e-08" zaid="15031"/>
|
||||
<ace_table alias="S-32.71c" awr="31.6973" location="1" name="16032.71c" path="293.6K/S_032_293.6K.ace" temperature="2.53e-08" zaid="16032"/>
|
||||
<ace_table alias="S-33.71c" awr="32.6878" location="1" name="16033.71c" path="293.6K/S_033_293.6K.ace" temperature="2.53e-08" zaid="16033"/>
|
||||
<ace_table alias="S-34.71c" awr="33.6762" location="1" name="16034.71c" path="293.6K/S_034_293.6K.ace" temperature="2.53e-08" zaid="16034"/>
|
||||
<ace_table alias="S-36.71c" awr="35.658" location="1" name="16036.71c" path="293.6K/S_036_293.6K.ace" temperature="2.53e-08" zaid="16036"/>
|
||||
<ace_table alias="Cl-35.71c" awr="34.66845" location="1" name="17035.71c" path="293.6K/Cl_035_293.6K.ace" temperature="2.53e-08" zaid="17035"/>
|
||||
<ace_table alias="Cl-37.71c" awr="36.6483" location="1" name="17037.71c" path="293.6K/Cl_037_293.6K.ace" temperature="2.53e-08" zaid="17037"/>
|
||||
<ace_table alias="Ar-36.71c" awr="35.6585" location="1" name="18036.71c" path="293.6K/Ar_036_293.6K.ace" temperature="2.53e-08" zaid="18036"/>
|
||||
<ace_table alias="Ar-38.71c" awr="37.6366" location="1" name="18038.71c" path="293.6K/Ar_038_293.6K.ace" temperature="2.53e-08" zaid="18038"/>
|
||||
<ace_table alias="Ar-40.71c" awr="39.6191" location="1" name="18040.71c" path="293.6K/Ar_040_293.6K.ace" temperature="2.53e-08" zaid="18040"/>
|
||||
<ace_table alias="K-39.71c" awr="38.6293" location="1" name="19039.71c" path="293.6K/K_039_293.6K.ace" temperature="2.53e-08" zaid="19039"/>
|
||||
<ace_table alias="K-40.71c" awr="39.6207" location="1" name="19040.71c" path="293.6K/K_040_293.6K.ace" temperature="2.53e-08" zaid="19040"/>
|
||||
<ace_table alias="K-41.71c" awr="40.6101" location="1" name="19041.71c" path="293.6K/K_041_293.6K.ace" temperature="2.53e-08" zaid="19041"/>
|
||||
<ace_table alias="Ca-40.71c" awr="39.6193" location="1" name="20040.71c" path="293.6K/Ca_040_293.6K.ace" temperature="2.53e-08" zaid="20040"/>
|
||||
<ace_table alias="Ca-42.71c" awr="41.59818" location="1" name="20042.71c" path="293.6K/Ca_042_293.6K.ace" temperature="2.53e-08" zaid="20042"/>
|
||||
<ace_table alias="Ca-43.71c" awr="42.58973" location="1" name="20043.71c" path="293.6K/Ca_043_293.6K.ace" temperature="2.53e-08" zaid="20043"/>
|
||||
<ace_table alias="Ca-44.71c" awr="43.57788" location="1" name="20044.71c" path="293.6K/Ca_044_293.6K.ace" temperature="2.53e-08" zaid="20044"/>
|
||||
<ace_table alias="Ca-46.71c" awr="45.55893" location="1" name="20046.71c" path="293.6K/Ca_046_293.6K.ace" temperature="2.53e-08" zaid="20046"/>
|
||||
<ace_table alias="Ca-48.71c" awr="47.5406" location="1" name="20048.71c" path="293.6K/Ca_048_293.6K.ace" temperature="2.53e-08" zaid="20048"/>
|
||||
<ace_table alias="Sc-45.71c" awr="44.5679" location="1" name="21045.71c" path="293.6K/Sc_045_293.6K.ace" temperature="2.53e-08" zaid="21045"/>
|
||||
<ace_table alias="Ti-46.71c" awr="45.5579" location="1" name="22046.71c" path="293.6K/Ti_046_293.6K.ace" temperature="2.53e-08" zaid="22046"/>
|
||||
<ace_table alias="Ti-47.71c" awr="46.5484" location="1" name="22047.71c" path="293.6K/Ti_047_293.6K.ace" temperature="2.53e-08" zaid="22047"/>
|
||||
<ace_table alias="Ti-48.71c" awr="47.5361" location="1" name="22048.71c" path="293.6K/Ti_048_293.6K.ace" temperature="2.53e-08" zaid="22048"/>
|
||||
<ace_table alias="Ti-49.71c" awr="48.5274" location="1" name="22049.71c" path="293.6K/Ti_049_293.6K.ace" temperature="2.53e-08" zaid="22049"/>
|
||||
<ace_table alias="Ti-50.71c" awr="49.5157" location="1" name="22050.71c" path="293.6K/Ti_050_293.6K.ace" temperature="2.53e-08" zaid="22050"/>
|
||||
<ace_table alias="V-50.71c" awr="49.5181" location="1" name="23050.71c" path="293.6K/V_050_293.6K.ace" temperature="2.53e-08" zaid="23050"/>
|
||||
<ace_table alias="V-51.71c" awr="50.5063" location="1" name="23051.71c" path="293.6K/V_051_293.6K.ace" temperature="2.53e-08" zaid="23051"/>
|
||||
<ace_table alias="Cr-50.71c" awr="49.517" location="1" name="24050.71c" path="293.6K/Cr_050_293.6K.ace" temperature="2.53e-08" zaid="24050"/>
|
||||
<ace_table alias="Cr-52.71c" awr="51.494" location="1" name="24052.71c" path="293.6K/Cr_052_293.6K.ace" temperature="2.53e-08" zaid="24052"/>
|
||||
<ace_table alias="Cr-53.71c" awr="52.486" location="1" name="24053.71c" path="293.6K/Cr_053_293.6K.ace" temperature="2.53e-08" zaid="24053"/>
|
||||
<ace_table alias="Cr-54.71c" awr="53.476" location="1" name="24054.71c" path="293.6K/Cr_054_293.6K.ace" temperature="2.53e-08" zaid="24054"/>
|
||||
<ace_table alias="Mn-55.71c" awr="54.4661" location="1" name="25055.71c" path="293.6K/Mn_055_293.6K.ace" temperature="2.53e-08" zaid="25055"/>
|
||||
<ace_table alias="Fe-54.71c" awr="53.476" location="1" name="26054.71c" path="293.6K/Fe_054_293.6K.ace" temperature="2.53e-08" zaid="26054"/>
|
||||
<ace_table alias="Fe-56.71c" awr="55.454" location="1" name="26056.71c" path="293.6K/Fe_056_293.6K.ace" temperature="2.53e-08" zaid="26056"/>
|
||||
<ace_table alias="Fe-57.71c" awr="56.446" location="1" name="26057.71c" path="293.6K/Fe_057_293.6K.ace" temperature="2.53e-08" zaid="26057"/>
|
||||
<ace_table alias="Fe-58.71c" awr="57.436" location="1" name="26058.71c" path="293.6K/Fe_058_293.6K.ace" temperature="2.53e-08" zaid="26058"/>
|
||||
<ace_table alias="Co-58.71c" awr="57.4381" location="1" name="27058.71c" path="293.6K/Co_058_293.6K.ace" temperature="2.53e-08" zaid="27058"/>
|
||||
<ace_table alias="Co-58m.71c" awr="57.4381" location="1" metastable="1" name="27458.71c" path="293.6K/Co_058m1_293.6K.ace" temperature="2.53e-08" zaid="27458"/>
|
||||
<ace_table alias="Co-59.71c" awr="58.4269" location="1" name="27059.71c" path="293.6K/Co_059_293.6K.ace" temperature="2.53e-08" zaid="27059"/>
|
||||
<ace_table alias="Ni-58.71c" awr="57.438" location="1" name="28058.71c" path="293.6K/Ni_058_293.6K.ace" temperature="2.53e-08" zaid="28058"/>
|
||||
<ace_table alias="Ni-59.71c" awr="58.4281" location="1" name="28059.71c" path="293.6K/Ni_059_293.6K.ace" temperature="2.53e-08" zaid="28059"/>
|
||||
<ace_table alias="Ni-60.71c" awr="59.416" location="1" name="28060.71c" path="293.6K/Ni_060_293.6K.ace" temperature="2.53e-08" zaid="28060"/>
|
||||
<ace_table alias="Ni-61.71c" awr="60.408" location="1" name="28061.71c" path="293.6K/Ni_061_293.6K.ace" temperature="2.53e-08" zaid="28061"/>
|
||||
<ace_table alias="Ni-62.71c" awr="61.396" location="1" name="28062.71c" path="293.6K/Ni_062_293.6K.ace" temperature="2.53e-08" zaid="28062"/>
|
||||
<ace_table alias="Ni-64.71c" awr="63.379" location="1" name="28064.71c" path="293.6K/Ni_064_293.6K.ace" temperature="2.53e-08" zaid="28064"/>
|
||||
<ace_table alias="Cu-63.71c" awr="62.389" location="1" name="29063.71c" path="293.6K/Cu_063_293.6K.ace" temperature="2.53e-08" zaid="29063"/>
|
||||
<ace_table alias="Cu-65.71c" awr="64.37" location="1" name="29065.71c" path="293.6K/Cu_065_293.6K.ace" temperature="2.53e-08" zaid="29065"/>
|
||||
<ace_table alias="Zn-64.71c" awr="63.38" location="1" name="30064.71c" path="293.6K/Zn_064_293.6K.ace" temperature="2.53e-08" zaid="30064"/>
|
||||
<ace_table alias="Zn-65.71c" awr="64.3715" location="1" name="30065.71c" path="293.6K/Zn_065_293.6K.ace" temperature="2.53e-08" zaid="30065"/>
|
||||
<ace_table alias="Zn-66.71c" awr="65.3597" location="1" name="30066.71c" path="293.6K/Zn_066_293.6K.ace" temperature="2.53e-08" zaid="30066"/>
|
||||
<ace_table alias="Zn-67.71c" awr="66.3522" location="1" name="30067.71c" path="293.6K/Zn_067_293.6K.ace" temperature="2.53e-08" zaid="30067"/>
|
||||
<ace_table alias="Zn-68.71c" awr="67.3413" location="1" name="30068.71c" path="293.6K/Zn_068_293.6K.ace" temperature="2.53e-08" zaid="30068"/>
|
||||
<ace_table alias="Zn-70.71c" awr="69.3246" location="1" name="30070.71c" path="293.6K/Zn_070_293.6K.ace" temperature="2.53e-08" zaid="30070"/>
|
||||
<ace_table alias="Ga-69.71c" awr="68.3336" location="1" name="31069.71c" path="293.6K/Ga_069_293.6K.ace" temperature="2.53e-08" zaid="31069"/>
|
||||
<ace_table alias="Ga-71.71c" awr="70.315" location="1" name="31071.71c" path="293.6K/Ga_071_293.6K.ace" temperature="2.53e-08" zaid="31071"/>
|
||||
<ace_table alias="Ge-70.71c" awr="69.3236" location="1" name="32070.71c" path="293.6K/Ge_070_293.6K.ace" temperature="2.53e-08" zaid="32070"/>
|
||||
<ace_table alias="Ge-72.71c" awr="71.3042" location="1" name="32072.71c" path="293.6K/Ge_072_293.6K.ace" temperature="2.53e-08" zaid="32072"/>
|
||||
<ace_table alias="Ge-73.71c" awr="72.297" location="1" name="32073.71c" path="293.6K/Ge_073_293.6K.ace" temperature="2.53e-08" zaid="32073"/>
|
||||
<ace_table alias="Ge-74.71c" awr="73.2862" location="1" name="32074.71c" path="293.6K/Ge_074_293.6K.ace" temperature="2.53e-08" zaid="32074"/>
|
||||
<ace_table alias="Ge-76.71c" awr="75.2692" location="1" name="32076.71c" path="293.6K/Ge_076_293.6K.ace" temperature="2.53e-08" zaid="32076"/>
|
||||
<ace_table alias="As-74.71c" awr="73.2889" location="1" name="33074.71c" path="293.6K/As_074_293.6K.ace" temperature="2.53e-08" zaid="33074"/>
|
||||
<ace_table alias="As-75.71c" awr="74.278" location="1" name="33075.71c" path="293.6K/As_075_293.6K.ace" temperature="2.53e-08" zaid="33075"/>
|
||||
<ace_table alias="Se-74.71c" awr="73.2875" location="1" name="34074.71c" path="293.6K/Se_074_293.6K.ace" temperature="2.53e-08" zaid="34074"/>
|
||||
<ace_table alias="Se-76.71c" awr="75.267" location="1" name="34076.71c" path="293.6K/Se_076_293.6K.ace" temperature="2.53e-08" zaid="34076"/>
|
||||
<ace_table alias="Se-77.71c" awr="76.2591" location="1" name="34077.71c" path="293.6K/Se_077_293.6K.ace" temperature="2.53e-08" zaid="34077"/>
|
||||
<ace_table alias="Se-78.71c" awr="77.2479" location="1" name="34078.71c" path="293.6K/Se_078_293.6K.ace" temperature="2.53e-08" zaid="34078"/>
|
||||
<ace_table alias="Se-79.71c" awr="78.2405" location="1" name="34079.71c" path="293.6K/Se_079_293.6K.ace" temperature="2.53e-08" zaid="34079"/>
|
||||
<ace_table alias="Se-80.71c" awr="79.23" location="1" name="34080.71c" path="293.6K/Se_080_293.6K.ace" temperature="2.53e-08" zaid="34080"/>
|
||||
<ace_table alias="Se-82.71c" awr="81.213" location="1" name="34082.71c" path="293.6K/Se_082_293.6K.ace" temperature="2.53e-08" zaid="34082"/>
|
||||
<ace_table alias="Br-79.71c" awr="78.2403" location="1" name="35079.71c" path="293.6K/Br_079_293.6K.ace" temperature="2.53e-08" zaid="35079"/>
|
||||
<ace_table alias="Br-81.71c" awr="80.2212" location="1" name="35081.71c" path="293.6K/Br_081_293.6K.ace" temperature="2.53e-08" zaid="35081"/>
|
||||
<ace_table alias="Kr-78.71c" awr="77.25099" location="1" name="36078.71c" path="293.6K/Kr_078_293.6K.ace" temperature="2.53e-08" zaid="36078"/>
|
||||
<ace_table alias="Kr-80.71c" awr="79.2299" location="1" name="36080.71c" path="293.6K/Kr_080_293.6K.ace" temperature="2.53e-08" zaid="36080"/>
|
||||
<ace_table alias="Kr-82.71c" awr="81.2098" location="1" name="36082.71c" path="293.6K/Kr_082_293.6K.ace" temperature="2.53e-08" zaid="36082"/>
|
||||
<ace_table alias="Kr-83.71c" awr="82.202" location="1" name="36083.71c" path="293.6K/Kr_083_293.6K.ace" temperature="2.53e-08" zaid="36083"/>
|
||||
<ace_table alias="Kr-84.71c" awr="83.1907" location="1" name="36084.71c" path="293.6K/Kr_084_293.6K.ace" temperature="2.53e-08" zaid="36084"/>
|
||||
<ace_table alias="Kr-85.71c" awr="84.1831" location="1" name="36085.71c" path="293.6K/Kr_085_293.6K.ace" temperature="2.53e-08" zaid="36085"/>
|
||||
<ace_table alias="Kr-86.71c" awr="85.1726" location="1" name="36086.71c" path="293.6K/Kr_086_293.6K.ace" temperature="2.53e-08" zaid="36086"/>
|
||||
<ace_table alias="Rb-85.71c" awr="84.1824" location="1" name="37085.71c" path="293.6K/Rb_085_293.6K.ace" temperature="2.53e-08" zaid="37085"/>
|
||||
<ace_table alias="Rb-86.71c" awr="85.1731" location="1" name="37086.71c" path="293.6K/Rb_086_293.6K.ace" temperature="2.53e-08" zaid="37086"/>
|
||||
<ace_table alias="Rb-87.71c" awr="86.1626" location="1" name="37087.71c" path="293.6K/Rb_087_293.6K.ace" temperature="2.53e-08" zaid="37087"/>
|
||||
<ace_table alias="Sr-84.71c" awr="83.1926" location="1" name="38084.71c" path="293.6K/Sr_084_293.6K.ace" temperature="2.53e-08" zaid="38084"/>
|
||||
<ace_table alias="Sr-86.71c" awr="85.1713" location="1" name="38086.71c" path="293.6K/Sr_086_293.6K.ace" temperature="2.53e-08" zaid="38086"/>
|
||||
<ace_table alias="Sr-87.71c" awr="86.1623" location="1" name="38087.71c" path="293.6K/Sr_087_293.6K.ace" temperature="2.53e-08" zaid="38087"/>
|
||||
<ace_table alias="Sr-88.71c" awr="87.15" location="1" name="38088.71c" path="293.6K/Sr_088_293.6K.ace" temperature="2.53e-08" zaid="38088"/>
|
||||
<ace_table alias="Sr-89.71c" awr="88.144" location="1" name="38089.71c" path="293.6K/Sr_089_293.6K.ace" temperature="2.53e-08" zaid="38089"/>
|
||||
<ace_table alias="Sr-90.71c" awr="89.1353" location="1" name="38090.71c" path="293.6K/Sr_090_293.6K.ace" temperature="2.53e-08" zaid="38090"/>
|
||||
<ace_table alias="Y-89.71c" awr="88.1421" location="1" name="39089.71c" path="293.6K/Y_089_293.6K.ace" temperature="2.53e-08" zaid="39089"/>
|
||||
<ace_table alias="Y-90.71c" awr="89.1348" location="1" name="39090.71c" path="293.6K/Y_090_293.6K.ace" temperature="2.53e-08" zaid="39090"/>
|
||||
<ace_table alias="Y-91.71c" awr="90.1264" location="1" name="39091.71c" path="293.6K/Y_091_293.6K.ace" temperature="2.53e-08" zaid="39091"/>
|
||||
<ace_table alias="Zr-90.71c" awr="89.1324" location="1" name="40090.71c" path="293.6K/Zr_090_293.6K.ace" temperature="2.53e-08" zaid="40090"/>
|
||||
<ace_table alias="Zr-91.71c" awr="90.1247" location="1" name="40091.71c" path="293.6K/Zr_091_293.6K.ace" temperature="2.53e-08" zaid="40091"/>
|
||||
<ace_table alias="Zr-92.71c" awr="91.1155" location="1" name="40092.71c" path="293.6K/Zr_092_293.6K.ace" temperature="2.53e-08" zaid="40092"/>
|
||||
<ace_table alias="Zr-93.71c" awr="92.1084" location="1" name="40093.71c" path="293.6K/Zr_093_293.6K.ace" temperature="2.53e-08" zaid="40093"/>
|
||||
<ace_table alias="Zr-94.71c" awr="93.0996" location="1" name="40094.71c" path="293.6K/Zr_094_293.6K.ace" temperature="2.53e-08" zaid="40094"/>
|
||||
<ace_table alias="Zr-95.71c" awr="94.0927" location="1" name="40095.71c" path="293.6K/Zr_095_293.6K.ace" temperature="2.53e-08" zaid="40095"/>
|
||||
<ace_table alias="Zr-96.71c" awr="95.0844" location="1" name="40096.71c" path="293.6K/Zr_096_293.6K.ace" temperature="2.53e-08" zaid="40096"/>
|
||||
<ace_table alias="Nb-93.71c" awr="92.1051" location="1" name="41093.71c" path="293.6K/Nb_093_293.6K.ace" temperature="2.53e-08" zaid="41093"/>
|
||||
<ace_table alias="Nb-94.71c" awr="93.1006" location="1" name="41094.71c" path="293.6K/Nb_094_293.6K.ace" temperature="2.53e-08" zaid="41094"/>
|
||||
<ace_table alias="Nb-95.71c" awr="94.0915" location="1" name="41095.71c" path="293.6K/Nb_095_293.6K.ace" temperature="2.53e-08" zaid="41095"/>
|
||||
<ace_table alias="Mo-92.71c" awr="91.1173" location="1" name="42092.71c" path="293.6K/Mo_092_293.6K.ace" temperature="2.53e-08" zaid="42092"/>
|
||||
<ace_table alias="Mo-94.71c" awr="93.0984" location="1" name="42094.71c" path="293.6K/Mo_094_293.6K.ace" temperature="2.53e-08" zaid="42094"/>
|
||||
<ace_table alias="Mo-95.71c" awr="94.0906" location="1" name="42095.71c" path="293.6K/Mo_095_293.6K.ace" temperature="2.53e-08" zaid="42095"/>
|
||||
<ace_table alias="Mo-96.71c" awr="95.0808" location="1" name="42096.71c" path="293.6K/Mo_096_293.6K.ace" temperature="2.53e-08" zaid="42096"/>
|
||||
<ace_table alias="Mo-97.71c" awr="96.0735" location="1" name="42097.71c" path="293.6K/Mo_097_293.6K.ace" temperature="2.53e-08" zaid="42097"/>
|
||||
<ace_table alias="Mo-98.71c" awr="97.0643" location="1" name="42098.71c" path="293.6K/Mo_098_293.6K.ace" temperature="2.53e-08" zaid="42098"/>
|
||||
<ace_table alias="Mo-99.71c" awr="98.058" location="1" name="42099.71c" path="293.6K/Mo_099_293.6K.ace" temperature="2.53e-08" zaid="42099"/>
|
||||
<ace_table alias="Mo-100.71c" awr="99.049" location="1" name="42100.71c" path="293.6K/Mo_100_293.6K.ace" temperature="2.53e-08" zaid="42100"/>
|
||||
<ace_table alias="Tc-99.71c" awr="98.0566" location="1" name="43099.71c" path="293.6K/Tc_099_293.6K.ace" temperature="2.53e-08" zaid="43099"/>
|
||||
<ace_table alias="Ru-96.71c" awr="95.0837" location="1" name="44096.71c" path="293.6K/Ru_096_293.6K.ace" temperature="2.53e-08" zaid="44096"/>
|
||||
<ace_table alias="Ru-98.71c" awr="97.0642" location="1" name="44098.71c" path="293.6K/Ru_098_293.6K.ace" temperature="2.53e-08" zaid="44098"/>
|
||||
<ace_table alias="Ru-99.71c" awr="98.0562" location="1" name="44099.71c" path="293.6K/Ru_099_293.6K.ace" temperature="2.53e-08" zaid="44099"/>
|
||||
<ace_table alias="Ru-100.71c" awr="99.046" location="1" name="44100.71c" path="293.6K/Ru_100_293.6K.ace" temperature="2.53e-08" zaid="44100"/>
|
||||
<ace_table alias="Ru-101.71c" awr="100.039" location="1" name="44101.71c" path="293.6K/Ru_101_293.6K.ace" temperature="2.53e-08" zaid="44101"/>
|
||||
<ace_table alias="Ru-102.71c" awr="101.03" location="1" name="44102.71c" path="293.6K/Ru_102_293.6K.ace" temperature="2.53e-08" zaid="44102"/>
|
||||
<ace_table alias="Ru-103.71c" awr="102.02" location="1" name="44103.71c" path="293.6K/Ru_103_293.6K.ace" temperature="2.53e-08" zaid="44103"/>
|
||||
<ace_table alias="Ru-104.71c" awr="103.01" location="1" name="44104.71c" path="293.6K/Ru_104_293.6K.ace" temperature="2.53e-08" zaid="44104"/>
|
||||
<ace_table alias="Ru-105.71c" awr="104.01" location="1" name="44105.71c" path="293.6K/Ru_105_293.6K.ace" temperature="2.53e-08" zaid="44105"/>
|
||||
<ace_table alias="Ru-106.71c" awr="104.997" location="1" name="44106.71c" path="293.6K/Ru_106_293.6K.ace" temperature="2.53e-08" zaid="44106"/>
|
||||
<ace_table alias="Rh-103.71c" awr="102.021" location="1" name="45103.71c" path="293.6K/Rh_103_293.6K.ace" temperature="2.53e-08" zaid="45103"/>
|
||||
<ace_table alias="Rh-105.71c" awr="104.0" location="1" name="45105.71c" path="293.6K/Rh_105_293.6K.ace" temperature="2.53e-08" zaid="45105"/>
|
||||
<ace_table alias="Pd-102.71c" awr="101.0302" location="1" name="46102.71c" path="293.6K/Pd_102_293.6K.ace" temperature="2.53e-08" zaid="46102"/>
|
||||
<ace_table alias="Pd-104.71c" awr="103.0114" location="1" name="46104.71c" path="293.6K/Pd_104_293.6K.ace" temperature="2.53e-08" zaid="46104"/>
|
||||
<ace_table alias="Pd-105.71c" awr="104.004" location="1" name="46105.71c" path="293.6K/Pd_105_293.6K.ace" temperature="2.53e-08" zaid="46105"/>
|
||||
<ace_table alias="Pd-106.71c" awr="104.9937" location="1" name="46106.71c" path="293.6K/Pd_106_293.6K.ace" temperature="2.53e-08" zaid="46106"/>
|
||||
<ace_table alias="Pd-107.71c" awr="105.987" location="1" name="46107.71c" path="293.6K/Pd_107_293.6K.ace" temperature="2.53e-08" zaid="46107"/>
|
||||
<ace_table alias="Pd-108.71c" awr="106.9769" location="1" name="46108.71c" path="293.6K/Pd_108_293.6K.ace" temperature="2.53e-08" zaid="46108"/>
|
||||
<ace_table alias="Pd-110.71c" awr="108.961" location="1" name="46110.71c" path="293.6K/Pd_110_293.6K.ace" temperature="2.53e-08" zaid="46110"/>
|
||||
<ace_table alias="Ag-107.71c" awr="105.987" location="1" name="47107.71c" path="293.6K/Ag_107_293.6K.ace" temperature="2.53e-08" zaid="47107"/>
|
||||
<ace_table alias="Ag-109.71c" awr="107.969" location="1" name="47109.71c" path="293.6K/Ag_109_293.6K.ace" temperature="2.53e-08" zaid="47109"/>
|
||||
<ace_table alias="Ag-110m.71c" awr="108.962" location="1" metastable="1" name="47510.71c" path="293.6K/Ag_110m1_293.6K.ace" temperature="2.53e-08" zaid="47510"/>
|
||||
<ace_table alias="Ag-111.71c" awr="109.953" location="1" name="47111.71c" path="293.6K/Ag_111_293.6K.ace" temperature="2.53e-08" zaid="47111"/>
|
||||
<ace_table alias="Cd-106.71c" awr="104.996" location="1" name="48106.71c" path="293.6K/Cd_106_293.6K.ace" temperature="2.53e-08" zaid="48106"/>
|
||||
<ace_table alias="Cd-108.71c" awr="106.977" location="1" name="48108.71c" path="293.6K/Cd_108_293.6K.ace" temperature="2.53e-08" zaid="48108"/>
|
||||
<ace_table alias="Cd-110.71c" awr="108.959" location="1" name="48110.71c" path="293.6K/Cd_110_293.6K.ace" temperature="2.53e-08" zaid="48110"/>
|
||||
<ace_table alias="Cd-111.71c" awr="109.951" location="1" name="48111.71c" path="293.6K/Cd_111_293.6K.ace" temperature="2.53e-08" zaid="48111"/>
|
||||
<ace_table alias="Cd-112.71c" awr="110.942" location="1" name="48112.71c" path="293.6K/Cd_112_293.6K.ace" temperature="2.53e-08" zaid="48112"/>
|
||||
<ace_table alias="Cd-113.71c" awr="111.93" location="1" name="48113.71c" path="293.6K/Cd_113_293.6K.ace" temperature="2.53e-08" zaid="48113"/>
|
||||
<ace_table alias="Cd-114.71c" awr="112.925" location="1" name="48114.71c" path="293.6K/Cd_114_293.6K.ace" temperature="2.53e-08" zaid="48114"/>
|
||||
<ace_table alias="Cd-115m.71c" awr="113.918" location="1" metastable="1" name="48515.71c" path="293.6K/Cd_115m1_293.6K.ace" temperature="2.53e-08" zaid="48515"/>
|
||||
<ace_table alias="Cd-116.71c" awr="114.909" location="1" name="48116.71c" path="293.6K/Cd_116_293.6K.ace" temperature="2.53e-08" zaid="48116"/>
|
||||
<ace_table alias="In-113.71c" awr="111.934" location="1" name="49113.71c" path="293.6K/In_113_293.6K.ace" temperature="2.53e-08" zaid="49113"/>
|
||||
<ace_table alias="In-115.71c" awr="113.917" location="1" name="49115.71c" path="293.6K/In_115_293.6K.ace" temperature="2.53e-08" zaid="49115"/>
|
||||
<ace_table alias="Sn-112.71c" awr="110.944" location="1" name="50112.71c" path="293.6K/Sn_112_293.6K.ace" temperature="2.53e-08" zaid="50112"/>
|
||||
<ace_table alias="Sn-113.71c" awr="111.935" location="1" name="50113.71c" path="293.6K/Sn_113_293.6K.ace" temperature="2.53e-08" zaid="50113"/>
|
||||
<ace_table alias="Sn-114.71c" awr="112.925" location="1" name="50114.71c" path="293.6K/Sn_114_293.6K.ace" temperature="2.53e-08" zaid="50114"/>
|
||||
<ace_table alias="Sn-115.71c" awr="113.916" location="1" name="50115.71c" path="293.6K/Sn_115_293.6K.ace" temperature="2.53e-08" zaid="50115"/>
|
||||
<ace_table alias="Sn-116.71c" awr="114.906" location="1" name="50116.71c" path="293.6K/Sn_116_293.6K.ace" temperature="2.53e-08" zaid="50116"/>
|
||||
<ace_table alias="Sn-117.71c" awr="115.899" location="1" name="50117.71c" path="293.6K/Sn_117_293.6K.ace" temperature="2.53e-08" zaid="50117"/>
|
||||
<ace_table alias="Sn-118.71c" awr="116.889" location="1" name="50118.71c" path="293.6K/Sn_118_293.6K.ace" temperature="2.53e-08" zaid="50118"/>
|
||||
<ace_table alias="Sn-119.71c" awr="117.882" location="1" name="50119.71c" path="293.6K/Sn_119_293.6K.ace" temperature="2.53e-08" zaid="50119"/>
|
||||
<ace_table alias="Sn-120.71c" awr="118.872" location="1" name="50120.71c" path="293.6K/Sn_120_293.6K.ace" temperature="2.53e-08" zaid="50120"/>
|
||||
<ace_table alias="Sn-122.71c" awr="120.856" location="1" name="50122.71c" path="293.6K/Sn_122_293.6K.ace" temperature="2.53e-08" zaid="50122"/>
|
||||
<ace_table alias="Sn-123.71c" awr="121.85" location="1" name="50123.71c" path="293.6K/Sn_123_293.6K.ace" temperature="2.53e-08" zaid="50123"/>
|
||||
<ace_table alias="Sn-124.71c" awr="122.841" location="1" name="50124.71c" path="293.6K/Sn_124_293.6K.ace" temperature="2.53e-08" zaid="50124"/>
|
||||
<ace_table alias="Sn-125.71c" awr="123.835" location="1" name="50125.71c" path="293.6K/Sn_125_293.6K.ace" temperature="2.53e-08" zaid="50125"/>
|
||||
<ace_table alias="Sn-126.71c" awr="124.826" location="1" name="50126.71c" path="293.6K/Sn_126_293.6K.ace" temperature="2.53e-08" zaid="50126"/>
|
||||
<ace_table alias="Sb-121.71c" awr="119.87" location="1" name="51121.71c" path="293.6K/Sb_121_293.6K.ace" temperature="2.53e-08" zaid="51121"/>
|
||||
<ace_table alias="Sb-123.71c" awr="121.85" location="1" name="51123.71c" path="293.6K/Sb_123_293.6K.ace" temperature="2.53e-08" zaid="51123"/>
|
||||
<ace_table alias="Sb-124.71c" awr="122.842" location="1" name="51124.71c" path="293.6K/Sb_124_293.6K.ace" temperature="2.53e-08" zaid="51124"/>
|
||||
<ace_table alias="Sb-125.71c" awr="123.832" location="1" name="51125.71c" path="293.6K/Sb_125_293.6K.ace" temperature="2.53e-08" zaid="51125"/>
|
||||
<ace_table alias="Sb-126.71c" awr="124.826" location="1" name="51126.71c" path="293.6K/Sb_126_293.6K.ace" temperature="2.53e-08" zaid="51126"/>
|
||||
<ace_table alias="Te-120.71c" awr="118.874" location="1" name="52120.71c" path="293.6K/Te_120_293.6K.ace" temperature="2.53e-08" zaid="52120"/>
|
||||
<ace_table alias="Te-122.71c" awr="120.856" location="1" name="52122.71c" path="293.6K/Te_122_293.6K.ace" temperature="2.53e-08" zaid="52122"/>
|
||||
<ace_table alias="Te-123.71c" awr="121.848" location="1" name="52123.71c" path="293.6K/Te_123_293.6K.ace" temperature="2.53e-08" zaid="52123"/>
|
||||
<ace_table alias="Te-124.71c" awr="122.839" location="1" name="52124.71c" path="293.6K/Te_124_293.6K.ace" temperature="2.53e-08" zaid="52124"/>
|
||||
<ace_table alias="Te-125.71c" awr="123.831" location="1" name="52125.71c" path="293.6K/Te_125_293.6K.ace" temperature="2.53e-08" zaid="52125"/>
|
||||
<ace_table alias="Te-126.71c" awr="124.821" location="1" name="52126.71c" path="293.6K/Te_126_293.6K.ace" temperature="2.53e-08" zaid="52126"/>
|
||||
<ace_table alias="Te-127m.71c" awr="125.815" location="1" metastable="1" name="52527.71c" path="293.6K/Te_127m1_293.6K.ace" temperature="2.53e-08" zaid="52527"/>
|
||||
<ace_table alias="Te-128.71c" awr="126.805" location="1" name="52128.71c" path="293.6K/Te_128_293.6K.ace" temperature="2.53e-08" zaid="52128"/>
|
||||
<ace_table alias="Te-129m.71c" awr="127.8" location="1" metastable="1" name="52529.71c" path="293.6K/Te_129m1_293.6K.ace" temperature="2.53e-08" zaid="52529"/>
|
||||
<ace_table alias="Te-130.71c" awr="128.79" location="1" name="52130.71c" path="293.6K/Te_130_293.6K.ace" temperature="2.53e-08" zaid="52130"/>
|
||||
<ace_table alias="Te-132.71c" awr="130.775" location="1" name="52132.71c" path="293.6K/Te_132_293.6K.ace" temperature="2.53e-08" zaid="52132"/>
|
||||
<ace_table alias="I-127.71c" awr="125.8143" location="1" name="53127.71c" path="293.6K/I_127_293.6K.ace" temperature="2.53e-08" zaid="53127"/>
|
||||
<ace_table alias="I-129.71c" awr="127.798" location="1" name="53129.71c" path="293.6K/I_129_293.6K.ace" temperature="2.53e-08" zaid="53129"/>
|
||||
<ace_table alias="I-130.71c" awr="128.791" location="1" name="53130.71c" path="293.6K/I_130_293.6K.ace" temperature="2.53e-08" zaid="53130"/>
|
||||
<ace_table alias="I-131.71c" awr="129.781" location="1" name="53131.71c" path="293.6K/I_131_293.6K.ace" temperature="2.53e-08" zaid="53131"/>
|
||||
<ace_table alias="I-135.71c" awr="133.75" location="1" name="53135.71c" path="293.6K/I_135_293.6K.ace" temperature="2.53e-08" zaid="53135"/>
|
||||
<ace_table alias="Xe-123.71c" awr="121.8526" location="1" name="54123.71c" path="293.6K/Xe_123_293.6K.ace" temperature="2.53e-08" zaid="54123"/>
|
||||
<ace_table alias="Xe-124.71c" awr="122.8415" location="1" name="54124.71c" path="293.6K/Xe_124_293.6K.ace" temperature="2.53e-08" zaid="54124"/>
|
||||
<ace_table alias="Xe-126.71c" awr="124.822" location="1" name="54126.71c" path="293.6K/Xe_126_293.6K.ace" temperature="2.53e-08" zaid="54126"/>
|
||||
<ace_table alias="Xe-128.71c" awr="126.804" location="1" name="54128.71c" path="293.6K/Xe_128_293.6K.ace" temperature="2.53e-08" zaid="54128"/>
|
||||
<ace_table alias="Xe-129.71c" awr="127.798" location="1" name="54129.71c" path="293.6K/Xe_129_293.6K.ace" temperature="2.53e-08" zaid="54129"/>
|
||||
<ace_table alias="Xe-130.71c" awr="128.788" location="1" name="54130.71c" path="293.6K/Xe_130_293.6K.ace" temperature="2.53e-08" zaid="54130"/>
|
||||
<ace_table alias="Xe-131.71c" awr="129.781" location="1" name="54131.71c" path="293.6K/Xe_131_293.6K.ace" temperature="2.53e-08" zaid="54131"/>
|
||||
<ace_table alias="Xe-132.71c" awr="130.77" location="1" name="54132.71c" path="293.6K/Xe_132_293.6K.ace" temperature="2.53e-08" zaid="54132"/>
|
||||
<ace_table alias="Xe-133.71c" awr="131.764" location="1" name="54133.71c" path="293.6K/Xe_133_293.6K.ace" temperature="2.53e-08" zaid="54133"/>
|
||||
<ace_table alias="Xe-134.71c" awr="132.76" location="1" name="54134.71c" path="293.6K/Xe_134_293.6K.ace" temperature="2.53e-08" zaid="54134"/>
|
||||
<ace_table alias="Xe-135.71c" awr="133.748" location="1" name="54135.71c" path="293.6K/Xe_135_293.6K.ace" temperature="2.53e-08" zaid="54135"/>
|
||||
<ace_table alias="Xe-136.71c" awr="134.74" location="1" name="54136.71c" path="293.6K/Xe_136_293.6K.ace" temperature="2.53e-08" zaid="54136"/>
|
||||
<ace_table alias="Cs-133.71c" awr="131.764" location="1" name="55133.71c" path="293.6K/Cs_133_293.6K.ace" temperature="2.53e-08" zaid="55133"/>
|
||||
<ace_table alias="Cs-134.71c" awr="132.757" location="1" name="55134.71c" path="293.6K/Cs_134_293.6K.ace" temperature="2.53e-08" zaid="55134"/>
|
||||
<ace_table alias="Cs-135.71c" awr="133.747" location="1" name="55135.71c" path="293.6K/Cs_135_293.6K.ace" temperature="2.53e-08" zaid="55135"/>
|
||||
<ace_table alias="Cs-136.71c" awr="134.739" location="1" name="55136.71c" path="293.6K/Cs_136_293.6K.ace" temperature="2.53e-08" zaid="55136"/>
|
||||
<ace_table alias="Cs-137.71c" awr="135.731" location="1" name="55137.71c" path="293.6K/Cs_137_293.6K.ace" temperature="2.53e-08" zaid="55137"/>
|
||||
<ace_table alias="Ba-130.71c" awr="128.79" location="1" name="56130.71c" path="293.6K/Ba_130_293.6K.ace" temperature="2.53e-08" zaid="56130"/>
|
||||
<ace_table alias="Ba-132.71c" awr="130.772" location="1" name="56132.71c" path="293.6K/Ba_132_293.6K.ace" temperature="2.53e-08" zaid="56132"/>
|
||||
<ace_table alias="Ba-133.71c" awr="131.764" location="1" name="56133.71c" path="293.6K/Ba_133_293.6K.ace" temperature="2.53e-08" zaid="56133"/>
|
||||
<ace_table alias="Ba-134.71c" awr="132.754" location="1" name="56134.71c" path="293.6K/Ba_134_293.6K.ace" temperature="2.53e-08" zaid="56134"/>
|
||||
<ace_table alias="Ba-135.71c" awr="133.747" location="1" name="56135.71c" path="293.6K/Ba_135_293.6K.ace" temperature="2.53e-08" zaid="56135"/>
|
||||
<ace_table alias="Ba-136.71c" awr="134.737" location="1" name="56136.71c" path="293.6K/Ba_136_293.6K.ace" temperature="2.53e-08" zaid="56136"/>
|
||||
<ace_table alias="Ba-137.71c" awr="135.73" location="1" name="56137.71c" path="293.6K/Ba_137_293.6K.ace" temperature="2.53e-08" zaid="56137"/>
|
||||
<ace_table alias="Ba-138.71c" awr="136.72" location="1" name="56138.71c" path="293.6K/Ba_138_293.6K.ace" temperature="2.53e-08" zaid="56138"/>
|
||||
<ace_table alias="Ba-140.71c" awr="138.708" location="1" name="56140.71c" path="293.6K/Ba_140_293.6K.ace" temperature="2.53e-08" zaid="56140"/>
|
||||
<ace_table alias="La-138.71c" awr="136.722" location="1" name="57138.71c" path="293.6K/La_138_293.6K.ace" temperature="2.53e-08" zaid="57138"/>
|
||||
<ace_table alias="La-139.71c" awr="137.71" location="1" name="57139.71c" path="293.6K/La_139_293.6K.ace" temperature="2.53e-08" zaid="57139"/>
|
||||
<ace_table alias="La-140.71c" awr="138.708" location="1" name="57140.71c" path="293.6K/La_140_293.6K.ace" temperature="2.53e-08" zaid="57140"/>
|
||||
<ace_table alias="Ce-136.71c" awr="134.74" location="1" name="58136.71c" path="293.6K/Ce_136_293.6K.ace" temperature="2.53e-08" zaid="58136"/>
|
||||
<ace_table alias="Ce-138.71c" awr="136.721" location="1" name="58138.71c" path="293.6K/Ce_138_293.6K.ace" temperature="2.53e-08" zaid="58138"/>
|
||||
<ace_table alias="Ce-139.71c" awr="137.713" location="1" name="58139.71c" path="293.6K/Ce_139_293.6K.ace" temperature="2.53e-08" zaid="58139"/>
|
||||
<ace_table alias="Ce-140.71c" awr="138.704" location="1" name="58140.71c" path="293.6K/Ce_140_293.6K.ace" temperature="2.53e-08" zaid="58140"/>
|
||||
<ace_table alias="Ce-141.71c" awr="139.7" location="1" name="58141.71c" path="293.6K/Ce_141_293.6K.ace" temperature="2.53e-08" zaid="58141"/>
|
||||
<ace_table alias="Ce-142.71c" awr="140.69" location="1" name="58142.71c" path="293.6K/Ce_142_293.6K.ace" temperature="2.53e-08" zaid="58142"/>
|
||||
<ace_table alias="Ce-143.71c" awr="141.685" location="1" name="58143.71c" path="293.6K/Ce_143_293.6K.ace" temperature="2.53e-08" zaid="58143"/>
|
||||
<ace_table alias="Ce-144.71c" awr="142.678" location="1" name="58144.71c" path="293.6K/Ce_144_293.6K.ace" temperature="2.53e-08" zaid="58144"/>
|
||||
<ace_table alias="Pr-141.71c" awr="139.697" location="1" name="59141.71c" path="293.6K/Pr_141_293.6K.ace" temperature="2.53e-08" zaid="59141"/>
|
||||
<ace_table alias="Pr-142.71c" awr="140.691" location="1" name="59142.71c" path="293.6K/Pr_142_293.6K.ace" temperature="2.53e-08" zaid="59142"/>
|
||||
<ace_table alias="Pr-143.71c" awr="141.683" location="1" name="59143.71c" path="293.6K/Pr_143_293.6K.ace" temperature="2.53e-08" zaid="59143"/>
|
||||
<ace_table alias="Nd-142.71c" awr="140.689" location="1" name="60142.71c" path="293.6K/Nd_142_293.6K.ace" temperature="2.53e-08" zaid="60142"/>
|
||||
<ace_table alias="Nd-143.71c" awr="141.682" location="1" name="60143.71c" path="293.6K/Nd_143_293.6K.ace" temperature="2.53e-08" zaid="60143"/>
|
||||
<ace_table alias="Nd-144.71c" awr="142.674" location="1" name="60144.71c" path="293.6K/Nd_144_293.6K.ace" temperature="2.53e-08" zaid="60144"/>
|
||||
<ace_table alias="Nd-145.71c" awr="143.668" location="1" name="60145.71c" path="293.6K/Nd_145_293.6K.ace" temperature="2.53e-08" zaid="60145"/>
|
||||
<ace_table alias="Nd-146.71c" awr="144.66" location="1" name="60146.71c" path="293.6K/Nd_146_293.6K.ace" temperature="2.53e-08" zaid="60146"/>
|
||||
<ace_table alias="Nd-147.71c" awr="145.654" location="1" name="60147.71c" path="293.6K/Nd_147_293.6K.ace" temperature="2.53e-08" zaid="60147"/>
|
||||
<ace_table alias="Nd-148.71c" awr="146.646" location="1" name="60148.71c" path="293.6K/Nd_148_293.6K.ace" temperature="2.53e-08" zaid="60148"/>
|
||||
<ace_table alias="Nd-150.71c" awr="148.633" location="1" name="60150.71c" path="293.6K/Nd_150_293.6K.ace" temperature="2.53e-08" zaid="60150"/>
|
||||
<ace_table alias="Pm-147.71c" awr="145.653" location="1" name="61147.71c" path="293.6K/Pm_147_293.6K.ace" temperature="2.53e-08" zaid="61147"/>
|
||||
<ace_table alias="Pm-148.71c" awr="146.646" location="1" name="61148.71c" path="293.6K/Pm_148_293.6K.ace" temperature="2.53e-08" zaid="61148"/>
|
||||
<ace_table alias="Pm-148m.71c" awr="146.65" location="1" metastable="1" name="61548.71c" path="293.6K/Pm_148m1_293.6K.ace" temperature="2.53e-08" zaid="61548"/>
|
||||
<ace_table alias="Pm-149.71c" awr="147.639" location="1" name="61149.71c" path="293.6K/Pm_149_293.6K.ace" temperature="2.53e-08" zaid="61149"/>
|
||||
<ace_table alias="Pm-151.71c" awr="149.625" location="1" name="61151.71c" path="293.6K/Pm_151_293.6K.ace" temperature="2.53e-08" zaid="61151"/>
|
||||
<ace_table alias="Sm-144.71c" awr="142.676" location="1" name="62144.71c" path="293.6K/Sm_144_293.6K.ace" temperature="2.53e-08" zaid="62144"/>
|
||||
<ace_table alias="Sm-147.71c" awr="145.653" location="1" name="62147.71c" path="293.6K/Sm_147_293.6K.ace" temperature="2.53e-08" zaid="62147"/>
|
||||
<ace_table alias="Sm-148.71c" awr="146.644" location="1" name="62148.71c" path="293.6K/Sm_148_293.6K.ace" temperature="2.53e-08" zaid="62148"/>
|
||||
<ace_table alias="Sm-149.71c" awr="147.638" location="1" name="62149.71c" path="293.6K/Sm_149_293.6K.ace" temperature="2.53e-08" zaid="62149"/>
|
||||
<ace_table alias="Sm-150.71c" awr="148.629" location="1" name="62150.71c" path="293.6K/Sm_150_293.6K.ace" temperature="2.53e-08" zaid="62150"/>
|
||||
<ace_table alias="Sm-151.71c" awr="149.623" location="1" name="62151.71c" path="293.6K/Sm_151_293.6K.ace" temperature="2.53e-08" zaid="62151"/>
|
||||
<ace_table alias="Sm-152.71c" awr="150.615" location="1" name="62152.71c" path="293.6K/Sm_152_293.6K.ace" temperature="2.53e-08" zaid="62152"/>
|
||||
<ace_table alias="Sm-153.71c" awr="151.608" location="1" name="62153.71c" path="293.6K/Sm_153_293.6K.ace" temperature="2.53e-08" zaid="62153"/>
|
||||
<ace_table alias="Sm-154.71c" awr="152.6" location="1" name="62154.71c" path="293.6K/Sm_154_293.6K.ace" temperature="2.53e-08" zaid="62154"/>
|
||||
<ace_table alias="Eu-151.71c" awr="149.62" location="1" name="63151.71c" path="293.6K/Eu_151_293.6K.ace" temperature="2.53e-08" zaid="63151"/>
|
||||
<ace_table alias="Eu-152.71c" awr="150.617" location="1" name="63152.71c" path="293.6K/Eu_152_293.6K.ace" temperature="2.53e-08" zaid="63152"/>
|
||||
<ace_table alias="Eu-153.71c" awr="151.608" location="1" name="63153.71c" path="293.6K/Eu_153_293.6K.ace" temperature="2.53e-08" zaid="63153"/>
|
||||
<ace_table alias="Eu-154.71c" awr="152.6" location="1" name="63154.71c" path="293.6K/Eu_154_293.6K.ace" temperature="2.53e-08" zaid="63154"/>
|
||||
<ace_table alias="Eu-155.71c" awr="153.59" location="1" name="63155.71c" path="293.6K/Eu_155_293.6K.ace" temperature="2.53e-08" zaid="63155"/>
|
||||
<ace_table alias="Eu-156.71c" awr="154.586" location="1" name="63156.71c" path="293.6K/Eu_156_293.6K.ace" temperature="2.53e-08" zaid="63156"/>
|
||||
<ace_table alias="Eu-157.71c" awr="155.577" location="1" name="63157.71c" path="293.6K/Eu_157_293.6K.ace" temperature="2.53e-08" zaid="63157"/>
|
||||
<ace_table alias="Gd-152.71c" awr="150.615" location="1" name="64152.71c" path="293.6K/Gd_152_293.6K.ace" temperature="2.53e-08" zaid="64152"/>
|
||||
<ace_table alias="Gd-153.71c" awr="151.608" location="1" name="64153.71c" path="293.6K/Gd_153_293.6K.ace" temperature="2.53e-08" zaid="64153"/>
|
||||
<ace_table alias="Gd-154.71c" awr="152.599" location="1" name="64154.71c" path="293.6K/Gd_154_293.6K.ace" temperature="2.53e-08" zaid="64154"/>
|
||||
<ace_table alias="Gd-155.71c" awr="153.592" location="1" name="64155.71c" path="293.6K/Gd_155_293.6K.ace" temperature="2.53e-08" zaid="64155"/>
|
||||
<ace_table alias="Gd-156.71c" awr="154.583" location="1" name="64156.71c" path="293.6K/Gd_156_293.6K.ace" temperature="2.53e-08" zaid="64156"/>
|
||||
<ace_table alias="Gd-157.71c" awr="155.576" location="1" name="64157.71c" path="293.6K/Gd_157_293.6K.ace" temperature="2.53e-08" zaid="64157"/>
|
||||
<ace_table alias="Gd-158.71c" awr="156.567" location="1" name="64158.71c" path="293.6K/Gd_158_293.6K.ace" temperature="2.53e-08" zaid="64158"/>
|
||||
<ace_table alias="Gd-160.71c" awr="158.553" location="1" name="64160.71c" path="293.6K/Gd_160_293.6K.ace" temperature="2.53e-08" zaid="64160"/>
|
||||
<ace_table alias="Tb-159.71c" awr="157.56" location="1" name="65159.71c" path="293.6K/Tb_159_293.6K.ace" temperature="2.53e-08" zaid="65159"/>
|
||||
<ace_table alias="Tb-160.71c" awr="158.553" location="1" name="65160.71c" path="293.6K/Tb_160_293.6K.ace" temperature="2.53e-08" zaid="65160"/>
|
||||
<ace_table alias="Dy-156.71c" awr="154.585" location="1" name="66156.71c" path="293.6K/Dy_156_293.6K.ace" temperature="2.53e-08" zaid="66156"/>
|
||||
<ace_table alias="Dy-158.71c" awr="156.568" location="1" name="66158.71c" path="293.6K/Dy_158_293.6K.ace" temperature="2.53e-08" zaid="66158"/>
|
||||
<ace_table alias="Dy-160.71c" awr="158.551" location="1" name="66160.71c" path="293.6K/Dy_160_293.6K.ace" temperature="2.53e-08" zaid="66160"/>
|
||||
<ace_table alias="Dy-161.71c" awr="159.544" location="1" name="66161.71c" path="293.6K/Dy_161_293.6K.ace" temperature="2.53e-08" zaid="66161"/>
|
||||
<ace_table alias="Dy-162.71c" awr="160.536" location="1" name="66162.71c" path="293.6K/Dy_162_293.6K.ace" temperature="2.53e-08" zaid="66162"/>
|
||||
<ace_table alias="Dy-163.71c" awr="161.529" location="1" name="66163.71c" path="293.6K/Dy_163_293.6K.ace" temperature="2.53e-08" zaid="66163"/>
|
||||
<ace_table alias="Dy-164.71c" awr="162.521" location="1" name="66164.71c" path="293.6K/Dy_164_293.6K.ace" temperature="2.53e-08" zaid="66164"/>
|
||||
<ace_table alias="Ho-165.71c" awr="163.513" location="1" name="67165.71c" path="293.6K/Ho_165_293.6K.ace" temperature="2.53e-08" zaid="67165"/>
|
||||
<ace_table alias="Ho-166m.71c" awr="164.507" location="1" metastable="1" name="67566.71c" path="293.6K/Ho_166m1_293.6K.ace" temperature="2.53e-08" zaid="67566"/>
|
||||
<ace_table alias="Er-162.71c" awr="160.538" location="1" name="68162.71c" path="293.6K/Er_162_293.6K.ace" temperature="2.53e-08" zaid="68162"/>
|
||||
<ace_table alias="Er-164.71c" awr="162.521" location="1" name="68164.71c" path="293.6K/Er_164_293.6K.ace" temperature="2.53e-08" zaid="68164"/>
|
||||
<ace_table alias="Er-166.71c" awr="164.505" location="1" name="68166.71c" path="293.6K/Er_166_293.6K.ace" temperature="2.53e-08" zaid="68166"/>
|
||||
<ace_table alias="Er-167.71c" awr="165.498" location="1" name="68167.71c" path="293.6K/Er_167_293.6K.ace" temperature="2.53e-08" zaid="68167"/>
|
||||
<ace_table alias="Er-168.71c" awr="166.487" location="1" name="68168.71c" path="293.6K/Er_168_293.6K.ace" temperature="2.53e-08" zaid="68168"/>
|
||||
<ace_table alias="Er-170.71c" awr="168.476" location="1" name="68170.71c" path="293.6K/Er_170_293.6K.ace" temperature="2.53e-08" zaid="68170"/>
|
||||
<ace_table alias="Tm-168.71c" awr="166.492" location="1" name="69168.71c" path="293.6K/Tm_168_293.6K.ace" temperature="2.53e-08" zaid="69168"/>
|
||||
<ace_table alias="Tm-169.71c" awr="167.483" location="1" name="69169.71c" path="293.6K/Tm_169_293.6K.ace" temperature="2.53e-08" zaid="69169"/>
|
||||
<ace_table alias="Tm-170.71c" awr="168.476" location="1" name="69170.71c" path="293.6K/Tm_170_293.6K.ace" temperature="2.53e-08" zaid="69170"/>
|
||||
<ace_table alias="Lu-175.71c" awr="173.438" location="1" name="71175.71c" path="293.6K/Lu_175_293.6K.ace" temperature="2.53e-08" zaid="71175"/>
|
||||
<ace_table alias="Lu-176.71c" awr="174.43" location="1" name="71176.71c" path="293.6K/Lu_176_293.6K.ace" temperature="2.53e-08" zaid="71176"/>
|
||||
<ace_table alias="Hf-174.71c" awr="172.446" location="1" name="72174.71c" path="293.6K/Hf_174_293.6K.ace" temperature="2.53e-08" zaid="72174"/>
|
||||
<ace_table alias="Hf-176.71c" awr="174.429" location="1" name="72176.71c" path="293.6K/Hf_176_293.6K.ace" temperature="2.53e-08" zaid="72176"/>
|
||||
<ace_table alias="Hf-177.71c" awr="175.42" location="1" name="72177.71c" path="293.6K/Hf_177_293.6K.ace" temperature="2.53e-08" zaid="72177"/>
|
||||
<ace_table alias="Hf-178.71c" awr="176.411" location="1" name="72178.71c" path="293.6K/Hf_178_293.6K.ace" temperature="2.53e-08" zaid="72178"/>
|
||||
<ace_table alias="Hf-179.71c" awr="177.413" location="1" name="72179.71c" path="293.6K/Hf_179_293.6K.ace" temperature="2.53e-08" zaid="72179"/>
|
||||
<ace_table alias="Hf-180.71c" awr="178.404" location="1" name="72180.71c" path="293.6K/Hf_180_293.6K.ace" temperature="2.53e-08" zaid="72180"/>
|
||||
<ace_table alias="Ta-180.71c" awr="178.4016" location="1" name="73180.71c" path="293.6K/Ta_180_293.6K.ace" temperature="2.53e-08" zaid="73180"/>
|
||||
<ace_table alias="Ta-181.71c" awr="179.3936" location="1" name="73181.71c" path="293.6K/Ta_181_293.6K.ace" temperature="2.53e-08" zaid="73181"/>
|
||||
<ace_table alias="Ta-182.71c" awr="180.387" location="1" name="73182.71c" path="293.6K/Ta_182_293.6K.ace" temperature="2.53e-08" zaid="73182"/>
|
||||
<ace_table alias="W-180.71c" awr="178.401" location="1" name="74180.71c" path="293.6K/W_180_293.6K.ace" temperature="2.53e-08" zaid="74180"/>
|
||||
<ace_table alias="W-182.71c" awr="180.385" location="1" name="74182.71c" path="293.6K/W_182_293.6K.ace" temperature="2.53e-08" zaid="74182"/>
|
||||
<ace_table alias="W-183.71c" awr="181.379" location="1" name="74183.71c" path="293.6K/W_183_293.6K.ace" temperature="2.53e-08" zaid="74183"/>
|
||||
<ace_table alias="W-184.71c" awr="182.371" location="1" name="74184.71c" path="293.6K/W_184_293.6K.ace" temperature="2.53e-08" zaid="74184"/>
|
||||
<ace_table alias="W-186.71c" awr="184.357" location="1" name="74186.71c" path="293.6K/W_186_293.6K.ace" temperature="2.53e-08" zaid="74186"/>
|
||||
<ace_table alias="Re-185.71c" awr="183.3641" location="1" name="75185.71c" path="293.6K/Re_185_293.6K.ace" temperature="2.53e-08" zaid="75185"/>
|
||||
<ace_table alias="Re-187.71c" awr="185.3497" location="1" name="75187.71c" path="293.6K/Re_187_293.6K.ace" temperature="2.53e-08" zaid="75187"/>
|
||||
<ace_table alias="Ir-191.71c" awr="189.32" location="1" name="77191.71c" path="293.6K/Ir_191_293.6K.ace" temperature="2.53e-08" zaid="77191"/>
|
||||
<ace_table alias="Ir-193.71c" awr="191.305" location="1" name="77193.71c" path="293.6K/Ir_193_293.6K.ace" temperature="2.53e-08" zaid="77193"/>
|
||||
<ace_table alias="Au-197.71c" awr="195.274" location="1" name="79197.71c" path="293.6K/Au_197_293.6K.ace" temperature="2.53e-08" zaid="79197"/>
|
||||
<ace_table alias="Hg-196.71c" awr="194.282" location="1" name="80196.71c" path="293.6K/Hg_196_293.6K.ace" temperature="2.53e-08" zaid="80196"/>
|
||||
<ace_table alias="Hg-198.71c" awr="196.266" location="1" name="80198.71c" path="293.6K/Hg_198_293.6K.ace" temperature="2.53e-08" zaid="80198"/>
|
||||
<ace_table alias="Hg-199.71c" awr="197.259" location="1" name="80199.71c" path="293.6K/Hg_199_293.6K.ace" temperature="2.53e-08" zaid="80199"/>
|
||||
<ace_table alias="Hg-200.71c" awr="198.25" location="1" name="80200.71c" path="293.6K/Hg_200_293.6K.ace" temperature="2.53e-08" zaid="80200"/>
|
||||
<ace_table alias="Hg-201.71c" awr="199.244" location="1" name="80201.71c" path="293.6K/Hg_201_293.6K.ace" temperature="2.53e-08" zaid="80201"/>
|
||||
<ace_table alias="Hg-202.71c" awr="200.236" location="1" name="80202.71c" path="293.6K/Hg_202_293.6K.ace" temperature="2.53e-08" zaid="80202"/>
|
||||
<ace_table alias="Hg-204.71c" awr="202.221" location="1" name="80204.71c" path="293.6K/Hg_204_293.6K.ace" temperature="2.53e-08" zaid="80204"/>
|
||||
<ace_table alias="Tl-203.71c" awr="201.229" location="1" name="81203.71c" path="293.6K/Tl_203_293.6K.ace" temperature="2.53e-08" zaid="81203"/>
|
||||
<ace_table alias="Tl-205.71c" awr="203.214" location="1" name="81205.71c" path="293.6K/Tl_205_293.6K.ace" temperature="2.53e-08" zaid="81205"/>
|
||||
<ace_table alias="Pb-204.71c" awr="202.2208" location="1" name="82204.71c" path="293.6K/Pb_204_293.6K.ace" temperature="2.53e-08" zaid="82204"/>
|
||||
<ace_table alias="Pb-206.71c" awr="204.205" location="1" name="82206.71c" path="293.6K/Pb_206_293.6K.ace" temperature="2.53e-08" zaid="82206"/>
|
||||
<ace_table alias="Pb-207.71c" awr="205.1979" location="1" name="82207.71c" path="293.6K/Pb_207_293.6K.ace" temperature="2.53e-08" zaid="82207"/>
|
||||
<ace_table alias="Pb-208.71c" awr="206.19" location="1" name="82208.71c" path="293.6K/Pb_208_293.6K.ace" temperature="2.53e-08" zaid="82208"/>
|
||||
<ace_table alias="Bi-209.71c" awr="207.185" location="1" name="83209.71c" path="293.6K/Bi_209_293.6K.ace" temperature="2.53e-08" zaid="83209"/>
|
||||
<ace_table alias="Ra-223.71c" awr="221.103" location="1" name="88223.71c" path="293.6K/Ra_223_293.6K.ace" temperature="2.53e-08" zaid="88223"/>
|
||||
<ace_table alias="Ra-224.71c" awr="222.096" location="1" name="88224.71c" path="293.6K/Ra_224_293.6K.ace" temperature="2.53e-08" zaid="88224"/>
|
||||
<ace_table alias="Ra-225.71c" awr="223.091" location="1" name="88225.71c" path="293.6K/Ra_225_293.6K.ace" temperature="2.53e-08" zaid="88225"/>
|
||||
<ace_table alias="Ra-226.71c" awr="224.084" location="1" name="88226.71c" path="293.6K/Ra_226_293.6K.ace" temperature="2.53e-08" zaid="88226"/>
|
||||
<ace_table alias="Ac-225.71c" awr="223.09" location="1" name="89225.71c" path="293.6K/Ac_225_293.6K.ace" temperature="2.53e-08" zaid="89225"/>
|
||||
<ace_table alias="Ac-226.71c" awr="224.084" location="1" name="89226.71c" path="293.6K/Ac_226_293.6K.ace" temperature="2.53e-08" zaid="89226"/>
|
||||
<ace_table alias="Ac-227.71c" awr="225.077" location="1" name="89227.71c" path="293.6K/Ac_227_293.6K.ace" temperature="2.53e-08" zaid="89227"/>
|
||||
<ace_table alias="Th-227.71c" awr="225.077" location="1" name="90227.71c" path="293.6K/Th_227_293.6K.ace" temperature="2.53e-08" zaid="90227"/>
|
||||
<ace_table alias="Th-228.71c" awr="226.07" location="1" name="90228.71c" path="293.6K/Th_228_293.6K.ace" temperature="2.53e-08" zaid="90228"/>
|
||||
<ace_table alias="Th-229.71c" awr="227.064" location="1" name="90229.71c" path="293.6K/Th_229_293.6K.ace" temperature="2.53e-08" zaid="90229"/>
|
||||
<ace_table alias="Th-230.71c" awr="228.057" location="1" name="90230.71c" path="293.6K/Th_230_293.6K.ace" temperature="2.53e-08" zaid="90230"/>
|
||||
<ace_table alias="Th-231.71c" awr="229.052" location="1" name="90231.71c" path="293.6K/Th_231_293.6K.ace" temperature="2.53e-08" zaid="90231"/>
|
||||
<ace_table alias="Th-232.71c" awr="230.045" location="1" name="90232.71c" path="293.6K/Th_232_293.6K.ace" temperature="2.53e-08" zaid="90232"/>
|
||||
<ace_table alias="Th-233.71c" awr="231.04" location="1" name="90233.71c" path="293.6K/Th_233_293.6K.ace" temperature="2.53e-08" zaid="90233"/>
|
||||
<ace_table alias="Th-234.71c" awr="232.033" location="1" name="90234.71c" path="293.6K/Th_234_293.6K.ace" temperature="2.53e-08" zaid="90234"/>
|
||||
<ace_table alias="Pa-229.71c" awr="227.065" location="1" name="91229.71c" path="293.6K/Pa_229_293.6K.ace" temperature="2.53e-08" zaid="91229"/>
|
||||
<ace_table alias="Pa-230.71c" awr="228.058" location="1" name="91230.71c" path="293.6K/Pa_230_293.6K.ace" temperature="2.53e-08" zaid="91230"/>
|
||||
<ace_table alias="Pa-231.71c" awr="229.051" location="1" name="91231.71c" path="293.6K/Pa_231_293.6K.ace" temperature="2.53e-08" zaid="91231"/>
|
||||
<ace_table alias="Pa-232.71c" awr="230.045" location="1" name="91232.71c" path="293.6K/Pa_232_293.6K.ace" temperature="2.53e-08" zaid="91232"/>
|
||||
<ace_table alias="Pa-233.71c" awr="231.038" location="1" name="91233.71c" path="293.6K/Pa_233_293.6K.ace" temperature="2.53e-08" zaid="91233"/>
|
||||
<ace_table alias="U-230.71c" awr="228.058" location="1" name="92230.71c" path="293.6K/U_230_293.6K.ace" temperature="2.53e-08" zaid="92230"/>
|
||||
<ace_table alias="U-231.71c" awr="229.052" location="1" name="92231.71c" path="293.6K/U_231_293.6K.ace" temperature="2.53e-08" zaid="92231"/>
|
||||
<ace_table alias="U-232.71c" awr="230.044" location="1" name="92232.71c" path="293.6K/U_232_293.6K.ace" temperature="2.53e-08" zaid="92232"/>
|
||||
<ace_table alias="U-233.71c" awr="231.0377" location="1" name="92233.71c" path="293.6K/U_233_293.6K.ace" temperature="2.53e-08" zaid="92233"/>
|
||||
<ace_table alias="U-234.71c" awr="232.0304" location="1" name="92234.71c" path="293.6K/U_234_293.6K.ace" temperature="2.53e-08" zaid="92234"/>
|
||||
<ace_table alias="U-235.71c" awr="233.0248" location="1" name="92235.71c" path="293.6K/U_235_293.6K.ace" temperature="2.53e-08" zaid="92235"/>
|
||||
<ace_table alias="U-236.71c" awr="234.0178" location="1" name="92236.71c" path="293.6K/U_236_293.6K.ace" temperature="2.53e-08" zaid="92236"/>
|
||||
<ace_table alias="U-237.71c" awr="235.0124" location="1" name="92237.71c" path="293.6K/U_237_293.6K.ace" temperature="2.53e-08" zaid="92237"/>
|
||||
<ace_table alias="U-238.71c" awr="236.0058" location="1" name="92238.71c" path="293.6K/U_238_293.6K.ace" temperature="2.53e-08" zaid="92238"/>
|
||||
<ace_table alias="U-239.71c" awr="237.0007" location="1" name="92239.71c" path="293.6K/U_239_293.6K.ace" temperature="2.53e-08" zaid="92239"/>
|
||||
<ace_table alias="U-240.71c" awr="237.9944" location="1" name="92240.71c" path="293.6K/U_240_293.6K.ace" temperature="2.53e-08" zaid="92240"/>
|
||||
<ace_table alias="U-241.71c" awr="238.9895" location="1" name="92241.71c" path="293.6K/U_241_293.6K.ace" temperature="2.53e-08" zaid="92241"/>
|
||||
<ace_table alias="Np-234.71c" awr="232.032" location="1" name="93234.71c" path="293.6K/Np_234_293.6K.ace" temperature="2.53e-08" zaid="93234"/>
|
||||
<ace_table alias="Np-235.71c" awr="233.025" location="1" name="93235.71c" path="293.6K/Np_235_293.6K.ace" temperature="2.53e-08" zaid="93235"/>
|
||||
<ace_table alias="Np-236.71c" awr="234.019" location="1" name="93236.71c" path="293.6K/Np_236_293.6K.ace" temperature="2.53e-08" zaid="93236"/>
|
||||
<ace_table alias="Np-237.71c" awr="235.0118" location="1" name="93237.71c" path="293.6K/Np_237_293.6K.ace" temperature="2.53e-08" zaid="93237"/>
|
||||
<ace_table alias="Np-238.71c" awr="236.006" location="1" name="93238.71c" path="293.6K/Np_238_293.6K.ace" temperature="2.53e-08" zaid="93238"/>
|
||||
<ace_table alias="Np-239.71c" awr="236.999" location="1" name="93239.71c" path="293.6K/Np_239_293.6K.ace" temperature="2.53e-08" zaid="93239"/>
|
||||
<ace_table alias="Pu-236.71c" awr="234.018" location="1" name="94236.71c" path="293.6K/Pu_236_293.6K.ace" temperature="2.53e-08" zaid="94236"/>
|
||||
<ace_table alias="Pu-237.71c" awr="235.012" location="1" name="94237.71c" path="293.6K/Pu_237_293.6K.ace" temperature="2.53e-08" zaid="94237"/>
|
||||
<ace_table alias="Pu-238.71c" awr="236.0046" location="1" name="94238.71c" path="293.6K/Pu_238_293.6K.ace" temperature="2.53e-08" zaid="94238"/>
|
||||
<ace_table alias="Pu-239.71c" awr="236.9986" location="1" name="94239.71c" path="293.6K/Pu_239_293.6K.ace" temperature="2.53e-08" zaid="94239"/>
|
||||
<ace_table alias="Pu-240.71c" awr="237.9916" location="1" name="94240.71c" path="293.6K/Pu_240_293.6K.ace" temperature="2.53e-08" zaid="94240"/>
|
||||
<ace_table alias="Pu-241.71c" awr="238.978" location="1" name="94241.71c" path="293.6K/Pu_241_293.6K.ace" temperature="2.53e-08" zaid="94241"/>
|
||||
<ace_table alias="Pu-242.71c" awr="239.979" location="1" name="94242.71c" path="293.6K/Pu_242_293.6K.ace" temperature="2.53e-08" zaid="94242"/>
|
||||
<ace_table alias="Pu-243.71c" awr="240.974" location="1" name="94243.71c" path="293.6K/Pu_243_293.6K.ace" temperature="2.53e-08" zaid="94243"/>
|
||||
<ace_table alias="Pu-244.71c" awr="241.967" location="1" name="94244.71c" path="293.6K/Pu_244_293.6K.ace" temperature="2.53e-08" zaid="94244"/>
|
||||
<ace_table alias="Pu-246.71c" awr="243.956" location="1" name="94246.71c" path="293.6K/Pu_246_293.6K.ace" temperature="2.53e-08" zaid="94246"/>
|
||||
<ace_table alias="Am-240.71c" awr="237.993" location="1" name="95240.71c" path="293.6K/Am_240_293.6K.ace" temperature="2.53e-08" zaid="95240"/>
|
||||
<ace_table alias="Am-241.71c" awr="238.986" location="1" name="95241.71c" path="293.6K/Am_241_293.6K.ace" temperature="2.53e-08" zaid="95241"/>
|
||||
<ace_table alias="Am-242.71c" awr="239.9801" location="1" name="95242.71c" path="293.6K/Am_242_293.6K.ace" temperature="2.53e-08" zaid="95242"/>
|
||||
<ace_table alias="Am-242m.71c" awr="239.9801" location="1" metastable="1" name="95642.71c" path="293.6K/Am_242m1_293.6K.ace" temperature="2.53e-08" zaid="95642"/>
|
||||
<ace_table alias="Am-243.71c" awr="240.9734" location="1" name="95243.71c" path="293.6K/Am_243_293.6K.ace" temperature="2.53e-08" zaid="95243"/>
|
||||
<ace_table alias="Am-244.71c" awr="241.968" location="1" name="95244.71c" path="293.6K/Am_244_293.6K.ace" temperature="2.53e-08" zaid="95244"/>
|
||||
<ace_table alias="Am-244m.71c" awr="241.968" location="1" metastable="1" name="95644.71c" path="293.6K/Am_244m1_293.6K.ace" temperature="2.53e-08" zaid="95644"/>
|
||||
<ace_table alias="Cm-240.71c" awr="237.993" location="1" name="96240.71c" path="293.6K/Cm_240_293.6K.ace" temperature="2.53e-08" zaid="96240"/>
|
||||
<ace_table alias="Cm-241.71c" awr="238.987" location="1" name="96241.71c" path="293.6K/Cm_241_293.6K.ace" temperature="2.53e-08" zaid="96241"/>
|
||||
<ace_table alias="Cm-242.71c" awr="239.979" location="1" name="96242.71c" path="293.6K/Cm_242_293.6K.ace" temperature="2.53e-08" zaid="96242"/>
|
||||
<ace_table alias="Cm-243.71c" awr="240.973" location="1" name="96243.71c" path="293.6K/Cm_243_293.6K.ace" temperature="2.53e-08" zaid="96243"/>
|
||||
<ace_table alias="Cm-244.71c" awr="241.966" location="1" name="96244.71c" path="293.6K/Cm_244_293.6K.ace" temperature="2.53e-08" zaid="96244"/>
|
||||
<ace_table alias="Cm-245.71c" awr="242.96" location="1" name="96245.71c" path="293.6K/Cm_245_293.6K.ace" temperature="2.53e-08" zaid="96245"/>
|
||||
<ace_table alias="Cm-246.71c" awr="243.953" location="1" name="96246.71c" path="293.6K/Cm_246_293.6K.ace" temperature="2.53e-08" zaid="96246"/>
|
||||
<ace_table alias="Cm-247.71c" awr="244.948" location="1" name="96247.71c" path="293.6K/Cm_247_293.6K.ace" temperature="2.53e-08" zaid="96247"/>
|
||||
<ace_table alias="Cm-248.71c" awr="245.941" location="1" name="96248.71c" path="293.6K/Cm_248_293.6K.ace" temperature="2.53e-08" zaid="96248"/>
|
||||
<ace_table alias="Cm-249.71c" awr="246.936" location="1" name="96249.71c" path="293.6K/Cm_249_293.6K.ace" temperature="2.53e-08" zaid="96249"/>
|
||||
<ace_table alias="Cm-250.71c" awr="247.93" location="1" name="96250.71c" path="293.6K/Cm_250_293.6K.ace" temperature="2.53e-08" zaid="96250"/>
|
||||
<ace_table alias="Bk-245.71c" awr="242.961" location="1" name="97245.71c" path="293.6K/Bk_245_293.6K.ace" temperature="2.53e-08" zaid="97245"/>
|
||||
<ace_table alias="Bk-246.71c" awr="243.955" location="1" name="97246.71c" path="293.6K/Bk_246_293.6K.ace" temperature="2.53e-08" zaid="97246"/>
|
||||
<ace_table alias="Bk-247.71c" awr="244.948" location="1" name="97247.71c" path="293.6K/Bk_247_293.6K.ace" temperature="2.53e-08" zaid="97247"/>
|
||||
<ace_table alias="Bk-248.71c" awr="245.942" location="1" name="97248.71c" path="293.6K/Bk_248_293.6K.ace" temperature="2.53e-08" zaid="97248"/>
|
||||
<ace_table alias="Bk-249.71c" awr="246.935" location="1" name="97249.71c" path="293.6K/Bk_249_293.6K.ace" temperature="2.53e-08" zaid="97249"/>
|
||||
<ace_table alias="Bk-250.71c" awr="247.93" location="1" name="97250.71c" path="293.6K/Bk_250_293.6K.ace" temperature="2.53e-08" zaid="97250"/>
|
||||
<ace_table alias="Cf-246.71c" awr="243.955" location="1" name="98246.71c" path="293.6K/Cf_246_293.6K.ace" temperature="2.53e-08" zaid="98246"/>
|
||||
<ace_table alias="Cf-248.71c" awr="245.941" location="1" name="98248.71c" path="293.6K/Cf_248_293.6K.ace" temperature="2.53e-08" zaid="98248"/>
|
||||
<ace_table alias="Cf-249.71c" awr="246.935" location="1" name="98249.71c" path="293.6K/Cf_249_293.6K.ace" temperature="2.53e-08" zaid="98249"/>
|
||||
<ace_table alias="Cf-250.71c" awr="247.928" location="1" name="98250.71c" path="293.6K/Cf_250_293.6K.ace" temperature="2.53e-08" zaid="98250"/>
|
||||
<ace_table alias="Cf-251.71c" awr="248.923" location="1" name="98251.71c" path="293.6K/Cf_251_293.6K.ace" temperature="2.53e-08" zaid="98251"/>
|
||||
<ace_table alias="Cf-252.71c" awr="249.916" location="1" name="98252.71c" path="293.6K/Cf_252_293.6K.ace" temperature="2.53e-08" zaid="98252"/>
|
||||
<ace_table alias="Cf-253.71c" awr="250.911" location="1" name="98253.71c" path="293.6K/Cf_253_293.6K.ace" temperature="2.53e-08" zaid="98253"/>
|
||||
<ace_table alias="Cf-254.71c" awr="251.905" location="1" name="98254.71c" path="293.6K/Cf_254_293.6K.ace" temperature="2.53e-08" zaid="98254"/>
|
||||
<ace_table alias="Es-251.71c" awr="248.923" location="1" name="99251.71c" path="293.6K/Es_251_293.6K.ace" temperature="2.53e-08" zaid="99251"/>
|
||||
<ace_table alias="Es-252.71c" awr="249.917" location="1" name="99252.71c" path="293.6K/Es_252_293.6K.ace" temperature="2.53e-08" zaid="99252"/>
|
||||
<ace_table alias="Es-253.71c" awr="250.911" location="1" name="99253.71c" path="293.6K/Es_253_293.6K.ace" temperature="2.53e-08" zaid="99253"/>
|
||||
<ace_table alias="Es-254.71c" awr="251.905" location="1" name="99254.71c" path="293.6K/Es_254_293.6K.ace" temperature="2.53e-08" zaid="99254"/>
|
||||
<ace_table alias="Es-254m.71c" awr="251.905" location="1" metastable="1" name="99654.71c" path="293.6K/Es_254m1_293.6K.ace" temperature="2.53e-08" zaid="99654"/>
|
||||
<ace_table alias="Es-255.71c" awr="252.899" location="1" name="99255.71c" path="293.6K/Es_255_293.6K.ace" temperature="2.53e-08" zaid="99255"/>
|
||||
<ace_table alias="Fm-255.71c" awr="252.899" location="1" name="100255.71c" path="293.6K/Fm_255_293.6K.ace" temperature="2.53e-08" zaid="100255"/>
|
||||
<ace_table alias="H-1.72c" awr="0.999167" location="1" name="1001.72c" path="300K/H_001_300K.ace" temperature="2.585e-08" zaid="1001"/>
|
||||
<ace_table alias="H-2.72c" awr="1.9968" location="1" name="1002.72c" path="300K/H_002_300K.ace" temperature="2.585e-08" zaid="1002"/>
|
||||
<ace_table alias="H-3.72c" awr="2.989596" location="1" name="1003.72c" path="300K/H_003_300K.ace" temperature="2.585e-08" zaid="1003"/>
|
||||
<ace_table alias="He-3.72c" awr="2.989032" location="1" name="2003.72c" path="300K/He_003_300K.ace" temperature="2.585e-08" zaid="2003"/>
|
||||
<ace_table alias="He-4.72c" awr="3.968219" location="1" name="2004.72c" path="300K/He_004_300K.ace" temperature="2.585e-08" zaid="2004"/>
|
||||
<ace_table alias="Li-6.72c" awr="5.9634" location="1" name="3006.72c" path="300K/Li_006_300K.ace" temperature="2.585e-08" zaid="3006"/>
|
||||
<ace_table alias="Li-7.72c" awr="6.955732" location="1" name="3007.72c" path="300K/Li_007_300K.ace" temperature="2.585e-08" zaid="3007"/>
|
||||
<ace_table alias="Be-7.72c" awr="6.9545" location="1" name="4007.72c" path="300K/Be_007_300K.ace" temperature="2.585e-08" zaid="4007"/>
|
||||
<ace_table alias="Be-9.72c" awr="8.93478" location="1" name="4009.72c" path="300K/Be_009_300K.ace" temperature="2.585e-08" zaid="4009"/>
|
||||
<ace_table alias="B-10.72c" awr="9.926921" location="1" name="5010.72c" path="300K/B_010_300K.ace" temperature="2.585e-08" zaid="5010"/>
|
||||
<ace_table alias="B-11.72c" awr="10.9147" location="1" name="5011.72c" path="300K/B_011_300K.ace" temperature="2.585e-08" zaid="5011"/>
|
||||
<ace_table alias="C-Nat.72c" awr="11.898" location="1" name="6000.72c" path="300K/C_000_300K.ace" temperature="2.585e-08" zaid="6000"/>
|
||||
<ace_table alias="N-14.72c" awr="13.88278" location="1" name="7014.72c" path="300K/N_014_300K.ace" temperature="2.585e-08" zaid="7014"/>
|
||||
<ace_table alias="N-15.72c" awr="14.871" location="1" name="7015.72c" path="300K/N_015_300K.ace" temperature="2.585e-08" zaid="7015"/>
|
||||
<ace_table alias="O-16.72c" awr="15.85751" location="1" name="8016.72c" path="300K/O_016_300K.ace" temperature="2.585e-08" zaid="8016"/>
|
||||
<ace_table alias="O-17.72c" awr="16.8531" location="1" name="8017.72c" path="300K/O_017_300K.ace" temperature="2.585e-08" zaid="8017"/>
|
||||
<ace_table alias="F-19.72c" awr="18.835" location="1" name="9019.72c" path="300K/F_019_300K.ace" temperature="2.585e-08" zaid="9019"/>
|
||||
<ace_table alias="Na-22.72c" awr="21.8055" location="1" name="11022.72c" path="300K/Na_022_300K.ace" temperature="2.585e-08" zaid="11022"/>
|
||||
<ace_table alias="Na-23.72c" awr="22.792" location="1" name="11023.72c" path="300K/Na_023_300K.ace" temperature="2.585e-08" zaid="11023"/>
|
||||
<ace_table alias="Mg-24.72c" awr="23.779" location="1" name="12024.72c" path="300K/Mg_024_300K.ace" temperature="2.585e-08" zaid="12024"/>
|
||||
<ace_table alias="Mg-25.72c" awr="24.7712" location="1" name="12025.72c" path="300K/Mg_025_300K.ace" temperature="2.585e-08" zaid="12025"/>
|
||||
<ace_table alias="Mg-26.72c" awr="25.7594" location="1" name="12026.72c" path="300K/Mg_026_300K.ace" temperature="2.585e-08" zaid="12026"/>
|
||||
<ace_table alias="Al-27.72c" awr="26.74975" location="1" name="13027.72c" path="300K/Al_027_300K.ace" temperature="2.585e-08" zaid="13027"/>
|
||||
<ace_table alias="Si-28.72c" awr="27.737" location="1" name="14028.72c" path="300K/Si_028_300K.ace" temperature="2.585e-08" zaid="14028"/>
|
||||
<ace_table alias="Si-29.72c" awr="28.728" location="1" name="14029.72c" path="300K/Si_029_300K.ace" temperature="2.585e-08" zaid="14029"/>
|
||||
<ace_table alias="Si-30.72c" awr="29.716" location="1" name="14030.72c" path="300K/Si_030_300K.ace" temperature="2.585e-08" zaid="14030"/>
|
||||
<ace_table alias="P-31.72c" awr="30.708" location="1" name="15031.72c" path="300K/P_031_300K.ace" temperature="2.585e-08" zaid="15031"/>
|
||||
<ace_table alias="S-32.72c" awr="31.6973" location="1" name="16032.72c" path="300K/S_032_300K.ace" temperature="2.585e-08" zaid="16032"/>
|
||||
<ace_table alias="S-33.72c" awr="32.6878" location="1" name="16033.72c" path="300K/S_033_300K.ace" temperature="2.585e-08" zaid="16033"/>
|
||||
<ace_table alias="S-34.72c" awr="33.6762" location="1" name="16034.72c" path="300K/S_034_300K.ace" temperature="2.585e-08" zaid="16034"/>
|
||||
<ace_table alias="S-36.72c" awr="35.658" location="1" name="16036.72c" path="300K/S_036_300K.ace" temperature="2.585e-08" zaid="16036"/>
|
||||
<ace_table alias="Cl-35.72c" awr="34.66845" location="1" name="17035.72c" path="300K/Cl_035_300K.ace" temperature="2.585e-08" zaid="17035"/>
|
||||
<ace_table alias="Cl-37.72c" awr="36.6483" location="1" name="17037.72c" path="300K/Cl_037_300K.ace" temperature="2.585e-08" zaid="17037"/>
|
||||
<ace_table alias="Ar-36.72c" awr="35.6585" location="1" name="18036.72c" path="300K/Ar_036_300K.ace" temperature="2.585e-08" zaid="18036"/>
|
||||
<ace_table alias="Ar-38.72c" awr="37.6366" location="1" name="18038.72c" path="300K/Ar_038_300K.ace" temperature="2.585e-08" zaid="18038"/>
|
||||
<ace_table alias="Ar-40.72c" awr="39.6191" location="1" name="18040.72c" path="300K/Ar_040_300K.ace" temperature="2.585e-08" zaid="18040"/>
|
||||
<ace_table alias="K-39.72c" awr="38.6293" location="1" name="19039.72c" path="300K/K_039_300K.ace" temperature="2.585e-08" zaid="19039"/>
|
||||
<ace_table alias="K-40.72c" awr="39.6207" location="1" name="19040.72c" path="300K/K_040_300K.ace" temperature="2.585e-08" zaid="19040"/>
|
||||
<ace_table alias="K-41.72c" awr="40.6101" location="1" name="19041.72c" path="300K/K_041_300K.ace" temperature="2.585e-08" zaid="19041"/>
|
||||
<ace_table alias="Ca-40.72c" awr="39.6193" location="1" name="20040.72c" path="300K/Ca_040_300K.ace" temperature="2.585e-08" zaid="20040"/>
|
||||
<ace_table alias="Ca-42.72c" awr="41.59818" location="1" name="20042.72c" path="300K/Ca_042_300K.ace" temperature="2.585e-08" zaid="20042"/>
|
||||
<ace_table alias="Ca-43.72c" awr="42.58973" location="1" name="20043.72c" path="300K/Ca_043_300K.ace" temperature="2.585e-08" zaid="20043"/>
|
||||
<ace_table alias="Ca-44.72c" awr="43.57788" location="1" name="20044.72c" path="300K/Ca_044_300K.ace" temperature="2.585e-08" zaid="20044"/>
|
||||
<ace_table alias="Ca-46.72c" awr="45.55893" location="1" name="20046.72c" path="300K/Ca_046_300K.ace" temperature="2.585e-08" zaid="20046"/>
|
||||
<ace_table alias="Ca-48.72c" awr="47.5406" location="1" name="20048.72c" path="300K/Ca_048_300K.ace" temperature="2.585e-08" zaid="20048"/>
|
||||
<ace_table alias="Sc-45.72c" awr="44.5679" location="1" name="21045.72c" path="300K/Sc_045_300K.ace" temperature="2.585e-08" zaid="21045"/>
|
||||
<ace_table alias="Ti-46.72c" awr="45.5579" location="1" name="22046.72c" path="300K/Ti_046_300K.ace" temperature="2.585e-08" zaid="22046"/>
|
||||
<ace_table alias="Ti-47.72c" awr="46.5484" location="1" name="22047.72c" path="300K/Ti_047_300K.ace" temperature="2.585e-08" zaid="22047"/>
|
||||
<ace_table alias="Ti-48.72c" awr="47.5361" location="1" name="22048.72c" path="300K/Ti_048_300K.ace" temperature="2.585e-08" zaid="22048"/>
|
||||
<ace_table alias="Ti-49.72c" awr="48.5274" location="1" name="22049.72c" path="300K/Ti_049_300K.ace" temperature="2.585e-08" zaid="22049"/>
|
||||
<ace_table alias="Ti-50.72c" awr="49.5157" location="1" name="22050.72c" path="300K/Ti_050_300K.ace" temperature="2.585e-08" zaid="22050"/>
|
||||
<ace_table alias="V-50.72c" awr="49.5181" location="1" name="23050.72c" path="300K/V_050_300K.ace" temperature="2.585e-08" zaid="23050"/>
|
||||
<ace_table alias="V-51.72c" awr="50.5063" location="1" name="23051.72c" path="300K/V_051_300K.ace" temperature="2.585e-08" zaid="23051"/>
|
||||
<ace_table alias="Cr-50.72c" awr="49.517" location="1" name="24050.72c" path="300K/Cr_050_300K.ace" temperature="2.585e-08" zaid="24050"/>
|
||||
<ace_table alias="Cr-52.72c" awr="51.494" location="1" name="24052.72c" path="300K/Cr_052_300K.ace" temperature="2.585e-08" zaid="24052"/>
|
||||
<ace_table alias="Cr-53.72c" awr="52.486" location="1" name="24053.72c" path="300K/Cr_053_300K.ace" temperature="2.585e-08" zaid="24053"/>
|
||||
<ace_table alias="Cr-54.72c" awr="53.476" location="1" name="24054.72c" path="300K/Cr_054_300K.ace" temperature="2.585e-08" zaid="24054"/>
|
||||
<ace_table alias="Mn-55.72c" awr="54.4661" location="1" name="25055.72c" path="300K/Mn_055_300K.ace" temperature="2.585e-08" zaid="25055"/>
|
||||
<ace_table alias="Fe-54.72c" awr="53.476" location="1" name="26054.72c" path="300K/Fe_054_300K.ace" temperature="2.585e-08" zaid="26054"/>
|
||||
<ace_table alias="Fe-56.72c" awr="55.454" location="1" name="26056.72c" path="300K/Fe_056_300K.ace" temperature="2.585e-08" zaid="26056"/>
|
||||
<ace_table alias="Fe-57.72c" awr="56.446" location="1" name="26057.72c" path="300K/Fe_057_300K.ace" temperature="2.585e-08" zaid="26057"/>
|
||||
<ace_table alias="Fe-58.72c" awr="57.436" location="1" name="26058.72c" path="300K/Fe_058_300K.ace" temperature="2.585e-08" zaid="26058"/>
|
||||
<ace_table alias="Co-58.72c" awr="57.4381" location="1" name="27058.72c" path="300K/Co_058_300K.ace" temperature="2.585e-08" zaid="27058"/>
|
||||
<ace_table alias="Co-58m.72c" awr="57.4381" location="1" metastable="1" name="27458.72c" path="300K/Co_058m1_300K.ace" temperature="2.585e-08" zaid="27458"/>
|
||||
<ace_table alias="Co-59.72c" awr="58.4269" location="1" name="27059.72c" path="300K/Co_059_300K.ace" temperature="2.585e-08" zaid="27059"/>
|
||||
<ace_table alias="Ni-58.72c" awr="57.438" location="1" name="28058.72c" path="300K/Ni_058_300K.ace" temperature="2.585e-08" zaid="28058"/>
|
||||
<ace_table alias="Ni-59.72c" awr="58.4281" location="1" name="28059.72c" path="300K/Ni_059_300K.ace" temperature="2.585e-08" zaid="28059"/>
|
||||
<ace_table alias="Ni-60.72c" awr="59.416" location="1" name="28060.72c" path="300K/Ni_060_300K.ace" temperature="2.585e-08" zaid="28060"/>
|
||||
<ace_table alias="Ni-61.72c" awr="60.408" location="1" name="28061.72c" path="300K/Ni_061_300K.ace" temperature="2.585e-08" zaid="28061"/>
|
||||
<ace_table alias="Ni-62.72c" awr="61.396" location="1" name="28062.72c" path="300K/Ni_062_300K.ace" temperature="2.585e-08" zaid="28062"/>
|
||||
<ace_table alias="Ni-64.72c" awr="63.379" location="1" name="28064.72c" path="300K/Ni_064_300K.ace" temperature="2.585e-08" zaid="28064"/>
|
||||
<ace_table alias="Cu-63.72c" awr="62.389" location="1" name="29063.72c" path="300K/Cu_063_300K.ace" temperature="2.585e-08" zaid="29063"/>
|
||||
<ace_table alias="Cu-65.72c" awr="64.37" location="1" name="29065.72c" path="300K/Cu_065_300K.ace" temperature="2.585e-08" zaid="29065"/>
|
||||
<ace_table alias="Zn-64.72c" awr="63.38" location="1" name="30064.72c" path="300K/Zn_064_300K.ace" temperature="2.585e-08" zaid="30064"/>
|
||||
<ace_table alias="Zn-65.72c" awr="64.3715" location="1" name="30065.72c" path="300K/Zn_065_300K.ace" temperature="2.585e-08" zaid="30065"/>
|
||||
<ace_table alias="Zn-66.72c" awr="65.3597" location="1" name="30066.72c" path="300K/Zn_066_300K.ace" temperature="2.585e-08" zaid="30066"/>
|
||||
<ace_table alias="Zn-67.72c" awr="66.3522" location="1" name="30067.72c" path="300K/Zn_067_300K.ace" temperature="2.585e-08" zaid="30067"/>
|
||||
<ace_table alias="Zn-68.72c" awr="67.3413" location="1" name="30068.72c" path="300K/Zn_068_300K.ace" temperature="2.585e-08" zaid="30068"/>
|
||||
<ace_table alias="Zn-70.72c" awr="69.3246" location="1" name="30070.72c" path="300K/Zn_070_300K.ace" temperature="2.585e-08" zaid="30070"/>
|
||||
<ace_table alias="Ga-69.72c" awr="68.3336" location="1" name="31069.72c" path="300K/Ga_069_300K.ace" temperature="2.585e-08" zaid="31069"/>
|
||||
<ace_table alias="Ga-71.72c" awr="70.315" location="1" name="31071.72c" path="300K/Ga_071_300K.ace" temperature="2.585e-08" zaid="31071"/>
|
||||
<ace_table alias="Ge-70.72c" awr="69.3236" location="1" name="32070.72c" path="300K/Ge_070_300K.ace" temperature="2.585e-08" zaid="32070"/>
|
||||
<ace_table alias="Ge-72.72c" awr="71.3042" location="1" name="32072.72c" path="300K/Ge_072_300K.ace" temperature="2.585e-08" zaid="32072"/>
|
||||
<ace_table alias="Ge-73.72c" awr="72.297" location="1" name="32073.72c" path="300K/Ge_073_300K.ace" temperature="2.585e-08" zaid="32073"/>
|
||||
<ace_table alias="Ge-74.72c" awr="73.2862" location="1" name="32074.72c" path="300K/Ge_074_300K.ace" temperature="2.585e-08" zaid="32074"/>
|
||||
<ace_table alias="Ge-76.72c" awr="75.2692" location="1" name="32076.72c" path="300K/Ge_076_300K.ace" temperature="2.585e-08" zaid="32076"/>
|
||||
<ace_table alias="As-74.72c" awr="73.2889" location="1" name="33074.72c" path="300K/As_074_300K.ace" temperature="2.585e-08" zaid="33074"/>
|
||||
<ace_table alias="As-75.72c" awr="74.278" location="1" name="33075.72c" path="300K/As_075_300K.ace" temperature="2.585e-08" zaid="33075"/>
|
||||
<ace_table alias="Se-74.72c" awr="73.2875" location="1" name="34074.72c" path="300K/Se_074_300K.ace" temperature="2.585e-08" zaid="34074"/>
|
||||
<ace_table alias="Se-76.72c" awr="75.267" location="1" name="34076.72c" path="300K/Se_076_300K.ace" temperature="2.585e-08" zaid="34076"/>
|
||||
<ace_table alias="Se-77.72c" awr="76.2591" location="1" name="34077.72c" path="300K/Se_077_300K.ace" temperature="2.585e-08" zaid="34077"/>
|
||||
<ace_table alias="Se-78.72c" awr="77.2479" location="1" name="34078.72c" path="300K/Se_078_300K.ace" temperature="2.585e-08" zaid="34078"/>
|
||||
<ace_table alias="Se-79.72c" awr="78.2405" location="1" name="34079.72c" path="300K/Se_079_300K.ace" temperature="2.585e-08" zaid="34079"/>
|
||||
<ace_table alias="Se-80.72c" awr="79.23" location="1" name="34080.72c" path="300K/Se_080_300K.ace" temperature="2.585e-08" zaid="34080"/>
|
||||
<ace_table alias="Se-82.72c" awr="81.213" location="1" name="34082.72c" path="300K/Se_082_300K.ace" temperature="2.585e-08" zaid="34082"/>
|
||||
<ace_table alias="Br-79.72c" awr="78.2403" location="1" name="35079.72c" path="300K/Br_079_300K.ace" temperature="2.585e-08" zaid="35079"/>
|
||||
<ace_table alias="Br-81.72c" awr="80.2212" location="1" name="35081.72c" path="300K/Br_081_300K.ace" temperature="2.585e-08" zaid="35081"/>
|
||||
<ace_table alias="Kr-78.72c" awr="77.25099" location="1" name="36078.72c" path="300K/Kr_078_300K.ace" temperature="2.585e-08" zaid="36078"/>
|
||||
<ace_table alias="Kr-80.72c" awr="79.2299" location="1" name="36080.72c" path="300K/Kr_080_300K.ace" temperature="2.585e-08" zaid="36080"/>
|
||||
<ace_table alias="Kr-82.72c" awr="81.2098" location="1" name="36082.72c" path="300K/Kr_082_300K.ace" temperature="2.585e-08" zaid="36082"/>
|
||||
<ace_table alias="Kr-83.72c" awr="82.202" location="1" name="36083.72c" path="300K/Kr_083_300K.ace" temperature="2.585e-08" zaid="36083"/>
|
||||
<ace_table alias="Kr-84.72c" awr="83.1907" location="1" name="36084.72c" path="300K/Kr_084_300K.ace" temperature="2.585e-08" zaid="36084"/>
|
||||
<ace_table alias="Kr-85.72c" awr="84.1831" location="1" name="36085.72c" path="300K/Kr_085_300K.ace" temperature="2.585e-08" zaid="36085"/>
|
||||
<ace_table alias="Kr-86.72c" awr="85.1726" location="1" name="36086.72c" path="300K/Kr_086_300K.ace" temperature="2.585e-08" zaid="36086"/>
|
||||
<ace_table alias="Rb-85.72c" awr="84.1824" location="1" name="37085.72c" path="300K/Rb_085_300K.ace" temperature="2.585e-08" zaid="37085"/>
|
||||
<ace_table alias="Rb-86.72c" awr="85.1731" location="1" name="37086.72c" path="300K/Rb_086_300K.ace" temperature="2.585e-08" zaid="37086"/>
|
||||
<ace_table alias="Rb-87.72c" awr="86.1626" location="1" name="37087.72c" path="300K/Rb_087_300K.ace" temperature="2.585e-08" zaid="37087"/>
|
||||
<ace_table alias="Sr-84.72c" awr="83.1926" location="1" name="38084.72c" path="300K/Sr_084_300K.ace" temperature="2.585e-08" zaid="38084"/>
|
||||
<ace_table alias="Sr-86.72c" awr="85.1713" location="1" name="38086.72c" path="300K/Sr_086_300K.ace" temperature="2.585e-08" zaid="38086"/>
|
||||
<ace_table alias="Sr-87.72c" awr="86.1623" location="1" name="38087.72c" path="300K/Sr_087_300K.ace" temperature="2.585e-08" zaid="38087"/>
|
||||
<ace_table alias="Sr-88.72c" awr="87.15" location="1" name="38088.72c" path="300K/Sr_088_300K.ace" temperature="2.585e-08" zaid="38088"/>
|
||||
<ace_table alias="Sr-89.72c" awr="88.144" location="1" name="38089.72c" path="300K/Sr_089_300K.ace" temperature="2.585e-08" zaid="38089"/>
|
||||
<ace_table alias="Sr-90.72c" awr="89.1353" location="1" name="38090.72c" path="300K/Sr_090_300K.ace" temperature="2.585e-08" zaid="38090"/>
|
||||
<ace_table alias="Y-89.72c" awr="88.1421" location="1" name="39089.72c" path="300K/Y_089_300K.ace" temperature="2.585e-08" zaid="39089"/>
|
||||
<ace_table alias="Y-90.72c" awr="89.1348" location="1" name="39090.72c" path="300K/Y_090_300K.ace" temperature="2.585e-08" zaid="39090"/>
|
||||
<ace_table alias="Y-91.72c" awr="90.1264" location="1" name="39091.72c" path="300K/Y_091_300K.ace" temperature="2.585e-08" zaid="39091"/>
|
||||
<ace_table alias="Zr-90.72c" awr="89.1324" location="1" name="40090.72c" path="300K/Zr_090_300K.ace" temperature="2.585e-08" zaid="40090"/>
|
||||
<ace_table alias="Zr-91.72c" awr="90.1247" location="1" name="40091.72c" path="300K/Zr_091_300K.ace" temperature="2.585e-08" zaid="40091"/>
|
||||
<ace_table alias="Zr-92.72c" awr="91.1155" location="1" name="40092.72c" path="300K/Zr_092_300K.ace" temperature="2.585e-08" zaid="40092"/>
|
||||
<ace_table alias="Zr-93.72c" awr="92.1084" location="1" name="40093.72c" path="300K/Zr_093_300K.ace" temperature="2.585e-08" zaid="40093"/>
|
||||
<ace_table alias="Zr-94.72c" awr="93.0996" location="1" name="40094.72c" path="300K/Zr_094_300K.ace" temperature="2.585e-08" zaid="40094"/>
|
||||
<ace_table alias="Zr-95.72c" awr="94.0927" location="1" name="40095.72c" path="300K/Zr_095_300K.ace" temperature="2.585e-08" zaid="40095"/>
|
||||
<ace_table alias="Zr-96.72c" awr="95.0844" location="1" name="40096.72c" path="300K/Zr_096_300K.ace" temperature="2.585e-08" zaid="40096"/>
|
||||
<ace_table alias="Nb-93.72c" awr="92.1051" location="1" name="41093.72c" path="300K/Nb_093_300K.ace" temperature="2.585e-08" zaid="41093"/>
|
||||
<ace_table alias="Nb-94.72c" awr="93.1006" location="1" name="41094.72c" path="300K/Nb_094_300K.ace" temperature="2.585e-08" zaid="41094"/>
|
||||
<ace_table alias="Nb-95.72c" awr="94.0915" location="1" name="41095.72c" path="300K/Nb_095_300K.ace" temperature="2.585e-08" zaid="41095"/>
|
||||
<ace_table alias="Mo-92.72c" awr="91.1173" location="1" name="42092.72c" path="300K/Mo_092_300K.ace" temperature="2.585e-08" zaid="42092"/>
|
||||
<ace_table alias="Mo-94.72c" awr="93.0984" location="1" name="42094.72c" path="300K/Mo_094_300K.ace" temperature="2.585e-08" zaid="42094"/>
|
||||
<ace_table alias="Mo-95.72c" awr="94.0906" location="1" name="42095.72c" path="300K/Mo_095_300K.ace" temperature="2.585e-08" zaid="42095"/>
|
||||
<ace_table alias="Mo-96.72c" awr="95.0808" location="1" name="42096.72c" path="300K/Mo_096_300K.ace" temperature="2.585e-08" zaid="42096"/>
|
||||
<ace_table alias="Mo-97.72c" awr="96.0735" location="1" name="42097.72c" path="300K/Mo_097_300K.ace" temperature="2.585e-08" zaid="42097"/>
|
||||
<ace_table alias="Mo-98.72c" awr="97.0643" location="1" name="42098.72c" path="300K/Mo_098_300K.ace" temperature="2.585e-08" zaid="42098"/>
|
||||
<ace_table alias="Mo-99.72c" awr="98.058" location="1" name="42099.72c" path="300K/Mo_099_300K.ace" temperature="2.585e-08" zaid="42099"/>
|
||||
<ace_table alias="Mo-100.72c" awr="99.049" location="1" name="42100.72c" path="300K/Mo_100_300K.ace" temperature="2.585e-08" zaid="42100"/>
|
||||
<ace_table alias="Tc-99.72c" awr="98.0566" location="1" name="43099.72c" path="300K/Tc_099_300K.ace" temperature="2.585e-08" zaid="43099"/>
|
||||
<ace_table alias="Ru-96.72c" awr="95.0837" location="1" name="44096.72c" path="300K/Ru_096_300K.ace" temperature="2.585e-08" zaid="44096"/>
|
||||
<ace_table alias="Ru-98.72c" awr="97.0642" location="1" name="44098.72c" path="300K/Ru_098_300K.ace" temperature="2.585e-08" zaid="44098"/>
|
||||
<ace_table alias="Ru-99.72c" awr="98.0562" location="1" name="44099.72c" path="300K/Ru_099_300K.ace" temperature="2.585e-08" zaid="44099"/>
|
||||
<ace_table alias="Ru-100.72c" awr="99.046" location="1" name="44100.72c" path="300K/Ru_100_300K.ace" temperature="2.585e-08" zaid="44100"/>
|
||||
<ace_table alias="Ru-101.72c" awr="100.039" location="1" name="44101.72c" path="300K/Ru_101_300K.ace" temperature="2.585e-08" zaid="44101"/>
|
||||
<ace_table alias="Ru-102.72c" awr="101.03" location="1" name="44102.72c" path="300K/Ru_102_300K.ace" temperature="2.585e-08" zaid="44102"/>
|
||||
<ace_table alias="Ru-103.72c" awr="102.02" location="1" name="44103.72c" path="300K/Ru_103_300K.ace" temperature="2.585e-08" zaid="44103"/>
|
||||
<ace_table alias="Ru-104.72c" awr="103.01" location="1" name="44104.72c" path="300K/Ru_104_300K.ace" temperature="2.585e-08" zaid="44104"/>
|
||||
<ace_table alias="Ru-105.72c" awr="104.01" location="1" name="44105.72c" path="300K/Ru_105_300K.ace" temperature="2.585e-08" zaid="44105"/>
|
||||
<ace_table alias="Ru-106.72c" awr="104.997" location="1" name="44106.72c" path="300K/Ru_106_300K.ace" temperature="2.585e-08" zaid="44106"/>
|
||||
<ace_table alias="Rh-103.72c" awr="102.021" location="1" name="45103.72c" path="300K/Rh_103_300K.ace" temperature="2.585e-08" zaid="45103"/>
|
||||
<ace_table alias="Rh-105.72c" awr="104.0" location="1" name="45105.72c" path="300K/Rh_105_300K.ace" temperature="2.585e-08" zaid="45105"/>
|
||||
<ace_table alias="Pd-102.72c" awr="101.0302" location="1" name="46102.72c" path="300K/Pd_102_300K.ace" temperature="2.585e-08" zaid="46102"/>
|
||||
<ace_table alias="Pd-104.72c" awr="103.0114" location="1" name="46104.72c" path="300K/Pd_104_300K.ace" temperature="2.585e-08" zaid="46104"/>
|
||||
<ace_table alias="Pd-105.72c" awr="104.004" location="1" name="46105.72c" path="300K/Pd_105_300K.ace" temperature="2.585e-08" zaid="46105"/>
|
||||
<ace_table alias="Pd-106.72c" awr="104.9937" location="1" name="46106.72c" path="300K/Pd_106_300K.ace" temperature="2.585e-08" zaid="46106"/>
|
||||
<ace_table alias="Pd-107.72c" awr="105.987" location="1" name="46107.72c" path="300K/Pd_107_300K.ace" temperature="2.585e-08" zaid="46107"/>
|
||||
<ace_table alias="Pd-108.72c" awr="106.9769" location="1" name="46108.72c" path="300K/Pd_108_300K.ace" temperature="2.585e-08" zaid="46108"/>
|
||||
<ace_table alias="Pd-110.72c" awr="108.961" location="1" name="46110.72c" path="300K/Pd_110_300K.ace" temperature="2.585e-08" zaid="46110"/>
|
||||
<ace_table alias="Ag-107.72c" awr="105.987" location="1" name="47107.72c" path="300K/Ag_107_300K.ace" temperature="2.585e-08" zaid="47107"/>
|
||||
<ace_table alias="Ag-109.72c" awr="107.969" location="1" name="47109.72c" path="300K/Ag_109_300K.ace" temperature="2.585e-08" zaid="47109"/>
|
||||
<ace_table alias="Ag-110m.72c" awr="108.962" location="1" metastable="1" name="47510.72c" path="300K/Ag_110m1_300K.ace" temperature="2.585e-08" zaid="47510"/>
|
||||
<ace_table alias="Ag-111.72c" awr="109.953" location="1" name="47111.72c" path="300K/Ag_111_300K.ace" temperature="2.585e-08" zaid="47111"/>
|
||||
<ace_table alias="Cd-106.72c" awr="104.996" location="1" name="48106.72c" path="300K/Cd_106_300K.ace" temperature="2.585e-08" zaid="48106"/>
|
||||
<ace_table alias="Cd-108.72c" awr="106.977" location="1" name="48108.72c" path="300K/Cd_108_300K.ace" temperature="2.585e-08" zaid="48108"/>
|
||||
<ace_table alias="Cd-110.72c" awr="108.959" location="1" name="48110.72c" path="300K/Cd_110_300K.ace" temperature="2.585e-08" zaid="48110"/>
|
||||
<ace_table alias="Cd-111.72c" awr="109.951" location="1" name="48111.72c" path="300K/Cd_111_300K.ace" temperature="2.585e-08" zaid="48111"/>
|
||||
<ace_table alias="Cd-112.72c" awr="110.942" location="1" name="48112.72c" path="300K/Cd_112_300K.ace" temperature="2.585e-08" zaid="48112"/>
|
||||
<ace_table alias="Cd-113.72c" awr="111.93" location="1" name="48113.72c" path="300K/Cd_113_300K.ace" temperature="2.585e-08" zaid="48113"/>
|
||||
<ace_table alias="Cd-114.72c" awr="112.925" location="1" name="48114.72c" path="300K/Cd_114_300K.ace" temperature="2.585e-08" zaid="48114"/>
|
||||
<ace_table alias="Cd-115m.72c" awr="113.918" location="1" metastable="1" name="48515.72c" path="300K/Cd_115m1_300K.ace" temperature="2.585e-08" zaid="48515"/>
|
||||
<ace_table alias="Cd-116.72c" awr="114.909" location="1" name="48116.72c" path="300K/Cd_116_300K.ace" temperature="2.585e-08" zaid="48116"/>
|
||||
<ace_table alias="In-113.72c" awr="111.934" location="1" name="49113.72c" path="300K/In_113_300K.ace" temperature="2.585e-08" zaid="49113"/>
|
||||
<ace_table alias="In-115.72c" awr="113.917" location="1" name="49115.72c" path="300K/In_115_300K.ace" temperature="2.585e-08" zaid="49115"/>
|
||||
<ace_table alias="Sn-112.72c" awr="110.944" location="1" name="50112.72c" path="300K/Sn_112_300K.ace" temperature="2.585e-08" zaid="50112"/>
|
||||
<ace_table alias="Sn-113.72c" awr="111.935" location="1" name="50113.72c" path="300K/Sn_113_300K.ace" temperature="2.585e-08" zaid="50113"/>
|
||||
<ace_table alias="Sn-114.72c" awr="112.925" location="1" name="50114.72c" path="300K/Sn_114_300K.ace" temperature="2.585e-08" zaid="50114"/>
|
||||
<ace_table alias="Sn-115.72c" awr="113.916" location="1" name="50115.72c" path="300K/Sn_115_300K.ace" temperature="2.585e-08" zaid="50115"/>
|
||||
<ace_table alias="Sn-116.72c" awr="114.906" location="1" name="50116.72c" path="300K/Sn_116_300K.ace" temperature="2.585e-08" zaid="50116"/>
|
||||
<ace_table alias="Sn-117.72c" awr="115.899" location="1" name="50117.72c" path="300K/Sn_117_300K.ace" temperature="2.585e-08" zaid="50117"/>
|
||||
<ace_table alias="Sn-118.72c" awr="116.889" location="1" name="50118.72c" path="300K/Sn_118_300K.ace" temperature="2.585e-08" zaid="50118"/>
|
||||
<ace_table alias="Sn-119.72c" awr="117.882" location="1" name="50119.72c" path="300K/Sn_119_300K.ace" temperature="2.585e-08" zaid="50119"/>
|
||||
<ace_table alias="Sn-120.72c" awr="118.872" location="1" name="50120.72c" path="300K/Sn_120_300K.ace" temperature="2.585e-08" zaid="50120"/>
|
||||
<ace_table alias="Sn-122.72c" awr="120.856" location="1" name="50122.72c" path="300K/Sn_122_300K.ace" temperature="2.585e-08" zaid="50122"/>
|
||||
<ace_table alias="Sn-123.72c" awr="121.85" location="1" name="50123.72c" path="300K/Sn_123_300K.ace" temperature="2.585e-08" zaid="50123"/>
|
||||
<ace_table alias="Sn-124.72c" awr="122.841" location="1" name="50124.72c" path="300K/Sn_124_300K.ace" temperature="2.585e-08" zaid="50124"/>
|
||||
<ace_table alias="Sn-125.72c" awr="123.835" location="1" name="50125.72c" path="300K/Sn_125_300K.ace" temperature="2.585e-08" zaid="50125"/>
|
||||
<ace_table alias="Sn-126.72c" awr="124.826" location="1" name="50126.72c" path="300K/Sn_126_300K.ace" temperature="2.585e-08" zaid="50126"/>
|
||||
<ace_table alias="Sb-121.72c" awr="119.87" location="1" name="51121.72c" path="300K/Sb_121_300K.ace" temperature="2.585e-08" zaid="51121"/>
|
||||
<ace_table alias="Sb-123.72c" awr="121.85" location="1" name="51123.72c" path="300K/Sb_123_300K.ace" temperature="2.585e-08" zaid="51123"/>
|
||||
<ace_table alias="Sb-124.72c" awr="122.842" location="1" name="51124.72c" path="300K/Sb_124_300K.ace" temperature="2.585e-08" zaid="51124"/>
|
||||
<ace_table alias="Sb-125.72c" awr="123.832" location="1" name="51125.72c" path="300K/Sb_125_300K.ace" temperature="2.585e-08" zaid="51125"/>
|
||||
<ace_table alias="Sb-126.72c" awr="124.826" location="1" name="51126.72c" path="300K/Sb_126_300K.ace" temperature="2.585e-08" zaid="51126"/>
|
||||
<ace_table alias="Te-120.72c" awr="118.874" location="1" name="52120.72c" path="300K/Te_120_300K.ace" temperature="2.585e-08" zaid="52120"/>
|
||||
<ace_table alias="Te-122.72c" awr="120.856" location="1" name="52122.72c" path="300K/Te_122_300K.ace" temperature="2.585e-08" zaid="52122"/>
|
||||
<ace_table alias="Te-123.72c" awr="121.848" location="1" name="52123.72c" path="300K/Te_123_300K.ace" temperature="2.585e-08" zaid="52123"/>
|
||||
<ace_table alias="Te-124.72c" awr="122.839" location="1" name="52124.72c" path="300K/Te_124_300K.ace" temperature="2.585e-08" zaid="52124"/>
|
||||
<ace_table alias="Te-125.72c" awr="123.831" location="1" name="52125.72c" path="300K/Te_125_300K.ace" temperature="2.585e-08" zaid="52125"/>
|
||||
<ace_table alias="Te-126.72c" awr="124.821" location="1" name="52126.72c" path="300K/Te_126_300K.ace" temperature="2.585e-08" zaid="52126"/>
|
||||
<ace_table alias="Te-127m.72c" awr="125.815" location="1" metastable="1" name="52527.72c" path="300K/Te_127m1_300K.ace" temperature="2.585e-08" zaid="52526"/>
|
||||
<ace_table alias="Te-128.72c" awr="126.805" location="1" name="52128.72c" path="300K/Te_128_300K.ace" temperature="2.585e-08" zaid="52128"/>
|
||||
<ace_table alias="Te-129m.72c" awr="127.8" location="1" metastable="1" name="52529.72c" path="300K/Te_129m1_300K.ace" temperature="2.585e-08" zaid="52529"/>
|
||||
<ace_table alias="Te-130.72c" awr="128.79" location="1" name="52130.72c" path="300K/Te_130_300K.ace" temperature="2.585e-08" zaid="52130"/>
|
||||
<ace_table alias="Te-132.72c" awr="130.775" location="1" name="52132.72c" path="300K/Te_132_300K.ace" temperature="2.585e-08" zaid="52132"/>
|
||||
<ace_table alias="I-127.72c" awr="125.8143" location="1" name="53127.72c" path="300K/I_127_300K.ace" temperature="2.585e-08" zaid="53127"/>
|
||||
<ace_table alias="I-129.72c" awr="127.798" location="1" name="53129.72c" path="300K/I_129_300K.ace" temperature="2.585e-08" zaid="53129"/>
|
||||
<ace_table alias="I-130.72c" awr="128.791" location="1" name="53130.72c" path="300K/I_130_300K.ace" temperature="2.585e-08" zaid="53130"/>
|
||||
<ace_table alias="I-131.72c" awr="129.781" location="1" name="53131.72c" path="300K/I_131_300K.ace" temperature="2.585e-08" zaid="53131"/>
|
||||
<ace_table alias="I-135.72c" awr="133.75" location="1" name="53135.72c" path="300K/I_135_300K.ace" temperature="2.585e-08" zaid="53135"/>
|
||||
<ace_table alias="Xe-123.72c" awr="121.8526" location="1" name="54123.72c" path="300K/Xe_123_300K.ace" temperature="2.585e-08" zaid="54123"/>
|
||||
<ace_table alias="Xe-124.72c" awr="122.8415" location="1" name="54124.72c" path="300K/Xe_124_300K.ace" temperature="2.585e-08" zaid="54124"/>
|
||||
<ace_table alias="Xe-126.72c" awr="124.822" location="1" name="54126.72c" path="300K/Xe_126_300K.ace" temperature="2.585e-08" zaid="54126"/>
|
||||
<ace_table alias="Xe-128.72c" awr="126.804" location="1" name="54128.72c" path="300K/Xe_128_300K.ace" temperature="2.585e-08" zaid="54128"/>
|
||||
<ace_table alias="Xe-129.72c" awr="127.798" location="1" name="54129.72c" path="300K/Xe_129_300K.ace" temperature="2.585e-08" zaid="54129"/>
|
||||
<ace_table alias="Xe-130.72c" awr="128.788" location="1" name="54130.72c" path="300K/Xe_130_300K.ace" temperature="2.585e-08" zaid="54130"/>
|
||||
<ace_table alias="Xe-131.72c" awr="129.781" location="1" name="54131.72c" path="300K/Xe_131_300K.ace" temperature="2.585e-08" zaid="54131"/>
|
||||
<ace_table alias="Xe-132.72c" awr="130.77" location="1" name="54132.72c" path="300K/Xe_132_300K.ace" temperature="2.585e-08" zaid="54132"/>
|
||||
<ace_table alias="Xe-133.72c" awr="131.764" location="1" name="54133.72c" path="300K/Xe_133_300K.ace" temperature="2.585e-08" zaid="54133"/>
|
||||
<ace_table alias="Xe-134.72c" awr="132.76" location="1" name="54134.72c" path="300K/Xe_134_300K.ace" temperature="2.585e-08" zaid="54134"/>
|
||||
<ace_table alias="Xe-135.72c" awr="133.748" location="1" name="54135.72c" path="300K/Xe_135_300K.ace" temperature="2.585e-08" zaid="54135"/>
|
||||
<ace_table alias="Xe-136.72c" awr="134.74" location="1" name="54136.72c" path="300K/Xe_136_300K.ace" temperature="2.585e-08" zaid="54136"/>
|
||||
<ace_table alias="Cs-133.72c" awr="131.764" location="1" name="55133.72c" path="300K/Cs_133_300K.ace" temperature="2.585e-08" zaid="55133"/>
|
||||
<ace_table alias="Cs-134.72c" awr="132.757" location="1" name="55134.72c" path="300K/Cs_134_300K.ace" temperature="2.585e-08" zaid="55134"/>
|
||||
<ace_table alias="Cs-135.72c" awr="133.747" location="1" name="55135.72c" path="300K/Cs_135_300K.ace" temperature="2.585e-08" zaid="55135"/>
|
||||
<ace_table alias="Cs-136.72c" awr="134.739" location="1" name="55136.72c" path="300K/Cs_136_300K.ace" temperature="2.585e-08" zaid="55136"/>
|
||||
<ace_table alias="Cs-137.72c" awr="135.731" location="1" name="55137.72c" path="300K/Cs_137_300K.ace" temperature="2.585e-08" zaid="55137"/>
|
||||
<ace_table alias="Ba-130.72c" awr="128.79" location="1" name="56130.72c" path="300K/Ba_130_300K.ace" temperature="2.585e-08" zaid="56130"/>
|
||||
<ace_table alias="Ba-132.72c" awr="130.772" location="1" name="56132.72c" path="300K/Ba_132_300K.ace" temperature="2.585e-08" zaid="56132"/>
|
||||
<ace_table alias="Ba-133.72c" awr="131.764" location="1" name="56133.72c" path="300K/Ba_133_300K.ace" temperature="2.585e-08" zaid="56133"/>
|
||||
<ace_table alias="Ba-134.72c" awr="132.754" location="1" name="56134.72c" path="300K/Ba_134_300K.ace" temperature="2.585e-08" zaid="56134"/>
|
||||
<ace_table alias="Ba-135.72c" awr="133.747" location="1" name="56135.72c" path="300K/Ba_135_300K.ace" temperature="2.585e-08" zaid="56135"/>
|
||||
<ace_table alias="Ba-136.72c" awr="134.737" location="1" name="56136.72c" path="300K/Ba_136_300K.ace" temperature="2.585e-08" zaid="56136"/>
|
||||
<ace_table alias="Ba-137.72c" awr="135.73" location="1" name="56137.72c" path="300K/Ba_137_300K.ace" temperature="2.585e-08" zaid="56137"/>
|
||||
<ace_table alias="Ba-138.72c" awr="136.72" location="1" name="56138.72c" path="300K/Ba_138_300K.ace" temperature="2.585e-08" zaid="56138"/>
|
||||
<ace_table alias="Ba-140.72c" awr="138.708" location="1" name="56140.72c" path="300K/Ba_140_300K.ace" temperature="2.585e-08" zaid="56140"/>
|
||||
<ace_table alias="La-138.72c" awr="136.722" location="1" name="57138.72c" path="300K/La_138_300K.ace" temperature="2.585e-08" zaid="57138"/>
|
||||
<ace_table alias="La-139.72c" awr="137.71" location="1" name="57139.72c" path="300K/La_139_300K.ace" temperature="2.585e-08" zaid="57139"/>
|
||||
<ace_table alias="La-140.72c" awr="138.708" location="1" name="57140.72c" path="300K/La_140_300K.ace" temperature="2.585e-08" zaid="57140"/>
|
||||
<ace_table alias="Ce-136.72c" awr="134.74" location="1" name="58136.72c" path="300K/Ce_136_300K.ace" temperature="2.585e-08" zaid="58136"/>
|
||||
<ace_table alias="Ce-138.72c" awr="136.721" location="1" name="58138.72c" path="300K/Ce_138_300K.ace" temperature="2.585e-08" zaid="58138"/>
|
||||
<ace_table alias="Ce-139.72c" awr="137.713" location="1" name="58139.72c" path="300K/Ce_139_300K.ace" temperature="2.585e-08" zaid="58139"/>
|
||||
<ace_table alias="Ce-140.72c" awr="138.704" location="1" name="58140.72c" path="300K/Ce_140_300K.ace" temperature="2.585e-08" zaid="58140"/>
|
||||
<ace_table alias="Ce-141.72c" awr="139.7" location="1" name="58141.72c" path="300K/Ce_141_300K.ace" temperature="2.585e-08" zaid="58141"/>
|
||||
<ace_table alias="Ce-142.72c" awr="140.69" location="1" name="58142.72c" path="300K/Ce_142_300K.ace" temperature="2.585e-08" zaid="58142"/>
|
||||
<ace_table alias="Ce-143.72c" awr="141.685" location="1" name="58143.72c" path="300K/Ce_143_300K.ace" temperature="2.585e-08" zaid="58143"/>
|
||||
<ace_table alias="Ce-144.72c" awr="142.678" location="1" name="58144.72c" path="300K/Ce_144_300K.ace" temperature="2.585e-08" zaid="58144"/>
|
||||
<ace_table alias="Pr-141.72c" awr="139.697" location="1" name="59141.72c" path="300K/Pr_141_300K.ace" temperature="2.585e-08" zaid="59141"/>
|
||||
<ace_table alias="Pr-142.72c" awr="140.691" location="1" name="59142.72c" path="300K/Pr_142_300K.ace" temperature="2.585e-08" zaid="59142"/>
|
||||
<ace_table alias="Pr-143.72c" awr="141.683" location="1" name="59143.72c" path="300K/Pr_143_300K.ace" temperature="2.585e-08" zaid="59143"/>
|
||||
<ace_table alias="Nd-142.72c" awr="140.689" location="1" name="60142.72c" path="300K/Nd_142_300K.ace" temperature="2.585e-08" zaid="60142"/>
|
||||
<ace_table alias="Nd-143.72c" awr="141.682" location="1" name="60143.72c" path="300K/Nd_143_300K.ace" temperature="2.585e-08" zaid="60143"/>
|
||||
<ace_table alias="Nd-144.72c" awr="142.674" location="1" name="60144.72c" path="300K/Nd_144_300K.ace" temperature="2.585e-08" zaid="60144"/>
|
||||
<ace_table alias="Nd-145.72c" awr="143.668" location="1" name="60145.72c" path="300K/Nd_145_300K.ace" temperature="2.585e-08" zaid="60145"/>
|
||||
<ace_table alias="Nd-146.72c" awr="144.66" location="1" name="60146.72c" path="300K/Nd_146_300K.ace" temperature="2.585e-08" zaid="60146"/>
|
||||
<ace_table alias="Nd-147.72c" awr="145.654" location="1" name="60147.72c" path="300K/Nd_147_300K.ace" temperature="2.585e-08" zaid="60147"/>
|
||||
<ace_table alias="Nd-148.72c" awr="146.646" location="1" name="60148.72c" path="300K/Nd_148_300K.ace" temperature="2.585e-08" zaid="60148"/>
|
||||
<ace_table alias="Nd-150.72c" awr="148.633" location="1" name="60150.72c" path="300K/Nd_150_300K.ace" temperature="2.585e-08" zaid="60150"/>
|
||||
<ace_table alias="Pm-147.72c" awr="145.653" location="1" name="61147.72c" path="300K/Pm_147_300K.ace" temperature="2.585e-08" zaid="61147"/>
|
||||
<ace_table alias="Pm-148.72c" awr="146.646" location="1" name="61148.72c" path="300K/Pm_148_300K.ace" temperature="2.585e-08" zaid="61148"/>
|
||||
<ace_table alias="Pm-148m.72c" awr="146.65" location="1" metastable="1" name="61548.72c" path="300K/Pm_148m1_300K.ace" temperature="2.585e-08" zaid="61548"/>
|
||||
<ace_table alias="Pm-149.72c" awr="147.639" location="1" name="61149.72c" path="300K/Pm_149_300K.ace" temperature="2.585e-08" zaid="61149"/>
|
||||
<ace_table alias="Pm-151.72c" awr="149.625" location="1" name="61151.72c" path="300K/Pm_151_300K.ace" temperature="2.585e-08" zaid="61151"/>
|
||||
<ace_table alias="Sm-144.72c" awr="142.676" location="1" name="62144.72c" path="300K/Sm_144_300K.ace" temperature="2.585e-08" zaid="62144"/>
|
||||
<ace_table alias="Sm-147.72c" awr="145.653" location="1" name="62147.72c" path="300K/Sm_147_300K.ace" temperature="2.585e-08" zaid="62147"/>
|
||||
<ace_table alias="Sm-148.72c" awr="146.644" location="1" name="62148.72c" path="300K/Sm_148_300K.ace" temperature="2.585e-08" zaid="62148"/>
|
||||
<ace_table alias="Sm-149.72c" awr="147.638" location="1" name="62149.72c" path="300K/Sm_149_300K.ace" temperature="2.585e-08" zaid="62149"/>
|
||||
<ace_table alias="Sm-150.72c" awr="148.629" location="1" name="62150.72c" path="300K/Sm_150_300K.ace" temperature="2.585e-08" zaid="62150"/>
|
||||
<ace_table alias="Sm-151.72c" awr="149.623" location="1" name="62151.72c" path="300K/Sm_151_300K.ace" temperature="2.585e-08" zaid="62151"/>
|
||||
<ace_table alias="Sm-152.72c" awr="150.615" location="1" name="62152.72c" path="300K/Sm_152_300K.ace" temperature="2.585e-08" zaid="62152"/>
|
||||
<ace_table alias="Sm-153.72c" awr="151.608" location="1" name="62153.72c" path="300K/Sm_153_300K.ace" temperature="2.585e-08" zaid="62153"/>
|
||||
<ace_table alias="Sm-154.72c" awr="152.6" location="1" name="62154.72c" path="300K/Sm_154_300K.ace" temperature="2.585e-08" zaid="62154"/>
|
||||
<ace_table alias="Eu-151.72c" awr="149.62" location="1" name="63151.72c" path="300K/Eu_151_300K.ace" temperature="2.585e-08" zaid="63151"/>
|
||||
<ace_table alias="Eu-152.72c" awr="150.617" location="1" name="63152.72c" path="300K/Eu_152_300K.ace" temperature="2.585e-08" zaid="63152"/>
|
||||
<ace_table alias="Eu-153.72c" awr="151.608" location="1" name="63153.72c" path="300K/Eu_153_300K.ace" temperature="2.585e-08" zaid="63153"/>
|
||||
<ace_table alias="Eu-154.72c" awr="152.6" location="1" name="63154.72c" path="300K/Eu_154_300K.ace" temperature="2.585e-08" zaid="63154"/>
|
||||
<ace_table alias="Eu-155.72c" awr="153.59" location="1" name="63155.72c" path="300K/Eu_155_300K.ace" temperature="2.585e-08" zaid="63155"/>
|
||||
<ace_table alias="Eu-156.72c" awr="154.586" location="1" name="63156.72c" path="300K/Eu_156_300K.ace" temperature="2.585e-08" zaid="63156"/>
|
||||
<ace_table alias="Eu-157.72c" awr="155.577" location="1" name="63157.72c" path="300K/Eu_157_300K.ace" temperature="2.585e-08" zaid="63157"/>
|
||||
<ace_table alias="Gd-152.72c" awr="150.615" location="1" name="64152.72c" path="300K/Gd_152_300K.ace" temperature="2.585e-08" zaid="64152"/>
|
||||
<ace_table alias="Gd-153.72c" awr="151.608" location="1" name="64153.72c" path="300K/Gd_153_300K.ace" temperature="2.585e-08" zaid="64153"/>
|
||||
<ace_table alias="Gd-154.72c" awr="152.599" location="1" name="64154.72c" path="300K/Gd_154_300K.ace" temperature="2.585e-08" zaid="64154"/>
|
||||
<ace_table alias="Gd-155.72c" awr="153.592" location="1" name="64155.72c" path="300K/Gd_155_300K.ace" temperature="2.585e-08" zaid="64155"/>
|
||||
<ace_table alias="Gd-156.72c" awr="154.583" location="1" name="64156.72c" path="300K/Gd_156_300K.ace" temperature="2.585e-08" zaid="64156"/>
|
||||
<ace_table alias="Gd-157.72c" awr="155.576" location="1" name="64157.72c" path="300K/Gd_157_300K.ace" temperature="2.585e-08" zaid="64157"/>
|
||||
<ace_table alias="Gd-158.72c" awr="156.567" location="1" name="64158.72c" path="300K/Gd_158_300K.ace" temperature="2.585e-08" zaid="64158"/>
|
||||
<ace_table alias="Gd-160.72c" awr="158.553" location="1" name="64160.72c" path="300K/Gd_160_300K.ace" temperature="2.585e-08" zaid="64160"/>
|
||||
<ace_table alias="Tb-159.72c" awr="157.56" location="1" name="65159.72c" path="300K/Tb_159_300K.ace" temperature="2.585e-08" zaid="65159"/>
|
||||
<ace_table alias="Tb-160.72c" awr="158.553" location="1" name="65160.72c" path="300K/Tb_160_300K.ace" temperature="2.585e-08" zaid="65160"/>
|
||||
<ace_table alias="Dy-156.72c" awr="154.585" location="1" name="66156.72c" path="300K/Dy_156_300K.ace" temperature="2.585e-08" zaid="66156"/>
|
||||
<ace_table alias="Dy-158.72c" awr="156.568" location="1" name="66158.72c" path="300K/Dy_158_300K.ace" temperature="2.585e-08" zaid="66158"/>
|
||||
<ace_table alias="Dy-160.72c" awr="158.551" location="1" name="66160.72c" path="300K/Dy_160_300K.ace" temperature="2.585e-08" zaid="66160"/>
|
||||
<ace_table alias="Dy-161.72c" awr="159.544" location="1" name="66161.72c" path="300K/Dy_161_300K.ace" temperature="2.585e-08" zaid="66161"/>
|
||||
<ace_table alias="Dy-162.72c" awr="160.536" location="1" name="66162.72c" path="300K/Dy_162_300K.ace" temperature="2.585e-08" zaid="66162"/>
|
||||
<ace_table alias="Dy-163.72c" awr="161.529" location="1" name="66163.72c" path="300K/Dy_163_300K.ace" temperature="2.585e-08" zaid="66163"/>
|
||||
<ace_table alias="Dy-164.72c" awr="162.521" location="1" name="66164.72c" path="300K/Dy_164_300K.ace" temperature="2.585e-08" zaid="66164"/>
|
||||
<ace_table alias="Ho-165.72c" awr="163.513" location="1" name="67165.72c" path="300K/Ho_165_300K.ace" temperature="2.585e-08" zaid="67165"/>
|
||||
<ace_table alias="Ho-166m.72c" awr="164.507" location="1" metastable="1" name="67566.72c" path="300K/Ho_166m1_300K.ace" temperature="2.585e-08" zaid="67566"/>
|
||||
<ace_table alias="Er-162.72c" awr="160.538" location="1" name="68162.72c" path="300K/Er_162_300K.ace" temperature="2.585e-08" zaid="68162"/>
|
||||
<ace_table alias="Er-164.72c" awr="162.521" location="1" name="68164.72c" path="300K/Er_164_300K.ace" temperature="2.585e-08" zaid="68164"/>
|
||||
<ace_table alias="Er-166.72c" awr="164.505" location="1" name="68166.72c" path="300K/Er_166_300K.ace" temperature="2.585e-08" zaid="68166"/>
|
||||
<ace_table alias="Er-167.72c" awr="165.498" location="1" name="68167.72c" path="300K/Er_167_300K.ace" temperature="2.585e-08" zaid="68167"/>
|
||||
<ace_table alias="Er-168.72c" awr="166.487" location="1" name="68168.72c" path="300K/Er_168_300K.ace" temperature="2.585e-08" zaid="68168"/>
|
||||
<ace_table alias="Er-170.72c" awr="168.476" location="1" name="68170.72c" path="300K/Er_170_300K.ace" temperature="2.585e-08" zaid="68170"/>
|
||||
<ace_table alias="Tm-168.72c" awr="166.492" location="1" name="69168.72c" path="300K/Tm_168_300K.ace" temperature="2.585e-08" zaid="69168"/>
|
||||
<ace_table alias="Tm-169.72c" awr="167.483" location="1" name="69169.72c" path="300K/Tm_169_300K.ace" temperature="2.585e-08" zaid="69169"/>
|
||||
<ace_table alias="Tm-170.72c" awr="168.476" location="1" name="69170.72c" path="300K/Tm_170_300K.ace" temperature="2.585e-08" zaid="69170"/>
|
||||
<ace_table alias="Lu-175.72c" awr="173.438" location="1" name="71175.72c" path="300K/Lu_175_300K.ace" temperature="2.585e-08" zaid="71175"/>
|
||||
<ace_table alias="Lu-176.72c" awr="174.43" location="1" name="71176.72c" path="300K/Lu_176_300K.ace" temperature="2.585e-08" zaid="71176"/>
|
||||
<ace_table alias="Hf-174.72c" awr="172.446" location="1" name="72174.72c" path="300K/Hf_174_300K.ace" temperature="2.585e-08" zaid="72174"/>
|
||||
<ace_table alias="Hf-176.72c" awr="174.429" location="1" name="72176.72c" path="300K/Hf_176_300K.ace" temperature="2.585e-08" zaid="72176"/>
|
||||
<ace_table alias="Hf-177.72c" awr="175.42" location="1" name="72177.72c" path="300K/Hf_177_300K.ace" temperature="2.585e-08" zaid="72177"/>
|
||||
<ace_table alias="Hf-178.72c" awr="176.411" location="1" name="72178.72c" path="300K/Hf_178_300K.ace" temperature="2.585e-08" zaid="72178"/>
|
||||
<ace_table alias="Hf-179.72c" awr="177.413" location="1" name="72179.72c" path="300K/Hf_179_300K.ace" temperature="2.585e-08" zaid="72179"/>
|
||||
<ace_table alias="Hf-180.72c" awr="178.404" location="1" name="72180.72c" path="300K/Hf_180_300K.ace" temperature="2.585e-08" zaid="72180"/>
|
||||
<ace_table alias="Ta-180.72c" awr="178.4016" location="1" name="73180.72c" path="300K/Ta_180_300K.ace" temperature="2.585e-08" zaid="73180"/>
|
||||
<ace_table alias="Ta-181.72c" awr="179.3936" location="1" name="73181.72c" path="300K/Ta_181_300K.ace" temperature="2.585e-08" zaid="73181"/>
|
||||
<ace_table alias="Ta-182.72c" awr="180.387" location="1" name="73182.72c" path="300K/Ta_182_300K.ace" temperature="2.585e-08" zaid="73182"/>
|
||||
<ace_table alias="W-180.72c" awr="178.401" location="1" name="74180.72c" path="300K/W_180_300K.ace" temperature="2.585e-08" zaid="74180"/>
|
||||
<ace_table alias="W-182.72c" awr="180.385" location="1" name="74182.72c" path="300K/W_182_300K.ace" temperature="2.585e-08" zaid="74182"/>
|
||||
<ace_table alias="W-183.72c" awr="181.379" location="1" name="74183.72c" path="300K/W_183_300K.ace" temperature="2.585e-08" zaid="74183"/>
|
||||
<ace_table alias="W-184.72c" awr="182.371" location="1" name="74184.72c" path="300K/W_184_300K.ace" temperature="2.585e-08" zaid="74184"/>
|
||||
<ace_table alias="W-186.72c" awr="184.357" location="1" name="74186.72c" path="300K/W_186_300K.ace" temperature="2.585e-08" zaid="74186"/>
|
||||
<ace_table alias="Re-185.72c" awr="183.3641" location="1" name="75185.72c" path="300K/Re_185_300K.ace" temperature="2.585e-08" zaid="75185"/>
|
||||
<ace_table alias="Re-187.72c" awr="185.3497" location="1" name="75187.72c" path="300K/Re_187_300K.ace" temperature="2.585e-08" zaid="75187"/>
|
||||
<ace_table alias="Ir-191.72c" awr="189.32" location="1" name="77191.72c" path="300K/Ir_191_300K.ace" temperature="2.585e-08" zaid="77191"/>
|
||||
<ace_table alias="Ir-193.72c" awr="191.305" location="1" name="77193.72c" path="300K/Ir_193_300K.ace" temperature="2.585e-08" zaid="77193"/>
|
||||
<ace_table alias="Au-197.72c" awr="195.274" location="1" name="79197.72c" path="300K/Au_197_300K.ace" temperature="2.585e-08" zaid="79197"/>
|
||||
<ace_table alias="Hg-196.72c" awr="194.282" location="1" name="80196.72c" path="300K/Hg_196_300K.ace" temperature="2.585e-08" zaid="80196"/>
|
||||
<ace_table alias="Hg-198.72c" awr="196.266" location="1" name="80198.72c" path="300K/Hg_198_300K.ace" temperature="2.585e-08" zaid="80198"/>
|
||||
<ace_table alias="Hg-199.72c" awr="197.259" location="1" name="80199.72c" path="300K/Hg_199_300K.ace" temperature="2.585e-08" zaid="80199"/>
|
||||
<ace_table alias="Hg-200.72c" awr="198.25" location="1" name="80200.72c" path="300K/Hg_200_300K.ace" temperature="2.585e-08" zaid="80200"/>
|
||||
<ace_table alias="Hg-201.72c" awr="199.244" location="1" name="80201.72c" path="300K/Hg_201_300K.ace" temperature="2.585e-08" zaid="80201"/>
|
||||
<ace_table alias="Hg-202.72c" awr="200.236" location="1" name="80202.72c" path="300K/Hg_202_300K.ace" temperature="2.585e-08" zaid="80202"/>
|
||||
<ace_table alias="Hg-204.72c" awr="202.221" location="1" name="80204.72c" path="300K/Hg_204_300K.ace" temperature="2.585e-08" zaid="80204"/>
|
||||
<ace_table alias="Tl-203.72c" awr="201.229" location="1" name="81203.72c" path="300K/Tl_203_300K.ace" temperature="2.585e-08" zaid="81203"/>
|
||||
<ace_table alias="Tl-205.72c" awr="203.214" location="1" name="81205.72c" path="300K/Tl_205_300K.ace" temperature="2.585e-08" zaid="81205"/>
|
||||
<ace_table alias="Pb-204.72c" awr="202.2208" location="1" name="82204.72c" path="300K/Pb_204_300K.ace" temperature="2.585e-08" zaid="82204"/>
|
||||
<ace_table alias="Pb-206.72c" awr="204.205" location="1" name="82206.72c" path="300K/Pb_206_300K.ace" temperature="2.585e-08" zaid="82206"/>
|
||||
<ace_table alias="Pb-207.72c" awr="205.1979" location="1" name="82207.72c" path="300K/Pb_207_300K.ace" temperature="2.585e-08" zaid="82207"/>
|
||||
<ace_table alias="Pb-208.72c" awr="206.19" location="1" name="82208.72c" path="300K/Pb_208_300K.ace" temperature="2.585e-08" zaid="82208"/>
|
||||
<ace_table alias="Bi-209.72c" awr="207.185" location="1" name="83209.72c" path="300K/Bi_209_300K.ace" temperature="2.585e-08" zaid="83209"/>
|
||||
<ace_table alias="Ra-223.72c" awr="221.103" location="1" name="88223.72c" path="300K/Ra_223_300K.ace" temperature="2.585e-08" zaid="88223"/>
|
||||
<ace_table alias="Ra-224.72c" awr="222.096" location="1" name="88224.72c" path="300K/Ra_224_300K.ace" temperature="2.585e-08" zaid="88224"/>
|
||||
<ace_table alias="Ra-225.72c" awr="223.091" location="1" name="88225.72c" path="300K/Ra_225_300K.ace" temperature="2.585e-08" zaid="88225"/>
|
||||
<ace_table alias="Ra-226.72c" awr="224.084" location="1" name="88226.72c" path="300K/Ra_226_300K.ace" temperature="2.585e-08" zaid="88226"/>
|
||||
<ace_table alias="Ac-225.72c" awr="223.09" location="1" name="89225.72c" path="300K/Ac_225_300K.ace" temperature="2.585e-08" zaid="89225"/>
|
||||
<ace_table alias="Ac-226.72c" awr="224.084" location="1" name="89226.72c" path="300K/Ac_226_300K.ace" temperature="2.585e-08" zaid="89226"/>
|
||||
<ace_table alias="Ac-227.72c" awr="225.077" location="1" name="89227.72c" path="300K/Ac_227_300K.ace" temperature="2.585e-08" zaid="89227"/>
|
||||
<ace_table alias="Th-227.72c" awr="225.077" location="1" name="90227.72c" path="300K/Th_227_300K.ace" temperature="2.585e-08" zaid="90227"/>
|
||||
<ace_table alias="Th-228.72c" awr="226.07" location="1" name="90228.72c" path="300K/Th_228_300K.ace" temperature="2.585e-08" zaid="90228"/>
|
||||
<ace_table alias="Th-229.72c" awr="227.064" location="1" name="90229.72c" path="300K/Th_229_300K.ace" temperature="2.585e-08" zaid="90229"/>
|
||||
<ace_table alias="Th-230.72c" awr="228.057" location="1" name="90230.72c" path="300K/Th_230_300K.ace" temperature="2.585e-08" zaid="90230"/>
|
||||
<ace_table alias="Th-231.72c" awr="229.052" location="1" name="90231.72c" path="300K/Th_231_300K.ace" temperature="2.585e-08" zaid="90231"/>
|
||||
<ace_table alias="Th-232.72c" awr="230.045" location="1" name="90232.72c" path="300K/Th_232_300K.ace" temperature="2.585e-08" zaid="90232"/>
|
||||
<ace_table alias="Th-233.72c" awr="231.04" location="1" name="90233.72c" path="300K/Th_233_300K.ace" temperature="2.585e-08" zaid="90233"/>
|
||||
<ace_table alias="Th-234.72c" awr="232.033" location="1" name="90234.72c" path="300K/Th_234_300K.ace" temperature="2.585e-08" zaid="90234"/>
|
||||
<ace_table alias="Pa-229.72c" awr="227.065" location="1" name="91229.72c" path="300K/Pa_229_300K.ace" temperature="2.585e-08" zaid="91229"/>
|
||||
<ace_table alias="Pa-230.72c" awr="228.058" location="1" name="91230.72c" path="300K/Pa_230_300K.ace" temperature="2.585e-08" zaid="91230"/>
|
||||
<ace_table alias="Pa-231.72c" awr="229.051" location="1" name="91231.72c" path="300K/Pa_231_300K.ace" temperature="2.585e-08" zaid="91231"/>
|
||||
<ace_table alias="Pa-232.72c" awr="230.045" location="1" name="91232.72c" path="300K/Pa_232_300K.ace" temperature="2.585e-08" zaid="91232"/>
|
||||
<ace_table alias="Pa-233.72c" awr="231.038" location="1" name="91233.72c" path="300K/Pa_233_300K.ace" temperature="2.585e-08" zaid="91233"/>
|
||||
<ace_table alias="U-230.72c" awr="228.058" location="1" name="92230.72c" path="300K/U_230_300K.ace" temperature="2.585e-08" zaid="92230"/>
|
||||
<ace_table alias="U-231.72c" awr="229.052" location="1" name="92231.72c" path="300K/U_231_300K.ace" temperature="2.585e-08" zaid="92231"/>
|
||||
<ace_table alias="U-232.72c" awr="230.044" location="1" name="92232.72c" path="300K/U_232_300K.ace" temperature="2.585e-08" zaid="92232"/>
|
||||
<ace_table alias="U-233.72c" awr="231.0377" location="1" name="92233.72c" path="300K/U_233_300K.ace" temperature="2.585e-08" zaid="92233"/>
|
||||
<ace_table alias="U-234.72c" awr="232.0304" location="1" name="92234.72c" path="300K/U_234_300K.ace" temperature="2.585e-08" zaid="92234"/>
|
||||
<ace_table alias="U-235.72c" awr="233.0248" location="1" name="92235.72c" path="300K/U_235_300K.ace" temperature="2.585e-08" zaid="92235"/>
|
||||
<ace_table alias="U-236.72c" awr="234.0178" location="1" name="92236.72c" path="300K/U_236_300K.ace" temperature="2.585e-08" zaid="92236"/>
|
||||
<ace_table alias="U-237.72c" awr="235.0124" location="1" name="92237.72c" path="300K/U_237_300K.ace" temperature="2.585e-08" zaid="92237"/>
|
||||
<ace_table alias="U-238.72c" awr="236.0058" location="1" name="92238.72c" path="300K/U_238_300K.ace" temperature="2.585e-08" zaid="92238"/>
|
||||
<ace_table alias="U-239.72c" awr="237.0007" location="1" name="92239.72c" path="300K/U_239_300K.ace" temperature="2.585e-08" zaid="92239"/>
|
||||
<ace_table alias="U-240.72c" awr="237.9944" location="1" name="92240.72c" path="300K/U_240_300K.ace" temperature="2.585e-08" zaid="92240"/>
|
||||
<ace_table alias="U-241.72c" awr="238.9895" location="1" name="92241.72c" path="300K/U_241_300K.ace" temperature="2.585e-08" zaid="92241"/>
|
||||
<ace_table alias="Np-234.72c" awr="232.032" location="1" name="93234.72c" path="300K/Np_234_300K.ace" temperature="2.585e-08" zaid="93234"/>
|
||||
<ace_table alias="Np-235.72c" awr="233.025" location="1" name="93235.72c" path="300K/Np_235_300K.ace" temperature="2.585e-08" zaid="93235"/>
|
||||
<ace_table alias="Np-236.72c" awr="234.019" location="1" name="93236.72c" path="300K/Np_236_300K.ace" temperature="2.585e-08" zaid="93236"/>
|
||||
<ace_table alias="Np-237.72c" awr="235.0118" location="1" name="93237.72c" path="300K/Np_237_300K.ace" temperature="2.585e-08" zaid="93237"/>
|
||||
<ace_table alias="Np-238.72c" awr="236.006" location="1" name="93238.72c" path="300K/Np_238_300K.ace" temperature="2.585e-08" zaid="93238"/>
|
||||
<ace_table alias="Np-239.72c" awr="236.999" location="1" name="93239.72c" path="300K/Np_239_300K.ace" temperature="2.585e-08" zaid="93239"/>
|
||||
<ace_table alias="Pu-236.72c" awr="234.018" location="1" name="94236.72c" path="300K/Pu_236_300K.ace" temperature="2.585e-08" zaid="94236"/>
|
||||
<ace_table alias="Pu-237.72c" awr="235.012" location="1" name="94237.72c" path="300K/Pu_237_300K.ace" temperature="2.585e-08" zaid="94237"/>
|
||||
<ace_table alias="Pu-238.72c" awr="236.0046" location="1" name="94238.72c" path="300K/Pu_238_300K.ace" temperature="2.585e-08" zaid="94238"/>
|
||||
<ace_table alias="Pu-239.72c" awr="236.9986" location="1" name="94239.72c" path="300K/Pu_239_300K.ace" temperature="2.585e-08" zaid="94239"/>
|
||||
<ace_table alias="Pu-240.72c" awr="237.9916" location="1" name="94240.72c" path="300K/Pu_240_300K.ace" temperature="2.585e-08" zaid="94240"/>
|
||||
<ace_table alias="Pu-241.72c" awr="238.978" location="1" name="94241.72c" path="300K/Pu_241_300K.ace" temperature="2.585e-08" zaid="94241"/>
|
||||
<ace_table alias="Pu-242.72c" awr="239.979" location="1" name="94242.72c" path="300K/Pu_242_300K.ace" temperature="2.585e-08" zaid="94242"/>
|
||||
<ace_table alias="Pu-243.72c" awr="240.974" location="1" name="94243.72c" path="300K/Pu_243_300K.ace" temperature="2.585e-08" zaid="94243"/>
|
||||
<ace_table alias="Pu-244.72c" awr="241.967" location="1" name="94244.72c" path="300K/Pu_244_300K.ace" temperature="2.585e-08" zaid="94244"/>
|
||||
<ace_table alias="Pu-246.72c" awr="243.956" location="1" name="94246.72c" path="300K/Pu_246_300K.ace" temperature="2.585e-08" zaid="94246"/>
|
||||
<ace_table alias="Am-240.72c" awr="237.993" location="1" name="95240.72c" path="300K/Am_240_300K.ace" temperature="2.585e-08" zaid="95240"/>
|
||||
<ace_table alias="Am-241.72c" awr="238.986" location="1" name="95241.72c" path="300K/Am_241_300K.ace" temperature="2.585e-08" zaid="95241"/>
|
||||
<ace_table alias="Am-242.72c" awr="239.9801" location="1" name="95242.72c" path="300K/Am_242_300K.ace" temperature="2.585e-08" zaid="95242"/>
|
||||
<ace_table alias="Am-242m.72c" awr="239.9801" location="1" metastable="1" name="95642.72c" path="300K/Am_242m1_300K.ace" temperature="2.585e-08" zaid="95642"/>
|
||||
<ace_table alias="Am-243.72c" awr="240.9734" location="1" name="95243.72c" path="300K/Am_243_300K.ace" temperature="2.585e-08" zaid="95243"/>
|
||||
<ace_table alias="Am-244.72c" awr="241.968" location="1" name="95244.72c" path="300K/Am_244_300K.ace" temperature="2.585e-08" zaid="95244"/>
|
||||
<ace_table alias="Am-244m.72c" awr="241.968" location="1" metastable="1" name="95644.72c" path="300K/Am_244m1_300K.ace" temperature="2.585e-08" zaid="95644"/>
|
||||
<ace_table alias="Cm-240.72c" awr="237.993" location="1" name="96240.72c" path="300K/Cm_240_300K.ace" temperature="2.585e-08" zaid="96240"/>
|
||||
<ace_table alias="Cm-241.72c" awr="238.987" location="1" name="96241.72c" path="300K/Cm_241_300K.ace" temperature="2.585e-08" zaid="96241"/>
|
||||
<ace_table alias="Cm-242.72c" awr="239.979" location="1" name="96242.72c" path="300K/Cm_242_300K.ace" temperature="2.585e-08" zaid="96242"/>
|
||||
<ace_table alias="Cm-243.72c" awr="240.973" location="1" name="96243.72c" path="300K/Cm_243_300K.ace" temperature="2.585e-08" zaid="96243"/>
|
||||
<ace_table alias="Cm-244.72c" awr="241.966" location="1" name="96244.72c" path="300K/Cm_244_300K.ace" temperature="2.585e-08" zaid="96244"/>
|
||||
<ace_table alias="Cm-245.72c" awr="242.96" location="1" name="96245.72c" path="300K/Cm_245_300K.ace" temperature="2.585e-08" zaid="96245"/>
|
||||
<ace_table alias="Cm-246.72c" awr="243.953" location="1" name="96246.72c" path="300K/Cm_246_300K.ace" temperature="2.585e-08" zaid="96246"/>
|
||||
<ace_table alias="Cm-247.72c" awr="244.948" location="1" name="96247.72c" path="300K/Cm_247_300K.ace" temperature="2.585e-08" zaid="96247"/>
|
||||
<ace_table alias="Cm-248.72c" awr="245.941" location="1" name="96248.72c" path="300K/Cm_248_300K.ace" temperature="2.585e-08" zaid="96248"/>
|
||||
<ace_table alias="Cm-249.72c" awr="246.936" location="1" name="96249.72c" path="300K/Cm_249_300K.ace" temperature="2.585e-08" zaid="96249"/>
|
||||
<ace_table alias="Cm-250.72c" awr="247.93" location="1" name="96250.72c" path="300K/Cm_250_300K.ace" temperature="2.585e-08" zaid="96250"/>
|
||||
<ace_table alias="Bk-245.72c" awr="242.961" location="1" name="97245.72c" path="300K/Bk_245_300K.ace" temperature="2.585e-08" zaid="97245"/>
|
||||
<ace_table alias="Bk-246.72c" awr="243.955" location="1" name="97246.72c" path="300K/Bk_246_300K.ace" temperature="2.585e-08" zaid="97246"/>
|
||||
<ace_table alias="Bk-247.72c" awr="244.948" location="1" name="97247.72c" path="300K/Bk_247_300K.ace" temperature="2.585e-08" zaid="97247"/>
|
||||
<ace_table alias="Bk-248.72c" awr="245.942" location="1" name="97248.72c" path="300K/Bk_248_300K.ace" temperature="2.585e-08" zaid="97248"/>
|
||||
<ace_table alias="Bk-249.72c" awr="246.935" location="1" name="97249.72c" path="300K/Bk_249_300K.ace" temperature="2.585e-08" zaid="97249"/>
|
||||
<ace_table alias="Bk-250.72c" awr="247.93" location="1" name="97250.72c" path="300K/Bk_250_300K.ace" temperature="2.585e-08" zaid="97250"/>
|
||||
<ace_table alias="Cf-246.72c" awr="243.955" location="1" name="98246.72c" path="300K/Cf_246_300K.ace" temperature="2.585e-08" zaid="98246"/>
|
||||
<ace_table alias="Cf-248.72c" awr="245.941" location="1" name="98248.72c" path="300K/Cf_248_300K.ace" temperature="2.585e-08" zaid="98248"/>
|
||||
<ace_table alias="Cf-249.72c" awr="246.935" location="1" name="98249.72c" path="300K/Cf_249_300K.ace" temperature="2.585e-08" zaid="98249"/>
|
||||
<ace_table alias="Cf-250.72c" awr="247.928" location="1" name="98250.72c" path="300K/Cf_250_300K.ace" temperature="2.585e-08" zaid="98250"/>
|
||||
<ace_table alias="Cf-251.72c" awr="248.923" location="1" name="98251.72c" path="300K/Cf_251_300K.ace" temperature="2.585e-08" zaid="98251"/>
|
||||
<ace_table alias="Cf-252.72c" awr="249.916" location="1" name="98252.72c" path="300K/Cf_252_300K.ace" temperature="2.585e-08" zaid="98252"/>
|
||||
<ace_table alias="Cf-253.72c" awr="250.911" location="1" name="98253.72c" path="300K/Cf_253_300K.ace" temperature="2.585e-08" zaid="98253"/>
|
||||
<ace_table alias="Cf-254.72c" awr="251.905" location="1" name="98254.72c" path="300K/Cf_254_300K.ace" temperature="2.585e-08" zaid="98254"/>
|
||||
<ace_table alias="Es-251.72c" awr="248.923" location="1" name="99251.72c" path="300K/Es_251_300K.ace" temperature="2.585e-08" zaid="99251"/>
|
||||
<ace_table alias="Es-252.72c" awr="249.917" location="1" name="99252.72c" path="300K/Es_252_300K.ace" temperature="2.585e-08" zaid="99252"/>
|
||||
<ace_table alias="Es-253.72c" awr="250.911" location="1" name="99253.72c" path="300K/Es_253_300K.ace" temperature="2.585e-08" zaid="99253"/>
|
||||
<ace_table alias="Es-254.72c" awr="251.905" location="1" name="99254.72c" path="300K/Es_254_300K.ace" temperature="2.585e-08" zaid="99254"/>
|
||||
<ace_table alias="Es-254m.72c" awr="251.905" location="1" metastable="1" name="99654.72c" path="300K/Es_254m1_300K.ace" temperature="2.585e-08" zaid="99654"/>
|
||||
<ace_table alias="Es-255.72c" awr="252.899" location="1" name="99255.72c" path="300K/Es_255_300K.ace" temperature="2.585e-08" zaid="99255"/>
|
||||
<ace_table alias="Fm-255.72c" awr="252.899" location="1" name="100255.72c" path="300K/Fm_255_300K.ace" temperature="2.585e-08" zaid="100255"/>
|
||||
<ace_table awr="26.74975" location="1" name="Al.71t" path="tsl/al.acer" temperature="2.53e-08" zaid="0"/>
|
||||
<ace_table awr="8.93478" location="1" name="BeBeO.71t" path="tsl/bebeo.acer" temperature="2.53e-08" zaid="0"/>
|
||||
<ace_table awr="8.93478" location="1" name="Be.71t" path="tsl/be.acer" temperature="2.551e-08" zaid="0"/>
|
||||
<ace_table awr="0.999167" location="1" name="Benz.71t" path="tsl/benzine.acer" temperature="2.551e-08" zaid="0"/>
|
||||
<ace_table awr="1.9968" location="1" name="DD2O.71t" path="tsl/dd2o.acer" temperature="2.53e-08" zaid="0"/>
|
||||
<ace_table awr="55.454" location="1" name="Fe.71t" path="tsl/fe.acer" temperature="2.53e-08" zaid="0"/>
|
||||
<ace_table awr="11.898" location="1" name="Graph.71t" path="tsl/graphite.acer" temperature="2.551e-08" zaid="0"/>
|
||||
<ace_table awr="0.999167" location="1" name="HCH2.71t" path="tsl/hch2.acer" temperature="2.551e-08" zaid="0"/>
|
||||
<ace_table awr="0.999167" location="1" name="HH2O.71t" path="tsl/hh2o.acer" temperature="2.53e-08" zaid="0"/>
|
||||
<ace_table awr="0.999167" location="1" name="HZrH.71t" path="tsl/hzrh.acer" temperature="2.551e-08" zaid="0"/>
|
||||
<ace_table awr="0.999167" location="1" name="lCH4.71t" path="tsl/lch4.acer" temperature="8.617e-09" zaid="0"/>
|
||||
<ace_table awr="15.85751" location="1" name="OBeO.71t" path="tsl/obeo.acer" temperature="2.53e-08" zaid="0"/>
|
||||
<ace_table awr="1.9968" location="1" name="orthoD.71t" path="tsl/orthod.acer" temperature="1.637e-09" zaid="0"/>
|
||||
<ace_table awr="0.999167" location="1" name="orthoH.71t" path="tsl/orthoh.acer" temperature="1.723e-09" zaid="0"/>
|
||||
<ace_table awr="15.85751" location="1" name="OUO2.71t" path="tsl/ouo2.acer" temperature="2.551e-08" zaid="0"/>
|
||||
<ace_table awr="1.9968" location="1" name="paraD.71t" path="tsl/parad.acer" temperature="1.637e-09" zaid="0"/>
|
||||
<ace_table awr="0.999167" location="1" name="paraH.71t" path="tsl/parah.acer" temperature="1.723e-09" zaid="0"/>
|
||||
<ace_table awr="0.999167" location="1" name="sCH4.71t" path="tsl/sch4.acer" temperature="1.896e-09" zaid="0"/>
|
||||
<ace_table awr="236.0058" location="1" name="UUO2.71t" path="tsl/uuo2.acer" temperature="2.551e-08" zaid="0"/>
|
||||
<ace_table awr="89.1324" location="1" name="ZrZrH.71t" path="tsl/zrzrh.acer" temperature="2.551e-08" zaid="0"/>
|
||||
</cross_sections>
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -20,10 +20,6 @@ try:
|
|||
except ImportError:
|
||||
from urllib2 import urlopen
|
||||
|
||||
cwd = os.getcwd()
|
||||
sys.path.insert(0, os.path.join(cwd, '..'))
|
||||
from openmc.data.ace import ascii_to_binary
|
||||
|
||||
baseUrl = 'http://www.nndc.bnl.gov/endf/b7.1/aceFiles/'
|
||||
files = ['ENDF-B-VII.1-neutron-293.6K.tar.gz',
|
||||
'ENDF-B-VII.1-tsl.tar.gz']
|
||||
|
|
@ -114,12 +110,6 @@ text = text.replace('6012', '6000', 1)
|
|||
with open(graphite, 'w') as fh:
|
||||
fh.write(text)
|
||||
|
||||
# ==============================================================================
|
||||
# COPY CROSS_SECTIONS.XML
|
||||
|
||||
print('Copying cross_sections_nndc.xml...')
|
||||
shutil.copyfile('cross_sections_nndc.xml', 'nndc/cross_sections.xml')
|
||||
|
||||
# ==============================================================================
|
||||
# PROMPT USER TO DELETE .TAR.GZ FILES
|
||||
|
||||
|
|
@ -140,44 +130,26 @@ if not response or response.lower().startswith('y'):
|
|||
os.remove(f)
|
||||
|
||||
# ==============================================================================
|
||||
# PROMPT USER TO CONVERT ASCII TO BINARY
|
||||
# PROMPT USER TO GENERATE HDF5 LIBRARY
|
||||
|
||||
# Ask user to convert
|
||||
if not args.batch:
|
||||
if sys.version_info[0] < 3:
|
||||
response = raw_input('Convert ACE files to binary? ([y]/n) ')
|
||||
response = raw_input('Generate HDF5 library? ([y]/n) ')
|
||||
else:
|
||||
response = input('Convert ACE files to binary? ([y]/n) ')
|
||||
response = input('Generate HDF5 library? ([y]/n) ')
|
||||
else:
|
||||
response = 'y'
|
||||
|
||||
# Convert files if requested
|
||||
if not response or response.lower().startswith('y'):
|
||||
# get a list of all ACE files
|
||||
ace_files = sorted(glob.glob(os.path.join('nndc', '**', '*.ace*')))
|
||||
|
||||
# get a list of directories
|
||||
ace_dirs = glob.glob(os.path.join('nndc', '*K'))
|
||||
ace_dirs += glob.glob(os.path.join('nndc', 'tsl'))
|
||||
# Ensure 'import openmc.data' works in the openmc-ace-to-xml script
|
||||
cwd = os.getcwd()
|
||||
env = os.environ.copy()
|
||||
env['PYTHONPATH'] = os.path.join(cwd, '..')
|
||||
|
||||
# loop around ace directories
|
||||
for d in ace_dirs:
|
||||
print('Converting {0}...'.format(d))
|
||||
|
||||
# get a list of files to convert
|
||||
ace_files = glob.glob(os.path.join(d, '*.ace*'))
|
||||
|
||||
# convert files
|
||||
for f in ace_files:
|
||||
print(' Converting {0}...'.format(os.path.split(f)[1]))
|
||||
ascii_to_binary(f, f)
|
||||
|
||||
# Change cross_sections.xml file
|
||||
xs_file = os.path.join('nndc', 'cross_sections.xml')
|
||||
asc_str = "<filetype>ascii</filetype>"
|
||||
bin_str = "<filetype> binary </filetype>\n "
|
||||
bin_str += "<record_length> 4096 </record_length>\n "
|
||||
bin_str += "<entries> 512 </entries>"
|
||||
with open(xs_file) as fh:
|
||||
text = fh.read()
|
||||
text = text.replace(asc_str, bin_str)
|
||||
with open(xs_file, 'w') as fh:
|
||||
fh.write(text)
|
||||
subprocess.call(['../scripts/openmc-ace-to-hdf5', '-d', 'nndc_hdf5']
|
||||
+ ace_files, env=env)
|
||||
|
|
|
|||
|
|
@ -5,9 +5,9 @@ The OpenMC Monte Carlo Code
|
|||
OpenMC is a Monte Carlo particle transport simulation code focused on neutron
|
||||
criticality calculations. It is capable of simulating 3D models based on
|
||||
constructive solid geometry with second-order surfaces. OpenMC supports either
|
||||
continuous-energy or multi-group transport. The continuous-energy
|
||||
particle interaction data is based on ACE format cross sections, also used
|
||||
in the MCNP and Serpent Monte Carlo codes.
|
||||
continuous-energy or multi-group transport. The continuous-energy particle
|
||||
interaction data is based on a native HDF5 format that can be generated from ACE
|
||||
files used by the MCNP and Serpent Monte Carlo codes.
|
||||
|
||||
OpenMC was originally developed by members of the `Computational Reactor Physics
|
||||
Group`_ at the `Massachusetts Institute of Technology`_ starting
|
||||
|
|
|
|||
|
|
@ -279,9 +279,9 @@ idiosyncrasies in treating fission. In an eigenvalue calculation, secondary
|
|||
neutrons from fission are only "banked" for use in the next generation rather
|
||||
than being tracked as secondary neutrons from elastic and inelastic scattering
|
||||
would be. On top of this, fission is sometimes broken into first-chance fission,
|
||||
second-chance fission, etc. An ACE table either lists the partial fission
|
||||
reactions with secondary energy distributions for each one, or a total fission
|
||||
reaction with a single secondary energy distribution.
|
||||
second-chance fission, etc. The nuclear data file either lists the partial
|
||||
fission reactions with secondary energy distributions for each one, or a total
|
||||
fission reaction with a single secondary energy distribution.
|
||||
|
||||
When a fission reaction is sampled in OpenMC (either total fission or, if data
|
||||
exists, first- or second-chance fission), the following algorithm is used to
|
||||
|
|
@ -290,7 +290,7 @@ number of prompt and delayed neutrons must be determined to decide whether the
|
|||
secondary neutrons will be prompt or delayed. This is important because delayed
|
||||
neutrons have a markedly different spectrum from prompt neutrons, one that has a
|
||||
lower average energy of emission. The total number of neutrons emitted
|
||||
:math:`\nu_t` is given as a function of incident energy in the ACE format. Two
|
||||
:math:`\nu_t` is given as a function of incident energy in the ENDF format. Two
|
||||
representations exist for :math:`\nu_t`. The first is a polynomial of order
|
||||
:math:`N` with coefficients :math:`c_0,c_1,\dots,c_N`. If :math:`\nu_t` has this
|
||||
format, we can evaluate it at incoming energy :math:`E` by using the equation
|
||||
|
|
@ -347,26 +347,52 @@ provided as group-wise data instead of in a continuous-energy format. In this
|
|||
case, the outgoing energy of the fission neutrons are represented as histograms
|
||||
by way of either the nu-fission matrix or chi vector.
|
||||
|
||||
-----------------------------------------
|
||||
Secondary Angles and Energy Distributions
|
||||
-----------------------------------------
|
||||
------------------------------------
|
||||
Secondary Angle-Energy Distributions
|
||||
------------------------------------
|
||||
|
||||
Note that this section is specific to continuous-energy mode since the
|
||||
multi-group scattering process has already been described including the
|
||||
secondary energy and angle sampling.
|
||||
|
||||
For any reactions with secondary neutrons, it is necessary to sample secondary
|
||||
angle and energy distributions. This includes elastic and inelastic scattering,
|
||||
fission, and :math:`(n,xn)` reactions. In some cases, the angle and energy
|
||||
distributions may be specified separately, and in other cases, they may be
|
||||
specified as a correlated angle-energy distribution. In the following sections,
|
||||
we will outline the methods used to sample secondary distributions as well as
|
||||
how they are used to modify the state of a particle.
|
||||
For a reaction with secondary products, it is necessary to determine the
|
||||
outgoing angle and energy of the products. For any reaction other than elastic
|
||||
and level inelastic scattering, the outgoing energy must be determined based on
|
||||
tabulated or parameterized data. The `ENDF-6 Format`_ specifies a variety of
|
||||
ways that the secondary energy distribution can be represented. ENDF File 5
|
||||
contains uncorrelated energy distribution whereas ENDF File 6 contains
|
||||
correlated energy-angle distributions. The ACE format specifies its own
|
||||
representations based loosely on the formats given in ENDF-6. OpenMC's HDF5
|
||||
nuclear data files use a combination of ENDF and ACE distributions; in this
|
||||
section, we will describe how the outgoing angle and energy of secondary
|
||||
particles are sampled.
|
||||
|
||||
One of the subtleties in the nuclear data format is the fact that a single
|
||||
reaction product can have multiple angle-energy distributions. This is mainly
|
||||
useful for reactions with multiple products of the same type in the exit channel
|
||||
such as :math:`(n,2n)` or :math:`(n,3n)`. In these types of reactions, each
|
||||
neutron is emitted corresponding to a different excitation level of the compound
|
||||
nucleus, and thus in general the neutrons will originate from different energy
|
||||
distributions. If multiple angle-energy distributions are present, they are
|
||||
assigned incoming-energy-dependent probabilities that can then be used to
|
||||
randomly select one.
|
||||
|
||||
Once a distribution has been selected, the procedure for determining the
|
||||
outgoing angle and energy will depend on the type of the distribution.
|
||||
|
||||
Uncorrelated Angle-Energy Distributions
|
||||
---------------------------------------
|
||||
|
||||
The first set of distributions we will look at are uncorrelated angle-energy
|
||||
distributions, where angle and energy are specified separately. For these
|
||||
distributions, OpenMC first samples the angular distribution as described
|
||||
:ref:`sample-angle` and then samples an energy as described in
|
||||
:ref:`sample-energy`.
|
||||
|
||||
.. _sample-angle:
|
||||
|
||||
Sampling Secondary Angle Distributions
|
||||
--------------------------------------
|
||||
Sampling Angular Distributions
|
||||
++++++++++++++++++++++++++++++
|
||||
|
||||
For elastic scattering, it is only necessary to specific a secondary angle
|
||||
distribution since the outgoing energy can be determined analytically. Other
|
||||
|
|
@ -374,15 +400,14 @@ reactions may also have separate secondary angle and secondary energy
|
|||
distributions that are uncorrelated. In these cases, the secondary angle
|
||||
distribution is represented as either
|
||||
|
||||
- An Isotropic angular distribution,
|
||||
- An equiprobable distribution with 32 bins, or
|
||||
- An isotropic angular distribution,
|
||||
- A tabular distribution.
|
||||
|
||||
Isotropic Angular Distribution
|
||||
++++++++++++++++++++++++++++++
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
In the first case, no data needs to be stored on the ACE table, and the cosine
|
||||
of the scattering angle is simply calculated as
|
||||
In the first case, no data is stored in the nuclear data file, and the cosine of
|
||||
the scattering angle is simply calculated as
|
||||
|
||||
.. math::
|
||||
:label: isotropic-angle
|
||||
|
|
@ -392,42 +417,17 @@ of the scattering angle is simply calculated as
|
|||
where :math:`\mu` is the cosine of the scattering angle and :math:`\xi` is a
|
||||
random number sampled uniformly on :math:`[0,1)`.
|
||||
|
||||
Equiprobable Angle Bin Distribution
|
||||
+++++++++++++++++++++++++++++++++++
|
||||
|
||||
For a 32 equiprobable bin distribution, we select a random number :math:`\xi` to
|
||||
sample a cosine bin :math:`i` such that
|
||||
|
||||
.. math::
|
||||
:label: equiprobable-bin
|
||||
|
||||
i = 1 + \lfloor 32\xi \rfloor.
|
||||
|
||||
The same random number can then also be used to interpolate between neighboring
|
||||
:math:`\mu` values to get the final scattering cosine:
|
||||
|
||||
.. math::
|
||||
:label: equiprobable-cosine
|
||||
|
||||
\mu = \mu_i + (32\xi - i) (\mu_{i+1} - \mu_i)
|
||||
|
||||
where :math:`\mu_i` is the :math:`i`-th scattering cosine.
|
||||
|
||||
.. _angle-tabular:
|
||||
|
||||
Tabular Angular Distribution
|
||||
++++++++++++++++++++++++++++
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
As the `MCNP Manual`_ points out, using an equiprobable bin distribution works
|
||||
well for high-probability regions of the scattering cosine probability, but for
|
||||
low-probability regions it is not very accurate. Thus, a more accurate method is
|
||||
to represent the scattering cosine with a tabular distribution. In this case, we
|
||||
have a table of cosines and their corresponding values for a probability
|
||||
distribution function and cumulative distribution function. For each incoming
|
||||
neutron energy :math:`E_i`, let us call :math:`p_{i,j}` the j-th value in the
|
||||
probability distribution function and :math:`c_{i,j}` the j-th value in the
|
||||
cumulative distribution function. We first find the interpolation factor on the
|
||||
incoming energy grid:
|
||||
In this case, we have a table of cosines and their corresponding values for a
|
||||
probability distribution function and cumulative distribution function. For each
|
||||
incoming neutron energy :math:`E_i`, let us call :math:`p_{i,j}` the j-th value
|
||||
in the probability distribution function and :math:`c_{i,j}` the j-th value in
|
||||
the cumulative distribution function. We first find the interpolation factor on
|
||||
the incoming energy grid:
|
||||
|
||||
.. math::
|
||||
:label: interpolation-factor
|
||||
|
|
@ -545,89 +545,11 @@ linear-linear interpolation:
|
|||
|
||||
.. _sample-energy:
|
||||
|
||||
Sampling Secondary Energy and Correlated Angle/Energy Distributions
|
||||
-------------------------------------------------------------------
|
||||
Sampling Energy Distributions
|
||||
+++++++++++++++++++++++++++++
|
||||
|
||||
For a reaction with secondary neutrons, it is necessary to determine the
|
||||
outgoing energy of the neutrons. For any reaction other than elastic scattering,
|
||||
the outgoing energy must be determined based on tabulated or parameterized
|
||||
data. The `ENDF-6 Format`_ specifies a variety of ways that the secondary energy
|
||||
distribution can be represented. ENDF File 5 contains uncorrelated energy
|
||||
distribution where ENDF File 6 contains correlated energy-angle
|
||||
distributions. The ACE format specifies its own representations based loosely on
|
||||
the formats given in ENDF-6. In this section, we will describe how the outgoing
|
||||
energy of secondary particles is determined based on each ACE law.
|
||||
|
||||
One of the subtleties in the ACE format is the fact that a single reaction can
|
||||
have multiple secondary energy distributions. This is mainly useful for
|
||||
reactions with multiple neutrons in the exit channel such as :math:`(n,2n)` or
|
||||
:math:`(n,3n)`. In these types of reactions, each neutron is emitted
|
||||
corresponding to a different excitation level of the compound nucleus, and thus
|
||||
in general the neutrons will originate from different energy distributions. If
|
||||
multiple energy distributions are present, they are assigned probabilities that
|
||||
can then be used to randomly select one.
|
||||
|
||||
Once a secondary energy distribution has been sampled, the procedure for
|
||||
determining the outgoing energy will depend on which ACE law has been specified
|
||||
for the data.
|
||||
|
||||
.. _ace-law-1:
|
||||
|
||||
ACE Law 1 - Tabular Equiprobable Energy Bins
|
||||
++++++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
In the tabular equiprobable bin representation, an array of equiprobable
|
||||
outgoing energy bins is given for a number of incident energies. While the
|
||||
representation itself is simple, the complexity lies in how one interpolates
|
||||
between incident as well as outgoing energies on such a table. If one performs
|
||||
simple interpolation between tables for neighboring incident energies, it is
|
||||
possible that the resulting energies would violate laws governing the
|
||||
kinematics, i.e. the outgoing energy may be outside the range of available
|
||||
energy in the reaction.
|
||||
|
||||
To avoid this situation, the accepted practice is to use a process known as
|
||||
scaled interpolation [Doyas]_. First, we find the tabulated incident energies
|
||||
which bound the actual incoming energy of the particle, i.e. find :math:`i` such
|
||||
that :math:`E_i < E < E_{i+1}` and calculate the interpolation factor :math:`f`
|
||||
via :eq:`interpolation-factor`. Then, we interpolate between the minimum and
|
||||
maximum energies of the outgoing energy distributions corresponding to
|
||||
:math:`E_i` and :math:`E_{i+1}`:
|
||||
|
||||
.. math::
|
||||
:label: ace-law-1-minmax
|
||||
|
||||
E_{min} = E_{i,1} + f ( E_{i+1,1} - E_i ) \\
|
||||
E_{max} = E_{i,M} + f ( E_{i+1,M} - E_M )
|
||||
|
||||
where :math:`E_{min}` and :math:`E_{max}` are the minimum and maximum outgoing
|
||||
energies of a scaled distribution, :math:`E_{i,j}` is the j-th outgoing energy
|
||||
corresponding to the incoming energy :math:`E_i`, and :math:`M` is the number of
|
||||
outgoing energy bins. Next, statistical interpolation is performed to choose
|
||||
between using the outgoing energy distributions corresponding to energy
|
||||
:math:`E_i` and :math:`E_{i+1}`. Let :math:`\ell` be the chosen table where
|
||||
:math:`\ell = i` if :math:`\xi_1 > f` and :math:`\ell = i + 1` otherwise, and
|
||||
:math:`\xi_1` is a random number. Now, we randomly sample an equiprobable
|
||||
outgoing energy bin :math:`j` and interpolate between successive values on the
|
||||
outgoing energy distribution:
|
||||
|
||||
.. math::
|
||||
:label: ace-law-1-intermediate
|
||||
|
||||
\hat{E} = E_{\ell,j} + \xi_2 (E_{\ell,j+1} - E_{\ell,j})
|
||||
|
||||
where :math:`\xi_2` is a random number sampled uniformly on :math:`[0,1)`. Since
|
||||
this outgoing energy may violate reaction kinematics, we then scale it to the
|
||||
minimum and maximum energies we calculated earlier to get the final outgoing
|
||||
energy:
|
||||
|
||||
.. math::
|
||||
:label: ace-law-1-energy
|
||||
|
||||
E' = E_{min} + \frac{\hat{E} - E_{\ell,1}}{E_{\ell,M} - E_{\ell,1}}
|
||||
(E_{max} - E_{min})
|
||||
|
||||
ACE Law 3 - Inelastic Level Scattering
|
||||
++++++++++++++++++++++++++++++++++++++
|
||||
Inelastic Level Scattering
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
It can be shown (see Foderaro_) that in inelastic level scattering, the outgoing
|
||||
energy of the neutron :math:`E'` can be related to the Q-value of the reaction
|
||||
|
|
@ -640,31 +562,50 @@ and the incoming energy:
|
|||
|
||||
where :math:`A` is the mass of the target nucleus measured in neutron masses.
|
||||
|
||||
.. _ace-law-4:
|
||||
.. _continuous-tabular:
|
||||
|
||||
ACE Law 4 - Continuous Tabular Distribution
|
||||
+++++++++++++++++++++++++++++++++++++++++++
|
||||
Continuous Tabular Distribution
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
This representation is very similar to :ref:`ace-law-1` except that instead of
|
||||
equiprobable outgoing energy bins, the outgoing energy distribution for each
|
||||
incoming energy is represented with a probability distribution function. For
|
||||
each incoming neutron energy :math:`E_i`, let us call :math:`p_{i,j}` the j-th
|
||||
value in the probability distribution function, :math:`c_{i,j}` the j-th value
|
||||
in the cumulative distribution function, and :math:`E_{i,j}` the j-th outgoing
|
||||
energy.
|
||||
In a continuous tabular distribution, a tabulated energy distribution is
|
||||
provided for each of a set of incoming energies. While the representation itself
|
||||
is simple, the complexity lies in how one interpolates between incident as well
|
||||
as outgoing energies on such a table. If one performs simple interpolation
|
||||
between tables for neighboring incident energies, it is possible that the
|
||||
resulting energies would violate laws governing the kinematics, i.e., the
|
||||
outgoing energy may be outside the range of available energy in the reaction.
|
||||
|
||||
We proceed first as we did for ACE Law 1, determining the bounding energies of
|
||||
the particle's incoming energy such that :math:`E_i < E < E_{i+1}` and
|
||||
calculating an interpolation factor :math:`f` with equation
|
||||
:eq:`interpolation-factor`. Next, statistical interpolation is performed to
|
||||
choose between using the outgoing energy distributions corresponding to energy
|
||||
:math:`E_i` and :math:`E_{i+1}`. Let :math:`\ell` be the chosen table where
|
||||
:math:`\ell = i` if :math:`\xi_1 > f` and :math:`\ell = i + 1` otherwise, and
|
||||
:math:`\xi_1` is a random number. Then, we sample an outgoing energy bin
|
||||
To avoid this situation, the accepted practice is to use a process known as
|
||||
scaled interpolation [Doyas]_. First, we find the tabulated incident energies
|
||||
which bound the actual incoming energy of the particle, i.e., find :math:`i`
|
||||
such that :math:`E_i < E < E_{i+1}` and calculate the interpolation factor
|
||||
:math:`f` via :eq:`interpolation-factor`. Then, we interpolate between the
|
||||
minimum and maximum energies of the outgoing energy distributions corresponding
|
||||
to :math:`E_i` and :math:`E_{i+1}`:
|
||||
|
||||
.. math::
|
||||
:label: continuous-minmax
|
||||
|
||||
E_{min} = E_{i,1} + f ( E_{i+1,1} - E_{i,1} ) \\
|
||||
E_{max} = E_{i,M} + f ( E_{i+1,M} - E_{i,M} )
|
||||
|
||||
where :math:`E_{min}` and :math:`E_{max}` are the minimum and maximum outgoing
|
||||
energies of a scaled distribution, :math:`E_{i,j}` is the j-th outgoing energy
|
||||
corresponding to the incoming energy :math:`E_i`, and :math:`M` is the number of
|
||||
outgoing energy bins.
|
||||
|
||||
Next, statistical interpolation is performed to choose between using the
|
||||
outgoing energy distributions corresponding to energy :math:`E_i` and
|
||||
:math:`E_{i+1}`. Let :math:`\ell` be the chosen table where :math:`\ell = i` if
|
||||
:math:`\xi_1 > f` and :math:`\ell = i + 1` otherwise, and :math:`\xi_1` is a
|
||||
random number. For each incoming neutron energy :math:`E_i`, let us call
|
||||
:math:`p_{i,j}` the j-th value in the probability distribution function,
|
||||
:math:`c_{i,j}` the j-th value in the cumulative distribution function, and
|
||||
:math:`E_{i,j}` the j-th outgoing energy. We then sample an outgoing energy bin
|
||||
:math:`j` using the cumulative distribution function:
|
||||
|
||||
.. math::
|
||||
:label: ace-law-4-sample-cdf
|
||||
:label: continuous-sample-cdf
|
||||
|
||||
c_{\ell,j} < \xi_2 < c_{\ell,j+1}
|
||||
|
||||
|
|
@ -692,22 +633,22 @@ If linear-linear interpolation is to be used, the outgoing energy on the
|
|||
\right ).
|
||||
|
||||
Since this outgoing energy may violate reaction kinematics, we then scale it to
|
||||
minimum and maximum energies interpolated between the neighboring outgoing
|
||||
energy distributions to get the final outgoing energy:
|
||||
minimum and maximum energies calculated in equation :eq:`continuous-minmax` to
|
||||
get the final outgoing energy:
|
||||
|
||||
.. math::
|
||||
:label: ace-law-4-energy
|
||||
:label: continuous-eout
|
||||
|
||||
E' = E_{min} + \frac{\hat{E} - E_{\ell,1}}{E_{\ell,M} - E_{\ell,1}}
|
||||
(E_{max} - E_{min})
|
||||
|
||||
where :math:`E_{min}` and :math:`E_{max}` are defined the same as in equation
|
||||
:eq:`ace-law-1-minmax`.
|
||||
:eq:`continuous-minmax`.
|
||||
|
||||
.. _maxwell:
|
||||
|
||||
ACE Law 7 - Maxwell Fission Spectrum
|
||||
++++++++++++++++++++++++++++++++++++
|
||||
Maxwell Fission Spectrum
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
One representation of the secondary energies for neutrons from fission is the
|
||||
so-called Maxwell spectrum. A probability distribution for the Maxwell spectrum
|
||||
|
|
@ -720,7 +661,7 @@ can be written in the form
|
|||
|
||||
where :math:`E` is the incoming energy of the neutron and :math:`T` is the
|
||||
so-called nuclear temperature, which is a function of the incoming energy of the
|
||||
neutron. The ACE format contains a list of nuclear temperatures versus incoming
|
||||
neutron. The ENDF format contains a list of nuclear temperatures versus incoming
|
||||
energies. The nuclear temperature is interpolated between neighboring incoming
|
||||
energies using a specified interpolation law. Once the temperature :math:`T` is
|
||||
determined, we then calculate a candidate outgoing energy based on rule C64 in
|
||||
|
|
@ -740,12 +681,12 @@ interval. The outgoing energy is only accepted if
|
|||
|
||||
0 \le E' \le E - U
|
||||
|
||||
where :math:`U` is called the restriction energy and is specified on the ACE
|
||||
table. If the outgoing energy is rejected, it is resampled using equation
|
||||
where :math:`U` is called the restriction energy and is specified in the ENDF
|
||||
data. If the outgoing energy is rejected, it is resampled using equation
|
||||
:eq:`maxwell-E-candidate`.
|
||||
|
||||
ACE Law 9 - Evaporation Spectrum
|
||||
++++++++++++++++++++++++++++++++
|
||||
Evaporation Spectrum
|
||||
^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Evaporation spectra are primarily used in compound nucleus processes where a
|
||||
secondary particle can "evaporate" from the compound nucleus if it has
|
||||
|
|
@ -759,7 +700,7 @@ be written in the form
|
|||
|
||||
where :math:`E` is the incoming energy of the neutron and :math:`T` is the
|
||||
nuclear temperature, which is a function of the incoming energy of the
|
||||
neutron. The ACE format contains a list of nuclear temperatures versus incoming
|
||||
neutron. The ENDF format contains a list of nuclear temperatures versus incoming
|
||||
energies. The nuclear temperature is interpolated between neighboring incoming
|
||||
energies using a specified interpolation law. Once the temperature :math:`T` is
|
||||
determined, we then calculate a candidate outgoing energy based on the algorithm
|
||||
|
|
@ -777,11 +718,11 @@ energy as in equation :eq:`maxwell-restriction`. This algorithm has a much
|
|||
higher rejection efficiency than the standard technique, i.e. rule C45 in the
|
||||
`Monte Carlo Sampler`_.
|
||||
|
||||
ACE Law 11 - Energy-Dependent Watt Spectrum
|
||||
+++++++++++++++++++++++++++++++++++++++++++
|
||||
Energy-Dependent Watt Spectrum
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
The probability distribution for a Watt fission spectrum can be written in the
|
||||
form
|
||||
The probability distribution for a [Watt]_ fission spectrum can be written in
|
||||
the form
|
||||
|
||||
.. math::
|
||||
:label: watt-spectrum
|
||||
|
|
@ -805,29 +746,37 @@ where :math:`\xi` is a random number sampled on the interval :math:`[0,1)`. The
|
|||
outgoing energy is only accepted according to a specified restriction energy
|
||||
:math:`U` as defined in equation :eq:`maxwell-restriction`.
|
||||
|
||||
This algorithm can be found in Forrest Brown's lectures_ on Monte Carlo methods
|
||||
and is an unpublished sampling scheme based on the original Watt spectrum
|
||||
derivation [Watt]_.
|
||||
A derivation of the algorithm described here can be found in a paper by Romano_.
|
||||
|
||||
ACE Law 44 - Kalbach-Mann Correlated Scattering
|
||||
+++++++++++++++++++++++++++++++++++++++++++++++
|
||||
Product Angle-Energy Distributions
|
||||
----------------------------------
|
||||
|
||||
This law is very similar to ACE Law 4 except now the outgoing angle of the
|
||||
neutron is correlated to the outgoing energy and is not sampled from a separate
|
||||
distribution. For each incident neutron energy :math:`E_i` tabulated, there is
|
||||
an array of precompound factors :math:`R_{i,j}` and angular distribution slopes
|
||||
:math:`A_{i,j}` corresponding to each outgoing energy bin :math:`j` in addition
|
||||
to the outgoing energies and distribution functions as in ACE Law 4.
|
||||
If the secondary distribution for a product was given in file 6 in ENDF, the
|
||||
angle and energy are correlated with one another and cannot be sampled
|
||||
separately. Several representations exist in ENDF/ACE for correlated
|
||||
angle-energy distributions.
|
||||
|
||||
Kalbach-Mann Correlated Scattering
|
||||
++++++++++++++++++++++++++++++++++
|
||||
|
||||
This law is very similar to the uncorrelated continuous tabular energy
|
||||
distribution except now the outgoing angle of the neutron is correlated to the
|
||||
outgoing energy and is not sampled from a separate distribution. For each
|
||||
incident neutron energy :math:`E_i` tabulated, there is an array of precompound
|
||||
factors :math:`R_{i,j}` and angular distribution slopes :math:`A_{i,j}`
|
||||
corresponding to each outgoing energy bin :math:`j` in addition to the outgoing
|
||||
energies and distribution functions as in :ref:`continuous-tabular`.
|
||||
|
||||
The calculation of the outgoing energy of the neutron proceeds exactly the same
|
||||
as in the algorithm described in :ref:`ace-law-4`. In that algorithm, we found
|
||||
an interpolation factor :math:`f`, statistically sampled an incoming energy bin
|
||||
:math:`\ell`, and sampled an outgoing energy bin :math:`j` based on the
|
||||
tabulated cumulative distribution function. Once the outgoing energy has been
|
||||
determined with equation :eq:`ace-law-4-energy`, we then need to calculate the
|
||||
outgoing angle based on the tabulated Kalbach-Mann parameters. These parameters
|
||||
themselves are subject to either histogram or linear-linear interpolation on the
|
||||
outgoing energy grid. For histogram interpolation, the parameters are
|
||||
as in the algorithm described in :ref:`continuous-tabular`. In that algorithm,
|
||||
we found an interpolation factor :math:`f`, statistically sampled an incoming
|
||||
energy bin :math:`\ell`, and sampled an outgoing energy bin :math:`j` based on
|
||||
the tabulated cumulative distribution function. Once the outgoing energy has
|
||||
been determined with equation :eq:`continuous-eout`, we then need to calculate
|
||||
the outgoing angle based on the tabulated Kalbach-Mann parameters. These
|
||||
parameters themselves are subject to either histogram or linear-linear
|
||||
interpolation on the outgoing energy grid. For histogram interpolation, the
|
||||
parameters are
|
||||
|
||||
.. math::
|
||||
:label: KM-parameters-histogram
|
||||
|
|
@ -873,52 +822,55 @@ outgoing angle is
|
|||
|
||||
\mu = \frac{1}{A} \ln \left ( \xi_4 e^A + (1 - \xi_4) e^{-A} \right ).
|
||||
|
||||
.. _ace-law-61:
|
||||
.. _correlated-energy-angle:
|
||||
|
||||
ACE Law 61 - Correlated Energy and Angle Distribution
|
||||
+++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
Correlated Energy and Angle Distribution
|
||||
++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
This law is very similar to ACE Law 44 in the sense that the outgoing angle of
|
||||
the neutron is correlated to the outgoing energy and is not sampled from a
|
||||
separate distribution. In this case though, rather than being determined from an
|
||||
analytical distribution function, the cosine of the scattering angle is
|
||||
determined from a tabulated distribution. For each incident energy :math:`i` and
|
||||
outgoing energy :math:`j`, there is a tabulated angular distribution.
|
||||
This distribution is very similar to a Kalbach-Mann distribution in the sense
|
||||
that the outgoing angle of the neutron is correlated to the outgoing energy and
|
||||
is not sampled from a separate distribution. In this case though, rather than
|
||||
being determined from an analytical distribution function, the cosine of the
|
||||
scattering angle is determined from a tabulated distribution. For each incident
|
||||
energy :math:`i` and outgoing energy :math:`j`, there is a tabulated angular
|
||||
distribution.
|
||||
|
||||
The calculation of the outgoing energy of the neutron proceeds exactly the same
|
||||
as in the algorithm described in :ref:`ace-law-4`. In that algorithm, we found
|
||||
an interpolation factor :math:`f`, statistically sampled an incoming energy bin
|
||||
:math:`\ell`, and sampled an outgoing energy bin :math:`j` based on the
|
||||
tabulated cumulative distribution function. Once the outgoing energy has been
|
||||
determined with equation :eq:`ace-law-4-energy`, we then need to decide which
|
||||
angular distribution to use. If histogram interpolation was used on the outgoing
|
||||
energy bins, then we use the angular distribution corresponding to incoming
|
||||
energy bin :math:`\ell` and outgoing energy bin :math:`j`. If linear-linear
|
||||
interpolation was used on the outgoing energy bins, then we use the whichever
|
||||
angular distribution was closer to the sampled value of the cumulative
|
||||
distribution function for the outgoing energy. The actual algorithm used to
|
||||
sample the chosen tabular angular distribution has been previously described in
|
||||
:ref:`angle-tabular`.
|
||||
as in the algorithm described in :ref:`continuous-tabular`. In that algorithm,
|
||||
we found an interpolation factor :math:`f`, statistically sampled an incoming
|
||||
energy bin :math:`\ell`, and sampled an outgoing energy bin :math:`j` based on
|
||||
the tabulated cumulative distribution function. Once the outgoing energy has
|
||||
been determined with equation :eq:`continuous-eout`, we then need to decide
|
||||
which angular distribution to use. If histogram interpolation was used on the
|
||||
outgoing energy bins, then we use the angular distribution corresponding to
|
||||
incoming energy bin :math:`\ell` and outgoing energy bin :math:`j`. If
|
||||
linear-linear interpolation was used on the outgoing energy bins, then we use
|
||||
the whichever angular distribution was closer to the sampled value of the
|
||||
cumulative distribution function for the outgoing energy. The actual algorithm
|
||||
used to sample the chosen tabular angular distribution has been previously
|
||||
described in :ref:`angle-tabular`.
|
||||
|
||||
ACE Law 66 - N-Body Phase Space Distribution
|
||||
++++++++++++++++++++++++++++++++++++++++++++
|
||||
N-Body Phase Space Distribution
|
||||
+++++++++++++++++++++++++++++++
|
||||
|
||||
Reactions in which there are more than two products of similar masses are
|
||||
sometimes best treated by using what's known as an N-body phase
|
||||
distribution. This distribution has the following probability density function
|
||||
for outgoing energy of the :math:`i`-th particle in the center-of-mass system:
|
||||
for outgoing energy and angle of the :math:`i`-th particle in the center-of-mass
|
||||
system:
|
||||
|
||||
.. math::
|
||||
:label: n-body-pdf
|
||||
|
||||
p_i(E') dE' = C_n \sqrt{E'} (E_i^{max} - E')^{(3n/2) - 4} dE'
|
||||
p_i(\mu, E') dE' d\mu = C_n \sqrt{E'} (E_i^{max} - E')^{(3n/2) - 4} dE' d\mu
|
||||
|
||||
where :math:`n` is the number of outgoing particles, :math:`C_n` is a
|
||||
normalization constant, :math:`E_i^{max}` is the maximum center-of-mass energy
|
||||
for particle :math:`i`, and :math:`E'` is the outgoing energy. The algorithm for
|
||||
sampling the outgoing energy is based on algorithms R28, C45, and C64 in the
|
||||
`Monte Carlo Sampler`_. First we calculate the maximum energy in the
|
||||
center-of-mass using the following equation:
|
||||
for particle :math:`i`, and :math:`E'` is the outgoing energy. We see in
|
||||
equation :eq:`n-body-pdf` that the angle is simply isotropic in the
|
||||
center-of-mass system. The algorithm for sampling the outgoing energy is based
|
||||
on algorithms R28, C45, and C64 in the `Monte Carlo Sampler`_. First we
|
||||
calculate the maximum energy in the center-of-mass using the following equation:
|
||||
|
||||
.. math::
|
||||
:label: n-body-emax
|
||||
|
|
@ -961,7 +913,7 @@ distribution. First, the documentation (and code) for MCNP5-1.60 has a mistake
|
|||
in the algorithm for :math:`n = 4`. That being said, there are no existing
|
||||
nuclear data evaluations which use an N-body phase space distribution with
|
||||
:math:`n = 4`, so the error would not affect any calculations. In the
|
||||
ENDF/B-VII.0 nuclear data evaluation, only one reaction uses an N-body phase
|
||||
ENDF/B-VII.1 nuclear data evaluation, only one reaction uses an N-body phase
|
||||
space distribution at all, the :math:`(n,2n)` reaction with H-2.
|
||||
|
||||
.. _transform-coordinates:
|
||||
|
|
@ -1527,16 +1479,16 @@ accordingly.
|
|||
Continuous Outgoing Energies
|
||||
++++++++++++++++++++++++++++
|
||||
|
||||
If the thermal data was processed with :math:`iwt=2` in NJOY, then the
|
||||
outgoing energy spectra is represented by a continuous outgoing energy spectra
|
||||
in tabular form with linear-linear interpolation. The sampling of the outgoing
|
||||
energy portion of this format is very similar to :ref:`ACE Law 61<ace-law-61>`,
|
||||
but the sampling of the correlated angle is performed as it was in the other
|
||||
two representations discussed in this sub-section. In the Law 61 algorithm,
|
||||
we found an interpolation factor :math:`f`, statistically sampled an incoming
|
||||
If the thermal data was processed with :math:`iwt=2` in NJOY, then the outgoing
|
||||
energy spectra is represented by a continuous outgoing energy spectra in tabular
|
||||
form with linear-linear interpolation. The sampling of the outgoing energy
|
||||
portion of this format is very similar to :ref:`correlated-energy-angle`, but
|
||||
the sampling of the correlated angle is performed as it was in the other two
|
||||
representations discussed in this sub-section. In the Law 61 algorithm, we
|
||||
found an interpolation factor :math:`f`, statistically sampled an incoming
|
||||
energy bin :math:`\ell`, and sampled an outgoing energy bin :math:`j` based on
|
||||
the tabulated cumulative distribution function. Once the outgoing energy has
|
||||
been determined with equation :eq:`ace-law-4-energy`, we then need to decide
|
||||
been determined with equation :eq:`continuous-eout`, we then need to decide
|
||||
which angular distribution data to use. Like the linear-linear interpolation
|
||||
case in Law 61, the angular distribution closest to the sampled value of the
|
||||
cumulative distribution function for the outgoing energy is utilized. The
|
||||
|
|
@ -1723,6 +1675,8 @@ another.
|
|||
|
||||
.. _MC21: http://www.osti.gov/bridge/servlets/purl/903083-HT5p1o/903083.pdf
|
||||
|
||||
.. _Romano: http://dx.doi.org/10.1016/j.cpc.2014.11.001
|
||||
|
||||
.. _Sutton and Brown: http://www.osti.gov/bridge/product.biblio.jsp?osti_id=307911
|
||||
|
||||
.. _lectures: https://laws.lanl.gov/vhosts/mcnp.lanl.gov/pdf_files/la-ur-05-4983.pdf
|
||||
|
|
|
|||
|
|
@ -328,8 +328,11 @@ Core Classes
|
|||
:nosignatures:
|
||||
:template: myclass.rst
|
||||
|
||||
openmc.data.IncidentNeutron
|
||||
openmc.data.Reaction
|
||||
openmc.data.Product
|
||||
openmc.data.Tabulated1D
|
||||
openmc.data.ThermalScattering
|
||||
openmc.data.CoherentElastic
|
||||
|
||||
Angle-Energy Distributions
|
||||
|
|
@ -370,11 +373,6 @@ Classes
|
|||
|
||||
openmc.data.ace.Library
|
||||
openmc.data.ace.Table
|
||||
openmc.data.ace.NeutronTable
|
||||
openmc.data.ace.SabTable
|
||||
openmc.data.ace.PhotoatomicTable
|
||||
openmc.data.ace.PhotonuclearTable
|
||||
openmc.data.ace.Reaction
|
||||
|
||||
Functions
|
||||
+++++++++
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
from .data import *
|
||||
from .neutron import *
|
||||
from .reaction import *
|
||||
from .ace import *
|
||||
from .angle_distribution import *
|
||||
from .container import *
|
||||
|
|
@ -11,3 +13,4 @@ from .kalbach_mann import *
|
|||
from .nbody import *
|
||||
from .thermal import *
|
||||
from .urr import *
|
||||
from .library import *
|
||||
|
|
|
|||
1573
openmc/data/ace.py
1573
openmc/data/ace.py
File diff suppressed because it is too large
Load diff
|
|
@ -4,7 +4,7 @@ from numbers import Real
|
|||
import numpy as np
|
||||
|
||||
import openmc.checkvalue as cv
|
||||
from openmc.stats import Univariate, Tabular
|
||||
from openmc.stats import Univariate, Tabular, Uniform
|
||||
from .container import interpolation_scheme
|
||||
|
||||
|
||||
|
|
@ -132,3 +132,69 @@ class AngleDistribution(object):
|
|||
mu.append(mu_i)
|
||||
|
||||
return cls(energy, mu)
|
||||
|
||||
@classmethod
|
||||
def from_ace(cls, ace, location_dist, location_start):
|
||||
"""Generate an angular distribution from ACE data
|
||||
|
||||
Parameters
|
||||
----------
|
||||
ace : openmc.data.ace.Table
|
||||
ACE table to read from
|
||||
location_dist : int
|
||||
Index in the XSS array corresponding to the start of a block,
|
||||
e.g. JXS(9).
|
||||
location_start : int
|
||||
Index in the XSS array corresponding to the start of an angle
|
||||
distribution array
|
||||
|
||||
Returns
|
||||
-------
|
||||
openmc.data.AngleDistribution
|
||||
Angular distribution
|
||||
|
||||
"""
|
||||
# Set starting index for angle distribution
|
||||
idx = location_dist + location_start - 1
|
||||
|
||||
# Number of energies at which angular distributions are tabulated
|
||||
n_energies = int(ace.xss[idx])
|
||||
idx += 1
|
||||
|
||||
# Incoming energy grid
|
||||
energy = ace.xss[idx:idx + n_energies]
|
||||
idx += n_energies
|
||||
|
||||
# Read locations for angular distributions
|
||||
lc = ace.xss[idx:idx + n_energies].astype(int)
|
||||
idx += n_energies
|
||||
|
||||
mu = []
|
||||
for i in range(n_energies):
|
||||
if lc[i] > 0:
|
||||
# Equiprobable 32 bin distribution
|
||||
idx = location_dist + abs(lc[i]) - 1
|
||||
cos = ace.xss[idx:idx + 33]
|
||||
pdf = np.zeros(33)
|
||||
pdf[:32] = 1.0/(32.0*np.diff(cos))
|
||||
cdf = np.linspace(0.0, 1.0, 33)
|
||||
|
||||
mu_i = Tabular(cos, pdf, 'histogram', ignore_negative=True)
|
||||
mu_i.c = cdf
|
||||
elif lc[i] < 0:
|
||||
# Tabular angular distribution
|
||||
idx = location_dist + abs(lc[i]) - 1
|
||||
intt = int(ace.xss[idx])
|
||||
n_points = int(ace.xss[idx + 1])
|
||||
data = ace.xss[idx + 2:idx + 2 + 3*n_points]
|
||||
data.shape = (3, n_points)
|
||||
|
||||
mu_i = Tabular(data[0], data[1], interpolation_scheme[intt])
|
||||
mu_i.c = data[2]
|
||||
else:
|
||||
# Isotropic angular distribution
|
||||
mu_i = Uniform(-1., 1.)
|
||||
|
||||
mu.append(mu_i)
|
||||
|
||||
return cls(energy, mu)
|
||||
|
|
|
|||
|
|
@ -38,3 +38,73 @@ class AngleEnergy(object):
|
|||
return openmc.data.KalbachMann.from_hdf5(group)
|
||||
elif dist_type == 'nbody':
|
||||
return openmc.data.NBodyPhaseSpace.from_hdf5(group)
|
||||
|
||||
@staticmethod
|
||||
def from_ace(ace, location_dist, location_start, rx=None):
|
||||
"""Generate an AngleEnergy object from ACE data
|
||||
|
||||
Parameters
|
||||
----------
|
||||
ace : openmc.data.ace.Table
|
||||
ACE table to read from
|
||||
location_dist : int
|
||||
Index in the XSS array corresponding to the start of a block,
|
||||
e.g. JXS(11) for the the DLW block.
|
||||
location_start : int
|
||||
Index in the XSS array corresponding to the start of an energy
|
||||
distribution array
|
||||
rx : Reaction
|
||||
Reaction this energy distribution will be associated with
|
||||
|
||||
Returns
|
||||
-------
|
||||
distribution : openmc.data.AngleEnergy
|
||||
Secondary angle-energy distribution
|
||||
|
||||
"""
|
||||
# Set starting index for energy distribution
|
||||
idx = location_dist + location_start - 1
|
||||
|
||||
law = int(ace.xss[idx + 1])
|
||||
location_data = int(ace.xss[idx + 2])
|
||||
|
||||
# Position index for reading law data
|
||||
idx = location_dist + location_data - 1
|
||||
|
||||
# Parse energy distribution data
|
||||
if law == 2:
|
||||
distribution = openmc.data.UncorrelatedAngleEnergy()
|
||||
distribution.energy = openmc.data.DiscretePhoton.from_ace(ace, idx)
|
||||
elif law in (3, 33):
|
||||
distribution = openmc.data.UncorrelatedAngleEnergy()
|
||||
distribution.energy = openmc.data.LevelInelastic.from_ace(ace, idx)
|
||||
elif law == 4:
|
||||
distribution = openmc.data.UncorrelatedAngleEnergy()
|
||||
distribution.energy = openmc.data.ContinuousTabular.from_ace(
|
||||
ace, idx, location_dist)
|
||||
elif law == 5:
|
||||
distribution = openmc.data.UncorrelatedAngleEnergy()
|
||||
distribution.energy = openmc.data.GeneralEvaporation.from_ace(ace, idx)
|
||||
elif law == 7:
|
||||
distribution = openmc.data.UncorrelatedAngleEnergy()
|
||||
distribution.energy = openmc.data.MaxwellEnergy.from_ace(ace, idx)
|
||||
elif law == 9:
|
||||
distribution = openmc.data.UncorrelatedAngleEnergy()
|
||||
distribution.energy = openmc.data.Evaporation.from_ace(ace, idx)
|
||||
elif law == 11:
|
||||
distribution = openmc.data.UncorrelatedAngleEnergy()
|
||||
distribution.energy = openmc.data.WattEnergy.from_ace(ace, idx)
|
||||
elif law == 44:
|
||||
distribution = openmc.data.KalbachMann.from_ace(
|
||||
ace, idx, location_dist)
|
||||
elif law == 61:
|
||||
distribution = openmc.data.CorrelatedAngleEnergy.from_ace(
|
||||
ace, idx, location_dist)
|
||||
elif law == 66:
|
||||
distribution = openmc.data.NBodyPhaseSpace.from_ace(
|
||||
ace, idx, rx.q_value)
|
||||
else:
|
||||
raise IOError("Unsupported ACE secondary energy "
|
||||
"distribution law {0}".format(law))
|
||||
|
||||
return distribution
|
||||
|
|
|
|||
|
|
@ -267,3 +267,42 @@ class Tabulated1D(object):
|
|||
breakpoints = dataset.attrs['breakpoints']
|
||||
interpolation = dataset.attrs['interpolation']
|
||||
return cls(x, y, breakpoints, interpolation)
|
||||
|
||||
@classmethod
|
||||
def from_ace(cls, ace, idx=0):
|
||||
"""Create a Tabulated1D object from an ACE table.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
ace : openmc.data.ace.Table
|
||||
An ACE table
|
||||
idx : int
|
||||
Offset to read from in XSS array (default of zero)
|
||||
|
||||
Returns
|
||||
-------
|
||||
openmc.data.Tabulated1D
|
||||
Tabulated data object
|
||||
|
||||
"""
|
||||
|
||||
# Get number of regions and pairs
|
||||
n_regions = int(ace.xss[idx])
|
||||
n_pairs = int(ace.xss[idx + 1 + 2*n_regions])
|
||||
|
||||
# Get interpolation information
|
||||
idx += 1
|
||||
if n_regions > 0:
|
||||
breakpoints = ace.xss[idx:idx + n_regions].astype(int)
|
||||
interpolation = ace.xss[idx + n_regions:idx + 2*n_regions].astype(int)
|
||||
else:
|
||||
# 0 regions implies linear-linear interpolation by default
|
||||
breakpoints = np.array([n_pairs])
|
||||
interpolation = np.array([2])
|
||||
|
||||
# Get (x,y) pairs
|
||||
idx += 2*n_regions + 1
|
||||
x = ace.xss[idx:idx + n_pairs]
|
||||
y = ace.xss[idx + n_pairs:idx + 2*n_pairs]
|
||||
|
||||
return Tabulated1D(x, y, breakpoints, interpolation)
|
||||
|
|
|
|||
|
|
@ -203,8 +203,8 @@ class CorrelatedAngleEnergy(AngleEnergy):
|
|||
|
||||
"""
|
||||
interp_data = group['energy'].attrs['interpolation']
|
||||
energy_breakpoints = interp_data[0,:]
|
||||
energy_interpolation = interp_data[1,:]
|
||||
energy_breakpoints = interp_data[0, :]
|
||||
energy_interpolation = interp_data[1, :]
|
||||
energy = group['energy'].value
|
||||
|
||||
offsets = group['energy_out'].attrs['offsets']
|
||||
|
|
@ -289,3 +289,116 @@ class CorrelatedAngleEnergy(AngleEnergy):
|
|||
|
||||
return cls(energy_breakpoints, energy_interpolation,
|
||||
energy, energy_out, mu)
|
||||
|
||||
@classmethod
|
||||
def from_ace(cls, ace, idx, ldis):
|
||||
"""Generate correlated angle-energy distribution from ACE data
|
||||
|
||||
Parameters
|
||||
----------
|
||||
ace : openmc.data.ace.Table
|
||||
ACE table to read from
|
||||
idx : int
|
||||
Index in XSS array of the start of the energy distribution data
|
||||
(LDIS + LOCC - 1)
|
||||
ldis : int
|
||||
Index in XSS array of the start of the energy distribution block
|
||||
(e.g. JXS[11])
|
||||
|
||||
Returns
|
||||
-------
|
||||
openmc.data.CorrelatedAngleEnergy
|
||||
Correlated angle-energy distribution
|
||||
|
||||
"""
|
||||
# Read number of interpolation regions and incoming energies
|
||||
n_regions = int(ace.xss[idx])
|
||||
n_energy_in = int(ace.xss[idx + 1 + 2*n_regions])
|
||||
|
||||
# Get interpolation information
|
||||
idx += 1
|
||||
if n_regions > 0:
|
||||
breakpoints = ace.xss[idx:idx + n_regions].astype(int)
|
||||
interpolation = ace.xss[idx + n_regions:idx + 2*n_regions].astype(int)
|
||||
else:
|
||||
breakpoints = np.array([n_energy_in])
|
||||
interpolation = np.array([2])
|
||||
|
||||
# Incoming energies at which distributions exist
|
||||
idx += 2*n_regions + 1
|
||||
energy = ace.xss[idx:idx + n_energy_in]
|
||||
|
||||
# Location of distributions
|
||||
idx += n_energy_in
|
||||
loc_dist = ace.xss[idx:idx + n_energy_in].astype(int)
|
||||
|
||||
# Initialize list of distributions
|
||||
energy_out = []
|
||||
mu = []
|
||||
|
||||
# Read each outgoing energy distribution
|
||||
for i in range(n_energy_in):
|
||||
idx = ldis + loc_dist[i] - 1
|
||||
|
||||
# intt = interpolation scheme (1=hist, 2=lin-lin)
|
||||
INTTp = int(ace.xss[idx])
|
||||
intt = INTTp % 10
|
||||
n_discrete_lines = (INTTp - intt)//10
|
||||
if intt not in (1, 2):
|
||||
warn("Interpolation scheme for continuous tabular distribution "
|
||||
"is not histogram or linear-linear.")
|
||||
intt = 2
|
||||
|
||||
# Secondary energy distribution
|
||||
n_energy_out = int(ace.xss[idx + 1])
|
||||
data = ace.xss[idx + 2:idx + 2 + 4*n_energy_out]
|
||||
data.shape = (4, n_energy_out)
|
||||
|
||||
# Create continuous distribution
|
||||
eout_continuous = Tabular(data[0][n_discrete_lines:],
|
||||
data[1][n_discrete_lines:],
|
||||
interpolation_scheme[intt],
|
||||
ignore_negative=True)
|
||||
eout_continuous.c = data[2][n_discrete_lines:]
|
||||
|
||||
# If discrete lines are present, create a mixture distribution
|
||||
if n_discrete_lines > 0:
|
||||
eout_discrete = Discrete(data[0][:n_discrete_lines],
|
||||
data[1][:n_discrete_lines])
|
||||
eout_discrete.c = data[2][:n_discrete_lines]
|
||||
if n_discrete_lines == n_energy_out:
|
||||
eout_i = eout_discrete
|
||||
else:
|
||||
p_discrete = min(sum(eout_discrete.p), 1.0)
|
||||
eout_i = Mixture([p_discrete, 1. - p_discrete],
|
||||
[eout_discrete, eout_continuous])
|
||||
else:
|
||||
eout_i = eout_continuous
|
||||
|
||||
energy_out.append(eout_i)
|
||||
|
||||
lc = data[3].astype(int)
|
||||
|
||||
# Secondary angular distributions
|
||||
mu_i = []
|
||||
for j in range(n_energy_out):
|
||||
if lc[j] > 0:
|
||||
idx = ldis + abs(lc[j]) - 1
|
||||
|
||||
intt = int(ace.xss[idx])
|
||||
n_cosine = int(ace.xss[idx + 1])
|
||||
data = ace.xss[idx + 2:idx + 2 + 3*n_cosine]
|
||||
data.shape = (3, n_cosine)
|
||||
|
||||
mu_ij = Tabular(data[0], data[1], interpolation_scheme[intt])
|
||||
mu_ij.c = data[2]
|
||||
else:
|
||||
# Isotropic distribution
|
||||
mu_ij = Uniform(-1., 1.)
|
||||
|
||||
mu_i.append(mu_ij)
|
||||
|
||||
# Add cosine distributions for this incoming energy to list
|
||||
mu.append(mu_i)
|
||||
|
||||
return cls(breakpoints, interpolation, energy, energy_out, mu)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
from abc import ABCMeta, abstractmethod
|
||||
from collections import Iterable
|
||||
from numbers import Integral, Real
|
||||
from warnings import warn
|
||||
|
||||
import h5py
|
||||
import numpy as np
|
||||
|
|
@ -200,6 +201,33 @@ class MaxwellEnergy(EnergyDistribution):
|
|||
u = group.attrs['u']
|
||||
return cls(theta, u)
|
||||
|
||||
@classmethod
|
||||
def from_ace(cls, ace, idx=0):
|
||||
"""Create a Maxwell distribution from an ACE table
|
||||
|
||||
Parameters
|
||||
----------
|
||||
ace : openmc.data.ace.Table
|
||||
An ACE table
|
||||
idx : int
|
||||
Offset to read from in XSS array (default of zero)
|
||||
|
||||
Returns
|
||||
-------
|
||||
openmc.data.MaxwellEnergy
|
||||
Maxwell distribution
|
||||
|
||||
"""
|
||||
# Read nuclear temperature
|
||||
theta = Tabulated1D.from_ace(ace, idx)
|
||||
|
||||
# Restriction energy
|
||||
nr = int(ace.xss[idx])
|
||||
ne = int(ace.xss[idx + 1 + 2*nr])
|
||||
u = ace.xss[idx + 2 + 2*nr + 2*ne]
|
||||
|
||||
return cls(theta, u)
|
||||
|
||||
|
||||
class Evaporation(EnergyDistribution):
|
||||
r"""Evaporation spectrum represented as
|
||||
|
|
@ -273,13 +301,40 @@ class Evaporation(EnergyDistribution):
|
|||
Returns
|
||||
-------
|
||||
openmc.data.Evaporation
|
||||
Evaporation spectrum distribution
|
||||
Evaporation spectrum
|
||||
|
||||
"""
|
||||
theta = Tabulated1D.from_hdf5(group['theta'])
|
||||
u = group.attrs['u']
|
||||
return cls(theta, u)
|
||||
|
||||
@classmethod
|
||||
def from_ace(cls, ace, idx=0):
|
||||
"""Create an evaporation spectrum from an ACE table
|
||||
|
||||
Parameters
|
||||
----------
|
||||
ace : openmc.data.ace.Table
|
||||
An ACE table
|
||||
idx : int
|
||||
Offset to read from in XSS array (default of zero)
|
||||
|
||||
Returns
|
||||
-------
|
||||
openmc.data.Evaporation
|
||||
Evaporation spectrum
|
||||
|
||||
"""
|
||||
# Read nuclear temperature
|
||||
theta = Tabulated1D.from_ace(ace, idx)
|
||||
|
||||
# Restriction energy
|
||||
nr = int(ace.xss[idx])
|
||||
ne = int(ace.xss[idx + 1 + 2*nr])
|
||||
u = ace.xss[idx + 2 + 2*nr + 2*ne]
|
||||
|
||||
return cls(theta, u)
|
||||
|
||||
|
||||
class WattEnergy(EnergyDistribution):
|
||||
r"""Energy-dependent Watt spectrum represented as
|
||||
|
|
@ -375,6 +430,45 @@ class WattEnergy(EnergyDistribution):
|
|||
u = group.attrs['u']
|
||||
return cls(a, b, u)
|
||||
|
||||
@classmethod
|
||||
def from_ace(cls, ace, idx):
|
||||
"""Create a Watt fission spectrum from an ACE table
|
||||
|
||||
Parameters
|
||||
----------
|
||||
ace : openmc.data.ace.Table
|
||||
An ACE table
|
||||
idx : int
|
||||
Offset to read from in XSS array (default of zero)
|
||||
|
||||
Returns
|
||||
-------
|
||||
openmc.data.WattEnergy
|
||||
Watt fission spectrum
|
||||
|
||||
"""
|
||||
# Energy-dependent a parameter
|
||||
a = Tabulated1D.from_ace(ace, idx)
|
||||
|
||||
# Advance index
|
||||
nr = int(ace.xss[idx])
|
||||
ne = int(ace.xss[idx + 1 + 2*nr])
|
||||
idx += 2 + 2*nr + 2*ne
|
||||
|
||||
# Energy-dependent b parameter
|
||||
b = Tabulated1D.from_ace(ace, idx)
|
||||
|
||||
# Advance index
|
||||
nr = int(ace.xss[idx])
|
||||
ne = int(ace.xss[idx + 1 + 2*nr])
|
||||
idx += 2 + 2*nr + 2*ne
|
||||
|
||||
# Restriction energy
|
||||
u = ace.xss[idx]
|
||||
|
||||
return cls(a, b, u)
|
||||
|
||||
|
||||
class MadlandNix(EnergyDistribution):
|
||||
r"""Energy-dependent fission neutron spectrum (Madland and Nix) given in
|
||||
ENDF MF=5, LF=12 represented as
|
||||
|
|
@ -574,6 +668,27 @@ class DiscretePhoton(EnergyDistribution):
|
|||
awr = group.attrs['atomic_weight_ratio']
|
||||
return cls(primary_flag, energy, awr)
|
||||
|
||||
@classmethod
|
||||
def from_ace(cls, ace, idx):
|
||||
"""Generate discrete photon energy distribution from an ACE table
|
||||
|
||||
Parameters
|
||||
----------
|
||||
ace : openmc.data.ace.Table
|
||||
An ACE table
|
||||
idx : int
|
||||
Offset to read from in XSS array (default of zero)
|
||||
|
||||
Returns
|
||||
-------
|
||||
openmc.data.DiscretePhoton
|
||||
Discrete photon energy distribution
|
||||
|
||||
"""
|
||||
primary_flag = int(ace.xss[idx])
|
||||
energy = ace.xss[idx + 1]
|
||||
return cls(primary_flag, energy, ace.atomic_weight_ratio)
|
||||
|
||||
|
||||
class LevelInelastic(EnergyDistribution):
|
||||
r"""Level inelastic scattering
|
||||
|
|
@ -650,6 +765,26 @@ class LevelInelastic(EnergyDistribution):
|
|||
mass_ratio = group.attrs['mass_ratio']
|
||||
return cls(threshold, mass_ratio)
|
||||
|
||||
@classmethod
|
||||
def from_ace(cls, ace, idx):
|
||||
"""Generate level inelastic distribution from an ACE table
|
||||
|
||||
Parameters
|
||||
----------
|
||||
ace : openmc.data.ace.Table
|
||||
An ACE table
|
||||
idx : int
|
||||
Offset to read from in XSS array (default of zero)
|
||||
|
||||
Returns
|
||||
-------
|
||||
openmc.data.LevelInelastic
|
||||
Level inelastic scattering distribution
|
||||
|
||||
"""
|
||||
threshold, mass_ratio = ace.xss[idx:idx + 2]
|
||||
return cls(threshold, mass_ratio)
|
||||
|
||||
|
||||
class ContinuousTabular(EnergyDistribution):
|
||||
"""Continuous tabular distribution
|
||||
|
|
@ -802,8 +937,8 @@ class ContinuousTabular(EnergyDistribution):
|
|||
|
||||
"""
|
||||
interp_data = group['energy'].attrs['interpolation']
|
||||
energy_breakpoints = interp_data[0,:]
|
||||
energy_interpolation = interp_data[1,:]
|
||||
energy_breakpoints = interp_data[0, :]
|
||||
energy_interpolation = interp_data[1, :]
|
||||
energy = group['energy'].value
|
||||
|
||||
data = group['distribution']
|
||||
|
|
@ -848,3 +983,89 @@ class ContinuousTabular(EnergyDistribution):
|
|||
|
||||
return cls(energy_breakpoints, energy_interpolation,
|
||||
energy, energy_out)
|
||||
|
||||
@classmethod
|
||||
def from_ace(cls, ace, idx, ldis):
|
||||
"""Generate continuous tabular energy distribution from ACE data
|
||||
|
||||
Parameters
|
||||
----------
|
||||
ace : openmc.data.ace.Table
|
||||
ACE table to read from
|
||||
idx : int
|
||||
Index in XSS array of the start of the energy distribution data
|
||||
(LDIS + LOCC - 1)
|
||||
ldis : int
|
||||
Index in XSS array of the start of the energy distribution block
|
||||
(e.g. JXS[11])
|
||||
|
||||
Returns
|
||||
-------
|
||||
openmc.data.ContinuousTabular
|
||||
Continuous tabular energy distribution
|
||||
|
||||
"""
|
||||
# Read number of interpolation regions and incoming energies
|
||||
n_regions = int(ace.xss[idx])
|
||||
n_energy_in = int(ace.xss[idx + 1 + 2*n_regions])
|
||||
|
||||
# Get interpolation information
|
||||
idx += 1
|
||||
if n_regions > 0:
|
||||
breakpoints = ace.xss[idx:idx + n_regions].astype(int)
|
||||
interpolation = ace.xss[idx + n_regions:idx + 2*n_regions].astype(int)
|
||||
else:
|
||||
breakpoints = np.array([n_energy_in])
|
||||
interpolation = np.array([2])
|
||||
|
||||
# Incoming energies at which distributions exist
|
||||
idx += 2*n_regions + 1
|
||||
energy = ace.xss[idx:idx + n_energy_in]
|
||||
|
||||
# Location of distributions
|
||||
idx += n_energy_in
|
||||
loc_dist = ace.xss[idx:idx + n_energy_in].astype(int)
|
||||
|
||||
# Initialize variables
|
||||
energy_out = []
|
||||
|
||||
# Read each outgoing energy distribution
|
||||
for i in range(n_energy_in):
|
||||
idx = ldis + loc_dist[i] - 1
|
||||
|
||||
# intt = interpolation scheme (1=hist, 2=lin-lin)
|
||||
INTTp = int(ace.xss[idx])
|
||||
intt = INTTp % 10
|
||||
n_discrete_lines = (INTTp - intt)//10
|
||||
if intt not in (1, 2):
|
||||
warn("Interpolation scheme for continuous tabular distribution "
|
||||
"is not histogram or linear-linear.")
|
||||
intt = 2
|
||||
|
||||
n_energy_out = int(ace.xss[idx + 1])
|
||||
data = ace.xss[idx + 2:idx + 2 + 3*n_energy_out]
|
||||
data.shape = (3, n_energy_out)
|
||||
|
||||
# Create continuous distribution
|
||||
eout_continuous = Tabular(data[0][n_discrete_lines:],
|
||||
data[1][n_discrete_lines:],
|
||||
interpolation_scheme[intt])
|
||||
eout_continuous.c = data[2][n_discrete_lines:]
|
||||
|
||||
# If discrete lines are present, create a mixture distribution
|
||||
if n_discrete_lines > 0:
|
||||
eout_discrete = Discrete(data[0][:n_discrete_lines],
|
||||
data[1][:n_discrete_lines])
|
||||
eout_discrete.c = data[2][:n_discrete_lines]
|
||||
if n_discrete_lines == n_energy_out:
|
||||
eout_i = eout_discrete
|
||||
else:
|
||||
p_discrete = min(sum(eout_discrete.p), 1.0)
|
||||
eout_i = Mixture([p_discrete, 1. - p_discrete],
|
||||
[eout_discrete, eout_continuous])
|
||||
else:
|
||||
eout_i = eout_continuous
|
||||
|
||||
energy_out.append(eout_i)
|
||||
|
||||
return cls(breakpoints, interpolation, energy, energy_out)
|
||||
|
|
|
|||
|
|
@ -197,8 +197,8 @@ class KalbachMann(AngleEnergy):
|
|||
|
||||
"""
|
||||
interp_data = group['energy'].attrs['interpolation']
|
||||
energy_breakpoints = interp_data[0,:]
|
||||
energy_interpolation = interp_data[1,:]
|
||||
energy_breakpoints = interp_data[0, :]
|
||||
energy_interpolation = interp_data[1, :]
|
||||
energy = group['energy'].value
|
||||
|
||||
data = group['distribution']
|
||||
|
|
@ -251,3 +251,93 @@ class KalbachMann(AngleEnergy):
|
|||
|
||||
return cls(energy_breakpoints, energy_interpolation,
|
||||
energy, energy_out, precompound, slope)
|
||||
|
||||
@classmethod
|
||||
def from_ace(cls, ace, idx, ldis):
|
||||
"""Generate Kalbach-Mann energy-angle distribution from ACE data
|
||||
|
||||
Parameters
|
||||
----------
|
||||
ace : openmc.data.ace.Table
|
||||
ACE table to read from
|
||||
idx : int
|
||||
Index in XSS array of the start of the energy distribution data
|
||||
(LDIS + LOCC - 1)
|
||||
ldis : int
|
||||
Index in XSS array of the start of the energy distribution block
|
||||
(e.g. JXS[11])
|
||||
|
||||
Returns
|
||||
-------
|
||||
openmc.data.KalbachMann
|
||||
Kalbach-Mann energy-angle distribution
|
||||
|
||||
"""
|
||||
# Read number of interpolation regions and incoming energies
|
||||
n_regions = int(ace.xss[idx])
|
||||
n_energy_in = int(ace.xss[idx + 1 + 2*n_regions])
|
||||
|
||||
# Get interpolation information
|
||||
idx += 1
|
||||
if n_regions > 0:
|
||||
breakpoints = ace.xss[idx:idx + n_regions].astype(int)
|
||||
interpolation = ace.xss[idx + n_regions:idx + 2*n_regions].astype(int)
|
||||
else:
|
||||
breakpoints = np.array([n_energy_in])
|
||||
interpolation = np.array([2])
|
||||
|
||||
# Incoming energies at which distributions exist
|
||||
idx += 2*n_regions + 1
|
||||
energy = ace.xss[idx:idx + n_energy_in]
|
||||
|
||||
# Location of distributions
|
||||
idx += n_energy_in
|
||||
loc_dist = ace.xss[idx:idx + n_energy_in].astype(int)
|
||||
|
||||
# Initialize variables
|
||||
energy_out = []
|
||||
km_r = []
|
||||
km_a = []
|
||||
|
||||
# Read each outgoing energy distribution
|
||||
for i in range(n_energy_in):
|
||||
idx = ldis + loc_dist[i] - 1
|
||||
|
||||
# intt = interpolation scheme (1=hist, 2=lin-lin)
|
||||
INTTp = int(ace.xss[idx])
|
||||
intt = INTTp % 10
|
||||
n_discrete_lines = (INTTp - intt)//10
|
||||
if intt not in (1, 2):
|
||||
warn("Interpolation scheme for continuous tabular distribution "
|
||||
"is not histogram or linear-linear.")
|
||||
intt = 2
|
||||
|
||||
n_energy_out = int(ace.xss[idx + 1])
|
||||
data = ace.xss[idx + 2:idx + 2 + 5*n_energy_out]
|
||||
data.shape = (5, n_energy_out)
|
||||
|
||||
# Create continuous distribution
|
||||
eout_continuous = Tabular(data[0][n_discrete_lines:],
|
||||
data[1][n_discrete_lines:],
|
||||
interpolation_scheme[intt])
|
||||
eout_continuous.c = data[2][n_discrete_lines:]
|
||||
|
||||
# If discrete lines are present, create a mixture distribution
|
||||
if n_discrete_lines > 0:
|
||||
eout_discrete = Discrete(data[0][:n_discrete_lines],
|
||||
data[1][:n_discrete_lines])
|
||||
eout_discrete.c = data[2][:n_discrete_lines]
|
||||
if n_discrete_lines == n_energy_out:
|
||||
eout_i = eout_discrete
|
||||
else:
|
||||
p_discrete = min(sum(eout_discrete.p), 1.0)
|
||||
eout_i = Mixture([p_discrete, 1. - p_discrete],
|
||||
[eout_discrete, eout_continuous])
|
||||
else:
|
||||
eout_i = eout_continuous
|
||||
|
||||
energy_out.append(eout_i)
|
||||
km_r.append(Tabulated1D(data[0], data[3]))
|
||||
km_a.append(Tabulated1D(data[0], data[4]))
|
||||
|
||||
return cls(breakpoints, interpolation, energy, energy_out, km_r, km_a)
|
||||
|
|
|
|||
47
openmc/data/library.py
Normal file
47
openmc/data/library.py
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
import os
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
import h5py
|
||||
|
||||
from openmc.clean_xml import clean_xml_indentation
|
||||
|
||||
class DataLibrary(object):
|
||||
def __init__(self):
|
||||
self.libraries = []
|
||||
|
||||
def register_file(self, filename, filetype='neutron'):
|
||||
h5file = h5py.File(filename, 'r')
|
||||
|
||||
materials = []
|
||||
for name, group in h5file.items():
|
||||
materials.append(name)
|
||||
|
||||
library = {'path': filename, 'type': filetype, 'materials': materials}
|
||||
self.libraries.append(library)
|
||||
|
||||
def export_to_xml(self, path='cross_sections.xml'):
|
||||
root = ET.Element('cross_sections')
|
||||
|
||||
# Determine common directory for library paths
|
||||
common_dir = os.path.commonpath([lib['path'] for lib in self.libraries])
|
||||
if common_dir == '':
|
||||
common_dir = '.'
|
||||
|
||||
directory = os.path.relpath(common_dir, os.path.dirname(path))
|
||||
if directory != '.':
|
||||
dir_element = ET.SubElement(root, "directory")
|
||||
dir_element.text = directory
|
||||
|
||||
for library in self.libraries:
|
||||
lib_element = ET.SubElement(root, "library")
|
||||
lib_element.set('materials', ' '.join(library['materials']))
|
||||
lib_element.set('path', os.path.relpath(library['path'], common_dir))
|
||||
lib_element.set('type', library['type'])
|
||||
|
||||
# Clean the indentation to be user-readable
|
||||
clean_xml_indentation(root)
|
||||
|
||||
# Write XML file
|
||||
tree = ET.ElementTree(root)
|
||||
tree.write(path, xml_declaration=True, encoding='utf-8',
|
||||
method='xml')
|
||||
|
|
@ -116,3 +116,27 @@ class NBodyPhaseSpace(AngleEnergy):
|
|||
awr = group.attrs['atomic_weight_ratio']
|
||||
q_value = group.attrs['q_value']
|
||||
return cls(total_mass, n_particles, awr, q_value)
|
||||
|
||||
@classmethod
|
||||
def from_ace(cls, ace, idx, q_value):
|
||||
"""Generate N-body phase space distribution from ACE data
|
||||
|
||||
Parameters
|
||||
----------
|
||||
ace : openmc.data.ace.Table
|
||||
ACE table to read from
|
||||
idx : int
|
||||
Index in XSS array of the start of the energy distribution data
|
||||
(LDIS + LOCC - 1)
|
||||
q_value : float
|
||||
Q-value for reaction in MeV
|
||||
|
||||
Returns
|
||||
-------
|
||||
openmc.data.NBodyPhaseSpace
|
||||
N-body phase space distribution
|
||||
|
||||
"""
|
||||
n_particles = int(ace.xss[idx])
|
||||
total_mass = ace.xss[idx + 1]
|
||||
return cls(total_mass, n_particles, ace.atomic_weight_ratio, q_value)
|
||||
|
|
|
|||
405
openmc/data/neutron.py
Normal file
405
openmc/data/neutron.py
Normal file
|
|
@ -0,0 +1,405 @@
|
|||
from __future__ import division, unicode_literals
|
||||
import io
|
||||
import sys
|
||||
from warnings import warn
|
||||
from collections import OrderedDict, Iterable, Mapping
|
||||
from copy import deepcopy
|
||||
from numbers import Integral, Real
|
||||
import sys
|
||||
|
||||
import numpy as np
|
||||
from numpy.polynomial import Polynomial
|
||||
import h5py
|
||||
|
||||
from . import atomic_number, atomic_symbol
|
||||
from .ace import Table, get_table
|
||||
from .container import Tabulated1D
|
||||
from .energy_distribution import *
|
||||
from .product import Product
|
||||
from .reaction import Reaction, _get_photon_products
|
||||
from .thermal import CoherentElastic
|
||||
from .urr import ProbabilityTables
|
||||
from openmc.stats import Tabular, Discrete, Uniform, Mixture
|
||||
import openmc.checkvalue as cv
|
||||
|
||||
if sys.version_info[0] >= 3:
|
||||
basestring = str
|
||||
|
||||
|
||||
class IncidentNeutron(object):
|
||||
"""Continuous-energy neutron interaction data.
|
||||
|
||||
Instances of this class are not normally instantiated by the user but rather
|
||||
created using the factory methods :meth:`IncidentNeutron.from_hdf5` and
|
||||
:meth:`IncidentNeutron.from_ace`.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
name : str
|
||||
Name of the table
|
||||
atomic_number : int
|
||||
Number of protons in the nucleus
|
||||
mass_number : int
|
||||
Number of nucleons in the nucleus
|
||||
metastable : int
|
||||
Metastable state of the nucleus. A value of zero indicates ground state.
|
||||
atomic_weight_ratio : float
|
||||
Atomic mass ratio of the target nuclide.
|
||||
temperature : float
|
||||
Temperature of the target nuclide in eV.
|
||||
|
||||
Attributes
|
||||
----------
|
||||
atomic_number : int
|
||||
Number of protons in the nucleus
|
||||
atomic_symbol : str
|
||||
Atomic symbol of the nuclide, e.g., 'Zr'
|
||||
atomic_weight_ratio : float
|
||||
Atomic weight ratio of the target nuclide.
|
||||
energy : numpy.ndarray
|
||||
The energy values (MeV) at which reaction cross-sections are tabulated.
|
||||
mass_number : int
|
||||
Number of nucleons in the nucleus
|
||||
metastable : int
|
||||
Metastable state of the nucleus. A value of zero indicates ground state.
|
||||
name : str
|
||||
ZAID identifier of the table, e.g. 92235.70c.
|
||||
reactions : collections.OrderedDict
|
||||
Contains the cross sections, secondary angle and energy distributions,
|
||||
and other associated data for each reaction. The keys are the MT values
|
||||
and the values are Reaction objects.
|
||||
summed_reactions : collections.OrderedDict
|
||||
Contains summed cross sections, e.g., the total cross section. The keys
|
||||
are the MT values and the values are Reaction objects.
|
||||
temperature : float
|
||||
Temperature of the target nuclide in eV.
|
||||
urr : None or openmc.data.ProbabilityTables
|
||||
Unresolved resonance region probability tables
|
||||
|
||||
"""
|
||||
|
||||
def __init__(self, name, atomic_number, mass_number, metastable,
|
||||
atomic_weight_ratio, temperature):
|
||||
self.name = name
|
||||
self.atomic_number = atomic_number
|
||||
self.mass_number = mass_number
|
||||
self.metastable = metastable
|
||||
self.atomic_weight_ratio = atomic_weight_ratio
|
||||
self.temperature = temperature
|
||||
|
||||
self._energy = None
|
||||
self.reactions = OrderedDict()
|
||||
self.summed_reactions = OrderedDict()
|
||||
self.urr = None
|
||||
|
||||
def __repr__(self):
|
||||
return "<IncidentNeutron: {}>".format(self.name)
|
||||
|
||||
def __iter__(self):
|
||||
return iter(self.reactions.values())
|
||||
|
||||
@property
|
||||
def name(self):
|
||||
return self._name
|
||||
|
||||
@property
|
||||
def atomic_number(self):
|
||||
return self._atomic_number
|
||||
|
||||
@property
|
||||
def mass_number(self):
|
||||
return self._mass_number
|
||||
|
||||
@property
|
||||
def metastable(self):
|
||||
return self._metastable
|
||||
|
||||
@property
|
||||
def atomic_weight_ratio(self):
|
||||
return self._atomic_weight_ratio
|
||||
|
||||
@property
|
||||
def energy(self):
|
||||
return self._energy
|
||||
|
||||
@property
|
||||
def temperature(self):
|
||||
return self._temperature
|
||||
|
||||
@property
|
||||
def reactions(self):
|
||||
return self._reactions
|
||||
|
||||
@property
|
||||
def summed_reactions(self):
|
||||
return self._summed_reactions
|
||||
|
||||
@property
|
||||
def urr(self):
|
||||
return self._urr
|
||||
|
||||
@name.setter
|
||||
def name(self, name):
|
||||
cv.check_type('name', name, basestring)
|
||||
self._name = name
|
||||
|
||||
@property
|
||||
def atomic_symbol(self):
|
||||
return atomic_symbol[self.atomic_number]
|
||||
|
||||
@atomic_number.setter
|
||||
def atomic_number(self, atomic_number):
|
||||
cv.check_type('atomic number', atomic_number, Integral)
|
||||
cv.check_greater_than('atomic number', atomic_number, 0)
|
||||
self._atomic_number = atomic_number
|
||||
|
||||
@mass_number.setter
|
||||
def mass_number(self, mass_number):
|
||||
cv.check_type('mass number', mass_number, Integral)
|
||||
cv.check_greater_than('mass number', mass_number, 0, True)
|
||||
self._mass_number = mass_number
|
||||
|
||||
@metastable.setter
|
||||
def metastable(self, metastable):
|
||||
cv.check_type('metastable', metastable, Integral)
|
||||
cv.check_greater_than('metastable', metastable, 0, True)
|
||||
self._metastable = metastable
|
||||
|
||||
@atomic_weight_ratio.setter
|
||||
def atomic_weight_ratio(self, atomic_weight_ratio):
|
||||
cv.check_type('atomic weight ratio', atomic_weight_ratio, Real)
|
||||
cv.check_greater_than('atomic weight ratio', atomic_weight_ratio, 0.0)
|
||||
self._atomic_weight_ratio = atomic_weight_ratio
|
||||
|
||||
@temperature.setter
|
||||
def temperature(self, temperature):
|
||||
cv.check_type('temperature', temperature, Real)
|
||||
cv.check_greater_than('temperature', temperature, 0.0)
|
||||
self._temperature = temperature
|
||||
|
||||
@energy.setter
|
||||
def energy(self, energy):
|
||||
cv.check_type('energy grid', energy, Iterable, Real)
|
||||
self._energy = energy
|
||||
|
||||
@reactions.setter
|
||||
def reactions(self, reactions):
|
||||
cv.check_type('reactions', reactions, Mapping)
|
||||
self._reactions = reactions
|
||||
|
||||
@summed_reactions.setter
|
||||
def summed_reactions(self, summed_reactions):
|
||||
cv.check_type('summed reactions', summed_reactions, Mapping)
|
||||
self._summed_reactions = summed_reactions
|
||||
|
||||
@urr.setter
|
||||
def urr(self, urr):
|
||||
cv.check_type('probability tables', urr,
|
||||
(ProbabilityTables, type(None)))
|
||||
self._urr = urr
|
||||
|
||||
def export_to_hdf5(self, path, mode='a'):
|
||||
"""Export table to an HDF5 file.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
path : str
|
||||
Path to write HDF5 file to
|
||||
mode : {'r', r+', 'w', 'x', 'a'}
|
||||
Mode that is used to open the HDF5 file. This is the second argument
|
||||
to the :class:`h5py.File` constructor.
|
||||
|
||||
"""
|
||||
|
||||
f = h5py.File(path, mode)
|
||||
|
||||
# Write basic data
|
||||
g = f.create_group(self.name)
|
||||
g.attrs['Z'] = self.atomic_number
|
||||
g.attrs['A'] = self.mass_number
|
||||
g.attrs['metastable'] = self.metastable
|
||||
g.attrs['atomic_weight_ratio'] = self.atomic_weight_ratio
|
||||
g.attrs['temperature'] = self.temperature
|
||||
g.attrs['n_reaction'] = len(self.reactions)
|
||||
|
||||
# Write energy grid
|
||||
g.create_dataset('energy', data=self.energy)
|
||||
|
||||
# Write reaction data
|
||||
for i, rx in enumerate(self.reactions.values()):
|
||||
rx_group = g.create_group('reaction_{}'.format(i))
|
||||
rx.to_hdf5(rx_group)
|
||||
|
||||
# Write total nu data if available
|
||||
if len(rx.derived_products) > 0 and 'total_nu' not in g:
|
||||
tgroup = g.create_group('total_nu')
|
||||
rx.derived_products[0].to_hdf5(tgroup)
|
||||
|
||||
# Write unresolved resonance probability tables
|
||||
if self.urr is not None:
|
||||
urr_group = g.create_group('urr')
|
||||
self.urr.to_hdf5(urr_group)
|
||||
|
||||
f.close()
|
||||
|
||||
@classmethod
|
||||
def from_hdf5(self, group_or_filename):
|
||||
"""Generate continuous-energy neutron interaction data from HDF5 group
|
||||
|
||||
Parameters
|
||||
----------
|
||||
group_or_filename : h5py.Group or str
|
||||
HDF5 group containing interaction data. If given as a string, it is
|
||||
assumed to be the filename for the HDF5 file, and the first group is
|
||||
used to read from.
|
||||
|
||||
Returns
|
||||
-------
|
||||
openmc.data.ace.IncidentNeutron
|
||||
Continuous-energy neutron interaction data
|
||||
|
||||
"""
|
||||
if isinstance(group_or_filename, h5py.Group):
|
||||
group = group_or_filename
|
||||
else:
|
||||
h5file = h5py.File(group_or_filename, 'r')
|
||||
group = list(h5file.values())[0]
|
||||
|
||||
name = group.name[1:]
|
||||
atomic_number = group.attrs['Z']
|
||||
mass_number = group.attrs['A']
|
||||
metastable = group.attrs['metastable']
|
||||
atomic_weight_ratio = group.attrs['atomic_weight_ratio']
|
||||
temperature = group.attrs['temperature']
|
||||
|
||||
data = IncidentNeutron(name, atomic_number, mass_number, metastable,
|
||||
atomic_weight_ratio, temperature)
|
||||
|
||||
# Read energy grid
|
||||
data.energy = group['energy'].value
|
||||
|
||||
# Read reaction data
|
||||
n_reaction = group.attrs['n_reaction']
|
||||
|
||||
# Write reaction data
|
||||
for i in range(n_reaction):
|
||||
rx_group = group['reaction_{}'.format(i)]
|
||||
rx = Reaction.from_hdf5(rx_group, data.energy)
|
||||
data.reactions[rx.mt] = rx
|
||||
|
||||
# Read total nu data if available
|
||||
if 'total_nu' in rx_group:
|
||||
tgroup = rx_group['total_nu']
|
||||
rx.derived_products = [Product.from_hdf5(tgroup)]
|
||||
|
||||
# Read unresolved resonance probability tables
|
||||
if 'urr' in group:
|
||||
urr_group = group['urr']
|
||||
data.urr = ProbabilityTables.from_hdf5(urr_group)
|
||||
|
||||
return data
|
||||
|
||||
@classmethod
|
||||
def from_ace(cls, ace_or_filename, metastable_scheme='nndc'):
|
||||
"""Generate incident neutron continuous-energy data from an ACE table
|
||||
|
||||
Parameters
|
||||
----------
|
||||
ace : openmc.data.ace.Table or str
|
||||
ACE table to read from. If given as a string, it is assumed to be
|
||||
the filename for the ACE file.
|
||||
metastable_scheme : {'nndc', 'mcnp'}
|
||||
Determine how ZAID identifiers are to be interpreted in the case of
|
||||
a metastable nuclide. Because the normal ZAID (=1000*Z + A) does not
|
||||
encode metastable information, different conventions are used among
|
||||
different libraries. In MCNP libraries, the convention is to add 400
|
||||
for a metastable nuclide except for Am242m, for which 95242 is
|
||||
metastable and 95642 (or 1095242 in newer libraries) is the ground
|
||||
state. For NNDC libraries, ZAID is given as 1000*Z + A + 100*m.
|
||||
|
||||
Returns
|
||||
-------
|
||||
openmc.data.IncidentNeutron
|
||||
Incident neutron continuous-energy data
|
||||
|
||||
"""
|
||||
if isinstance(ace_or_filename, Table):
|
||||
ace = ace_or_filename
|
||||
else:
|
||||
ace = get_table(ace_or_filename)
|
||||
|
||||
# If mass number hasn't been specified, make an educated guess
|
||||
zaid, xs = ace.name.split('.')
|
||||
zaid = int(zaid)
|
||||
Z = zaid // 1000
|
||||
mass_number = zaid % 1000
|
||||
|
||||
if metastable_scheme == 'mcnp':
|
||||
if zaid > 1000000:
|
||||
# New SZA format
|
||||
Z = Z % 1000
|
||||
if zaid == 1095242:
|
||||
metastable = 0
|
||||
else:
|
||||
metastable = zaid // 1000000
|
||||
else:
|
||||
if zaid == 95242:
|
||||
metastable = 1
|
||||
elif zaid == 95642:
|
||||
metastable = 0
|
||||
else:
|
||||
metastable = 1 if mass_number > 300 else 0
|
||||
elif metastable_scheme == 'nndc':
|
||||
metastable = 1 if mass_number > 300 else 0
|
||||
|
||||
while mass_number > 3*Z:
|
||||
mass_number -= 100
|
||||
|
||||
# Determine name for group
|
||||
element = atomic_symbol[Z]
|
||||
if metastable > 0:
|
||||
name = '{}{}_m{}.{}'.format(element, mass_number, metastable, xs)
|
||||
else:
|
||||
name = '{}{}.{}'.format(element, mass_number, xs)
|
||||
|
||||
data = IncidentNeutron(name, Z, mass_number, metastable,
|
||||
ace.atomic_weight_ratio, ace.temperature)
|
||||
|
||||
# Read energy grid
|
||||
n_energy = ace.nxs[3]
|
||||
energy = ace.xss[ace.jxs[1]:ace.jxs[1] + n_energy]
|
||||
data.energy = energy
|
||||
total_xs = ace.xss[ace.jxs[1] + n_energy:ace.jxs[1] + 2*n_energy]
|
||||
absorption_xs = ace.xss[ace.jxs[1] + 2*n_energy:ace.jxs[1] + 3*n_energy]
|
||||
|
||||
# Create summed reactions (total and absorption)
|
||||
total = Reaction(1)
|
||||
total.xs = Tabulated1D(energy, total_xs)
|
||||
data.summed_reactions[1] = total
|
||||
absorption = Reaction(27)
|
||||
absorption.xs = Tabulated1D(energy, absorption_xs)
|
||||
data.summed_reactions[27] = absorption
|
||||
|
||||
# Read each reaction
|
||||
n_reaction = ace.nxs[4] + 1
|
||||
for i in range(n_reaction):
|
||||
rx = Reaction.from_ace(ace, i)
|
||||
data.reactions[rx.mt] = rx
|
||||
|
||||
# Some photon production reactions may be assigned to MTs that don't
|
||||
# exist, usually MT=4. In this case, we create a new reaction and add
|
||||
# them
|
||||
n_photon_reactions = ace.nxs[6]
|
||||
photon_mts = ace.xss[ace.jxs[13]:ace.jxs[13] +
|
||||
n_photon_reactions].astype(int)
|
||||
|
||||
for mt in np.unique(photon_mts // 1000):
|
||||
if mt not in data.reactions:
|
||||
rx = Reaction(mt)
|
||||
rx.products += _get_photon_products(ace, mt)
|
||||
data.summed_reactions[mt] = rx
|
||||
|
||||
# Read unresolved resonance probability tables
|
||||
data.urr = ProbabilityTables.from_ace(ace)
|
||||
|
||||
return data
|
||||
512
openmc/data/reaction.py
Normal file
512
openmc/data/reaction.py
Normal file
|
|
@ -0,0 +1,512 @@
|
|||
from __future__ import division, unicode_literals
|
||||
from collections import Iterable
|
||||
from copy import deepcopy
|
||||
from numbers import Real
|
||||
|
||||
import numpy as np
|
||||
from numpy.polynomial import Polynomial
|
||||
|
||||
import openmc.checkvalue as cv
|
||||
from openmc.stats import Uniform
|
||||
from .angle_distribution import AngleDistribution
|
||||
from .angle_energy import AngleEnergy
|
||||
from .container import Tabulated1D
|
||||
from .data import reaction_name
|
||||
from .product import Product
|
||||
from .uncorrelated import UncorrelatedAngleEnergy
|
||||
|
||||
|
||||
def _get_fission_products(ace):
|
||||
"""Generate fission products from an ACE table
|
||||
|
||||
Parameters
|
||||
----------
|
||||
ace : openmc.data.ace.Table
|
||||
ACE table to read from
|
||||
|
||||
Returns
|
||||
-------
|
||||
products : list of openmc.data.Product
|
||||
Prompt and delayed fission neutrons
|
||||
derived_products : list of openmc.data.Product
|
||||
"Total" fission neutron
|
||||
|
||||
"""
|
||||
# No NU block
|
||||
if ace.jxs[2] == 0:
|
||||
return None, None
|
||||
|
||||
products = []
|
||||
derived_products = []
|
||||
|
||||
# Either prompt nu or total nu is given
|
||||
if ace.xss[ace.jxs[2]] > 0:
|
||||
whichnu = 'prompt' if ace.jxs[24] > 0 else 'total'
|
||||
|
||||
neutron = Product('neutron')
|
||||
neutron.emission_mode = whichnu
|
||||
|
||||
idx = ace.jxs[2]
|
||||
LNU = int(ace.xss[idx])
|
||||
if LNU == 1:
|
||||
# Polynomial function form of nu
|
||||
NC = int(ace.xss[idx+1])
|
||||
coefficients = ace.xss[idx+2 : idx+2+NC]
|
||||
neutron.yield_ = Polynomial(coefficients)
|
||||
elif LNU == 2:
|
||||
# Tabular data form of nu
|
||||
neutron.yield_ = Tabulated1D.from_ace(ace, idx + 1)
|
||||
|
||||
products.append(neutron)
|
||||
|
||||
# Both prompt nu and total nu
|
||||
elif ace.xss[ace.jxs[2]] < 0:
|
||||
# Read prompt neutron yield
|
||||
prompt_neutron = Product('neutron')
|
||||
prompt_neutron.emission_mode = 'prompt'
|
||||
|
||||
idx = ace.jxs[2] + 1
|
||||
LNU = int(ace.xss[idx])
|
||||
if LNU == 1:
|
||||
# Polynomial function form of nu
|
||||
NC = int(ace.xss[idx+1])
|
||||
coefficients = ace.xss[idx+2 : idx+2+NC]
|
||||
prompt_neutron.yield_ = Polynomial(coefficients)
|
||||
elif LNU == 2:
|
||||
# Tabular data form of nu
|
||||
prompt_neutron.yield_ = Tabulated1D.from_ace(ace, idx + 1)
|
||||
|
||||
# Read total neutron yield
|
||||
total_neutron = Product('neutron')
|
||||
total_neutron.emission_mode = 'total'
|
||||
|
||||
idx = ace.jxs[2] + int(abs(ace.xss[ace.jxs[2]])) + 1
|
||||
LNU = int(ace.xss[idx])
|
||||
|
||||
if LNU == 1:
|
||||
# Polynomial function form of nu
|
||||
NC = int(ace.xss[idx+1])
|
||||
coefficients = ace.xss[idx+2 : idx+2+NC]
|
||||
total_neutron.yield_ = Polynomial(coefficients)
|
||||
elif LNU == 2:
|
||||
# Tabular data form of nu
|
||||
total_neutron.yield_ = Tabulated1D.from_ace(ace, idx + 1)
|
||||
|
||||
products.append(prompt_neutron)
|
||||
derived_products.append(total_neutron)
|
||||
|
||||
# Check for delayed nu data
|
||||
if ace.jxs[24] > 0:
|
||||
yield_delayed = Tabulated1D.from_ace(ace, ace.jxs[24] + 1)
|
||||
|
||||
# Delayed neutron precursor distribution
|
||||
idx = ace.jxs[25]
|
||||
n_group = ace.nxs[8]
|
||||
total_group_probability = 0.
|
||||
for i, group in enumerate(range(n_group)):
|
||||
delayed_neutron = Product('neutron')
|
||||
delayed_neutron.emission_mode = 'delayed'
|
||||
delayed_neutron.decay_rate = ace.xss[idx]
|
||||
|
||||
group_probability = Tabulated1D.from_ace(ace, idx + 1)
|
||||
if np.all(group_probability.y == group_probability.y[0]):
|
||||
delayed_neutron.yield_ = deepcopy(yield_delayed)
|
||||
delayed_neutron.yield_.y *= group_probability.y[0]
|
||||
total_group_probability += group_probability.y[0]
|
||||
else:
|
||||
raise NotImplementedError(
|
||||
'Delayed neutron with energy-dependent group probability')
|
||||
|
||||
# Advance position
|
||||
nr = int(ace.xss[idx + 1])
|
||||
ne = int(ace.xss[idx + 2 + 2*nr])
|
||||
idx += 3 + 2*nr + 2*ne
|
||||
|
||||
# Energy distribution for delayed fission neutrons
|
||||
location_start = int(ace.xss[ace.jxs[26] + group])
|
||||
delayed_neutron.distribution.append(
|
||||
AngleEnergy.from_ace(ace, ace.jxs[27], location_start))
|
||||
|
||||
products.append(delayed_neutron)
|
||||
|
||||
# Renormalize delayed neutron yields to reflect fact that in ACE
|
||||
# file, the sum of the group probabilities is not exactly one
|
||||
for product in products[1:]:
|
||||
product.yield_.y /= total_group_probability
|
||||
|
||||
return products, derived_products
|
||||
|
||||
|
||||
def _get_photon_products(ace, mt):
|
||||
"""Generate photon products from an ACE table
|
||||
|
||||
Parameters
|
||||
----------
|
||||
ace : openmc.data.ace.Table
|
||||
ACE table to read from
|
||||
mt : int
|
||||
MT number for the desired reaction
|
||||
|
||||
Returns
|
||||
-------
|
||||
photons : list of openmc.Products
|
||||
Photons produced from reaction with given MT
|
||||
|
||||
"""
|
||||
n_photon_reactions = ace.nxs[6]
|
||||
photon_mts = ace.xss[ace.jxs[13]:ace.jxs[13] +
|
||||
n_photon_reactions].astype(int)
|
||||
|
||||
photons = []
|
||||
for i in range(n_photon_reactions):
|
||||
# Determine corresponding reaction
|
||||
neutron_mt = photon_mts[i] // 1000
|
||||
|
||||
# Restrict to photons that match the requested MT. Note that if the
|
||||
# photon is assigned to MT=18 but the file splits fission into
|
||||
# MT=19,20,21,38, we assign the photon product to each of the individual
|
||||
# reactions
|
||||
if neutron_mt == 18:
|
||||
if mt not in (18, 19, 20, 21, 38):
|
||||
continue
|
||||
elif neutron_mt != mt:
|
||||
continue
|
||||
|
||||
# Create photon product and assign to reactions
|
||||
photon = Product('photon')
|
||||
|
||||
# ==================================================================
|
||||
# Photon yield / production cross section
|
||||
|
||||
loca = int(ace.xss[ace.jxs[14] + i])
|
||||
idx = ace.jxs[15] + loca - 1
|
||||
mftype = int(ace.xss[idx])
|
||||
idx += 1
|
||||
|
||||
if mftype in (12, 16):
|
||||
# Yield data taken from ENDF File 12 or 6
|
||||
mtmult = int(ace.xss[idx])
|
||||
assert mtmult == neutron_mt
|
||||
|
||||
# Read photon yield as function of energy
|
||||
photon.yield_ = Tabulated1D.from_ace(ace, idx + 1)
|
||||
|
||||
elif mftype == 13:
|
||||
# Cross section data from ENDF File 13
|
||||
|
||||
# Energy grid index at which data starts
|
||||
threshold_idx = int(ace.xss[idx]) - 1
|
||||
|
||||
# Get photon production cross section
|
||||
n_energy = int(ace.xss[idx + 1])
|
||||
photon._xs = ace.xss[idx + 2:idx + 2 + n_energy]
|
||||
|
||||
# Determine yield based on ratio of cross sections
|
||||
energy = ace.xss[ace.jxs[1] + threshold_idx:
|
||||
ace.jxs[1] + threshold_idx + n_energy]
|
||||
photon.yield_ = Tabulated1D(energy, photon._xs)
|
||||
|
||||
else:
|
||||
raise ValueError("MFTYPE must be 12, 13, 16. Got {0}".format(
|
||||
mftype))
|
||||
|
||||
# ==================================================================
|
||||
# Photon energy distribution
|
||||
|
||||
location_start = int(ace.xss[ace.jxs[18] + i])
|
||||
distribution = AngleEnergy.from_ace(ace, ace.jxs[19], location_start)
|
||||
assert isinstance(distribution, UncorrelatedAngleEnergy)
|
||||
|
||||
# ==================================================================
|
||||
# Photon angular distribution
|
||||
loc = int(ace.xss[ace.jxs[16] + i])
|
||||
|
||||
if loc == 0:
|
||||
# No angular distribution data are given for this reaction,
|
||||
# isotropic scattering is asssumed in LAB
|
||||
energy = np.array([photon.yield_.x[0], photon.yield_.x[-1]])
|
||||
mu_isotropic = Uniform(-1., 1.)
|
||||
distribution.angle = AngleDistribution(
|
||||
energy, [mu_isotropic, mu_isotropic])
|
||||
else:
|
||||
distribution.angle = AngleDistribution.from_ace(ace, ace.jxs[17], loc)
|
||||
|
||||
# Add to list of distributions
|
||||
photon.distribution.append(distribution)
|
||||
photons.append(photon)
|
||||
|
||||
return photons
|
||||
|
||||
|
||||
class Reaction(object):
|
||||
"""A nuclear reaction
|
||||
|
||||
A Reaction object represents a single reaction channel for a nuclide with
|
||||
an associated cross section and, if present, a secondary angle and energy
|
||||
distribution.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
mt : int
|
||||
The ENDF MT number for this reaction. On occasion, MCNP uses MT numbers
|
||||
that don't correspond exactly to the ENDF specification.
|
||||
|
||||
Attributes
|
||||
----------
|
||||
center_of_mass : bool
|
||||
Indicates whether scattering kinematics should be performed in the
|
||||
center-of-mass or laboratory reference frame.
|
||||
grid above the threshold value in barns.
|
||||
mt : int
|
||||
The ENDF MT number for this reaction.
|
||||
q_value : float
|
||||
The Q-value of this reaction in MeV.
|
||||
table : openmc.data.ace.Table
|
||||
The ACE table which contains this reaction.
|
||||
threshold : float
|
||||
Threshold of the reaction in MeV
|
||||
threshold_idx : int
|
||||
The index on the energy grid corresponding to the threshold of this
|
||||
reaction.
|
||||
xs : openmc.data.Tabulated1D
|
||||
Microscopic cross section for this reaction as a function of incident
|
||||
energy
|
||||
products : Iterable of openmc.data.Product
|
||||
Reaction products
|
||||
derived_products : Iterable of openmc.data.Product
|
||||
Derived reaction products. Used for 'total' fission neutron data when
|
||||
prompt/delayed data also exists.
|
||||
|
||||
"""
|
||||
|
||||
def __init__(self, mt):
|
||||
self.center_of_mass = True
|
||||
self.mt = mt
|
||||
self.q_value = 0.
|
||||
self.threshold_idx = 0
|
||||
self._xs = None
|
||||
self.products = []
|
||||
self.derived_products = []
|
||||
|
||||
def __repr__(self):
|
||||
if self.mt in reaction_name:
|
||||
return "<ACE Reaction: MT={} {}>".format(self.mt, reaction_name[self.mt])
|
||||
else:
|
||||
return "<ACE Reaction: MT={}>".format(self.mt)
|
||||
|
||||
@property
|
||||
def center_of_mass(self):
|
||||
return self._center_of_mass
|
||||
|
||||
@property
|
||||
def q_value(self):
|
||||
return self._q_value
|
||||
|
||||
@property
|
||||
def products(self):
|
||||
return self._products
|
||||
|
||||
@property
|
||||
def threshold(self):
|
||||
return self.xs.x[0]
|
||||
|
||||
@property
|
||||
def xs(self):
|
||||
return self._xs
|
||||
|
||||
@center_of_mass.setter
|
||||
def center_of_mass(self, center_of_mass):
|
||||
cv.check_type('center of mass', center_of_mass, (bool, np.bool_))
|
||||
self._center_of_mass = center_of_mass
|
||||
|
||||
@q_value.setter
|
||||
def q_value(self, q_value):
|
||||
cv.check_type('Q value', q_value, Real)
|
||||
self._q_value = q_value
|
||||
|
||||
@products.setter
|
||||
def products(self, products):
|
||||
cv.check_type('reaction products', products, Iterable, Product)
|
||||
self._products = products
|
||||
|
||||
@xs.setter
|
||||
def xs(self, xs):
|
||||
cv.check_type('reaction cross section', xs, Tabulated1D)
|
||||
for y in xs.y:
|
||||
cv.check_greater_than('reaction cross section', y, 0.0, True)
|
||||
self._xs = xs
|
||||
|
||||
def to_hdf5(self, group):
|
||||
"""Write reaction to an HDF5 group
|
||||
|
||||
Parameters
|
||||
----------
|
||||
group : h5py.Group
|
||||
HDF5 group to write to
|
||||
|
||||
"""
|
||||
|
||||
group.attrs['mt'] = self.mt
|
||||
if self.mt in reaction_name:
|
||||
group.attrs['label'] = np.string_(reaction_name[self.mt])
|
||||
else:
|
||||
group.attrs['label'] = np.string_(self.mt)
|
||||
group.attrs['Q_value'] = self.q_value
|
||||
group.attrs['threshold_idx'] = self.threshold_idx + 1
|
||||
group.attrs['center_of_mass'] = 1 if self.center_of_mass else 0
|
||||
group.attrs['n_product'] = len(self.products)
|
||||
if self.xs is not None:
|
||||
group.create_dataset('xs', data=self.xs.y)
|
||||
for i, p in enumerate(self.products):
|
||||
pgroup = group.create_group('product_{}'.format(i))
|
||||
p.to_hdf5(pgroup)
|
||||
|
||||
@classmethod
|
||||
def from_hdf5(cls, group, energy):
|
||||
"""Generate reaction from an HDF5 group
|
||||
|
||||
Parameters
|
||||
----------
|
||||
group : h5py.Group
|
||||
HDF5 group to write to
|
||||
energy : Iterable of float
|
||||
Array of energies at which cross sections are tabulated at
|
||||
|
||||
Returns
|
||||
-------
|
||||
openmc.data.ace.Reaction
|
||||
Reaction data
|
||||
|
||||
"""
|
||||
mt = group.attrs['mt']
|
||||
rx = cls(mt)
|
||||
rx.q_value = group.attrs['Q_value']
|
||||
rx.threshold_idx = group.attrs['threshold_idx'] - 1
|
||||
rx.center_of_mass = bool(group.attrs['center_of_mass'])
|
||||
|
||||
# Read cross section
|
||||
if 'xs' in group:
|
||||
xs = group['xs'].value
|
||||
rx.xs = Tabulated1D(energy, xs)
|
||||
|
||||
# Read reaction products
|
||||
n_product = group.attrs['n_product']
|
||||
products = []
|
||||
for i in range(n_product):
|
||||
pgroup = group['product_{}'.format(i)]
|
||||
products.append(Product.from_hdf5(pgroup))
|
||||
rx.products = products
|
||||
|
||||
return rx
|
||||
|
||||
@classmethod
|
||||
def from_ace(cls, ace, i_reaction):
|
||||
# Get nuclide energy grid
|
||||
n_grid = ace.nxs[3]
|
||||
grid = ace.xss[ace.jxs[1]:ace.jxs[1] + n_grid]
|
||||
|
||||
if i_reaction > 0:
|
||||
mt = int(ace.xss[ace.jxs[3] + i_reaction - 1])
|
||||
rx = cls(mt)
|
||||
|
||||
# Get Q-value of reaction
|
||||
rx.q_value = ace.xss[ace.jxs[4] + i_reaction - 1]
|
||||
|
||||
# ==================================================================
|
||||
# CROSS SECTION
|
||||
|
||||
# Get locator for cross-section data
|
||||
loc = int(ace.xss[ace.jxs[6] + i_reaction - 1])
|
||||
|
||||
# Determine starting index on energy grid
|
||||
rx.threshold_idx = int(ace.xss[ace.jxs[7] + loc - 1]) - 1
|
||||
|
||||
# Determine number of energies in reaction
|
||||
n_energy = int(ace.xss[ace.jxs[7] + loc])
|
||||
energy = grid[rx.threshold_idx:rx.threshold_idx + n_energy]
|
||||
|
||||
# Read reaction cross section
|
||||
xs = ace.xss[ace.jxs[7] + loc + 1:ace.jxs[7] + loc + 1 + n_energy]
|
||||
rx.xs = Tabulated1D(energy, xs)
|
||||
|
||||
# ==================================================================
|
||||
# YIELD AND ANGLE-ENERGY DISTRIBUTION
|
||||
|
||||
# Determine multiplicity
|
||||
ty = ace.xss[ace.jxs[5] + i_reaction - 1]
|
||||
rx.center_of_mass = (ty < 0)
|
||||
if i_reaction < ace.nxs[5] + 1:
|
||||
if ty != 19:
|
||||
if abs(ty) > 100:
|
||||
# Energy-dependent neutron yield
|
||||
idx = ace.jxs[11] + abs(ty) - 101
|
||||
yield_ = Tabulated1D.from_ace(ace, idx)
|
||||
else:
|
||||
yield_ = abs(ty)
|
||||
|
||||
neutron = Product('neutron')
|
||||
neutron.yield_ = yield_
|
||||
rx.products.append(neutron)
|
||||
else:
|
||||
assert mt in (18, 19, 20, 21, 38)
|
||||
rx.products, rx.derived_products = _get_fission_products(ace)
|
||||
|
||||
for p in rx.products:
|
||||
if p.emission_mode in ('prompt', 'total'):
|
||||
neutron = p
|
||||
break
|
||||
else:
|
||||
raise Exception("Couldn't find prompt/total fission neutron")
|
||||
|
||||
# Determine locator for ith energy distribution
|
||||
lnw = int(ace.xss[ace.jxs[10] + i_reaction - 1])
|
||||
while lnw > 0:
|
||||
# Applicability of this distribution
|
||||
neutron.applicability.append(Tabulated1D.from_ace(
|
||||
ace, ace.jxs[11] + lnw + 2))
|
||||
|
||||
# Read energy distribution data
|
||||
neutron.distribution.append(AngleEnergy.from_ace(
|
||||
ace, ace.jxs[11], lnw, rx))
|
||||
|
||||
lnw = int(ace.xss[ace.jxs[11] + lnw - 1])
|
||||
|
||||
else:
|
||||
# Elastic scattering
|
||||
mt = 2
|
||||
rx = cls(mt)
|
||||
|
||||
elastic_xs = ace.xss[ace.jxs[1] + 3*n_grid:ace.jxs[1] + 4*n_grid]
|
||||
rx.xs = Tabulated1D(grid, elastic_xs)
|
||||
|
||||
# No energy distribution for elastic scattering
|
||||
neutron = Product('neutron')
|
||||
neutron.distribution.append(UncorrelatedAngleEnergy())
|
||||
rx.products.append(neutron)
|
||||
|
||||
# ======================================================================
|
||||
# ANGLE DISTRIBUTION (FOR UNCORRELATED)
|
||||
|
||||
if i_reaction < ace.nxs[5] + 1:
|
||||
# Check if angular distribution data exist
|
||||
loc = int(ace.xss[ace.jxs[8] + i_reaction])
|
||||
if loc <= 0:
|
||||
# Angular distribution is either given as part of a product
|
||||
# angle-energy distribution or is not given at all (in which
|
||||
# case isotropic scattering is assumed)
|
||||
angle_dist = None
|
||||
else:
|
||||
angle_dist = AngleDistribution.from_ace(ace, ace.jxs[9], loc)
|
||||
|
||||
# Apply angular distribution to each uncorrelated angle-energy
|
||||
# distribution
|
||||
if angle_dist is not None:
|
||||
for d in neutron.distribution:
|
||||
d.angle = angle_dist
|
||||
|
||||
# ======================================================================
|
||||
# PHOTON PRODUCTION
|
||||
|
||||
rx.products += _get_photon_products(ace, mt)
|
||||
|
||||
return rx
|
||||
|
|
@ -1,9 +1,39 @@
|
|||
from collections import Iterable
|
||||
from difflib import get_close_matches
|
||||
from numbers import Real
|
||||
from warnings import warn
|
||||
|
||||
import numpy as np
|
||||
import h5py
|
||||
|
||||
import openmc.checkvalue as cv
|
||||
from .ace import Table, get_table
|
||||
from .container import Tabulated1D
|
||||
|
||||
|
||||
_THERMAL_NAMES = {'al': 'c_Al27', 'al27': 'c_Al27',
|
||||
'be': 'c_Be',
|
||||
'bebeo': 'c_Be_in_BeO', 'be-o': 'c_Be_in_BeO',
|
||||
'benz': 'c_Benzine',
|
||||
'cah': 'c_Ca_in_CaH2',
|
||||
'dd2o': 'c_D_in_D2O', 'hwtr': 'c_D_in_D2O',
|
||||
'fe': 'c_Fe56', 'fe56': 'c_Fe56',
|
||||
'graph': 'c_Graphite', 'grph': 'c_Graphite',
|
||||
'hca': 'c_H_in_CaH2',
|
||||
'hch2': 'c_H_in_CH2', 'poly': 'c_H_in_CH2',
|
||||
'hh2o': 'c_H_in_H2O', 'lwtr': 'c_H_in_H2O',
|
||||
'hzrh': 'c_H_in_ZrH', 'h-zr': 'c_H_in_ZrH',
|
||||
'lch4': 'c_liquid_CH4', 'lmeth': 'c_liquid_CH4',
|
||||
'mg': 'c_Mg24',
|
||||
'obeo': 'c_O_in_BeO', 'o-be': 'c_O_in_BeO',
|
||||
'orthod': 'c_ortho_D', 'dortho': 'c_ortho_D',
|
||||
'orthoh': 'c_ortho_H', 'hortho': 'c_ortho_H',
|
||||
'ouo2': 'c_O_in_UO2', 'o2-u': 'c_O_in_UO2',
|
||||
'parad': 'c_para_D', 'dpara': 'c_para_D',
|
||||
'parah': 'c_para_H', 'hpara': 'c_para_H',
|
||||
'sch4': 'c_solid_CH4', 'smeth': 'c_solid_CH4',
|
||||
'uuo2': 'c_U_in_UO2', 'u-o2': 'c_U_in_UO2',
|
||||
'zrzrh': 'c_Zr_in_ZrH', 'zr-h': 'c_Zr_in_ZrH'}
|
||||
|
||||
|
||||
class CoherentElastic(object):
|
||||
|
|
@ -87,6 +117,277 @@ class CoherentElastic(object):
|
|||
Coherent elastic scattering cross section
|
||||
|
||||
"""
|
||||
bragg_edges = dataset.value[0,:]
|
||||
factors = dataset.value[1,:]
|
||||
bragg_edges = dataset.value[0, :]
|
||||
factors = dataset.value[1, :]
|
||||
return cls(bragg_edges, factors)
|
||||
|
||||
|
||||
class ThermalScattering(object):
|
||||
"""A ThermalScattering object contains thermal scattering data as represented by
|
||||
an S(alpha, beta) table.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
name : str
|
||||
ZAID identifier of the table, e.g. lwtr.10t.
|
||||
atomic_weight_ratio : float
|
||||
Atomic mass ratio of the target nuclide.
|
||||
temperature : float
|
||||
Temperature of the target nuclide in eV.
|
||||
|
||||
Attributes
|
||||
----------
|
||||
atomic_weight_ratio : float
|
||||
Atomic mass ratio of the target nuclide.
|
||||
elastic_xs : openmc.data.Tabulated1D or openmc.data.CoherentElastic
|
||||
Elastic scattering cross section derived in the coherent or incoherent
|
||||
approximation
|
||||
inelastic_xs : openmc.data.Tabulated1D
|
||||
Inelastic scattering cross section derived in the incoherent
|
||||
approximation
|
||||
name : str
|
||||
Name of the table, e.g. lwtr.20t.
|
||||
temperature : float
|
||||
Temperature of the target nuclide in eV.
|
||||
zaids : Iterable of int
|
||||
ZAID identifiers that the thermal scattering data applies to
|
||||
|
||||
"""
|
||||
|
||||
def __init__(self, name, atomic_weight_ratio, temperature):
|
||||
self.name = name
|
||||
self.atomic_weight_ratio = atomic_weight_ratio
|
||||
self.temperature = temperature
|
||||
self.elastic_xs = None
|
||||
self.elastic_mu_out = None
|
||||
self.inelastic_xs = None
|
||||
self.inelastic_e_out = None
|
||||
self.inelastic_mu_out = None
|
||||
self.secondary_mode = None
|
||||
self.zaids = []
|
||||
|
||||
def __repr__(self):
|
||||
if hasattr(self, 'name'):
|
||||
return "<Thermal Scattering Data: {0}>".format(self.name)
|
||||
else:
|
||||
return "<Thermal Scattering Data>"
|
||||
|
||||
def export_to_hdf5(self, path, mode='a'):
|
||||
"""Export table to an HDF5 file.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
path : str
|
||||
Path to write HDF5 file to
|
||||
mode : {'r', r+', 'w', 'x', 'a'}
|
||||
Mode that is used to open the HDF5 file. This is the second argument
|
||||
to the :class:`h5py.File` constructor.
|
||||
|
||||
"""
|
||||
|
||||
f = h5py.File(path, mode)
|
||||
|
||||
# Write basic data
|
||||
g = f.create_group(self.name)
|
||||
g.attrs['atomic_weight_ratio'] = self.atomic_weight_ratio
|
||||
g.attrs['temperature'] = self.temperature
|
||||
g.attrs['zaids'] = self.zaids
|
||||
|
||||
# Write thermal elastic scattering
|
||||
if self.elastic_xs is not None:
|
||||
elastic_group = g.create_group('elastic')
|
||||
self.elastic_xs.to_hdf5(elastic_group, 'xs')
|
||||
if self.elastic_mu_out is not None:
|
||||
elastic_group.create_dataset('mu_out', data=self.elastic_mu_out)
|
||||
|
||||
# Write thermal inelastic scattering
|
||||
if self.inelastic_xs is not None:
|
||||
inelastic_group = g.create_group('inelastic')
|
||||
self.inelastic_xs.to_hdf5(inelastic_group, 'xs')
|
||||
inelastic_group.attrs['secondary_mode'] = np.string_(self.secondary_mode)
|
||||
if self.secondary_mode in ('equal', 'skewed'):
|
||||
inelastic_group.create_dataset('energy_out', data=self.inelastic_e_out)
|
||||
inelastic_group.create_dataset('mu_out', data=self.inelastic_mu_out)
|
||||
elif self.secondary_mode == 'continuous':
|
||||
self.inelastic_dist.to_hdf5(inelastic_group)
|
||||
|
||||
@classmethod
|
||||
def from_hdf5(self, group):
|
||||
"""Generate thermal scattering data from HDF5 group
|
||||
|
||||
Parameters
|
||||
----------
|
||||
group : h5py.Group
|
||||
HDF5 group to read from
|
||||
|
||||
Returns
|
||||
-------
|
||||
openmc.data.ThermalScattering
|
||||
Neutron thermal scattering data
|
||||
|
||||
"""
|
||||
name = group.name[1:]
|
||||
atomic_weight_ratio = group.attrs['atomic_weight_ratio']
|
||||
temperature = group.attrs['temperature']
|
||||
table = ThermalScattering(name, atomic_weight_ratio, temperature)
|
||||
table.zaids = group.attrs['zaids']
|
||||
|
||||
# Read thermal elastic scattering
|
||||
if 'elastic' in group:
|
||||
elastic_group = group['elastic']
|
||||
|
||||
# Cross section
|
||||
elastic_xs_type = elastic_group['xs'].attrs['type'].decode()
|
||||
if elastic_xs_type == 'tab1':
|
||||
table.elastic_xs = Tabulated1D.from_hdf5(elastic_group['xs'])
|
||||
elif elastic_xs_type == 'bragg':
|
||||
table.elastic_xs = CoherentElastic.from_hdf5(elastic_group['xs'])
|
||||
|
||||
# Angular distribution
|
||||
if 'mu_out' in elastic_group:
|
||||
table.elastic_mu_out = elastic_group['mu_out'].value
|
||||
|
||||
# Read thermal inelastic scattering
|
||||
if 'inelastic' in group:
|
||||
inelastic_group = group['inelastic']
|
||||
table.secondary_mode = inelastic_group.attrs['secondary_mode'].decode()
|
||||
table.inelastic_xs = Tabulated1D.from_hdf5(inelastic_group['xs'])
|
||||
if table.secondary_mode in ('equal', 'skewed'):
|
||||
table.inelastic_e_out = inelastic_group['energy_out']
|
||||
table.inelastic_mu_out = inelastic_group['mu_out']
|
||||
elif table.secondary_mode == 'continuous':
|
||||
table.inelastic_dist = AngleEnergy.from_hdf5(inelastic_group)
|
||||
|
||||
return table
|
||||
|
||||
@classmethod
|
||||
def from_ace(cls, ace_or_filename, name=None):
|
||||
"""Generate thermal scattering data from an ACE table
|
||||
|
||||
Parameters
|
||||
----------
|
||||
ace : openmc.data.ace.Table or str
|
||||
ACE table to read from. If given as a string, it is assumed to be
|
||||
the filename for the ACE file.
|
||||
name : str
|
||||
GND-conforming name of the material, e.g. c_H_in_H2O. If none is
|
||||
passed, the appropriate name is guessed based on the name of the ACE
|
||||
table.
|
||||
|
||||
Returns
|
||||
-------
|
||||
openmc.data.ThermalScattering
|
||||
Thermal scattering data
|
||||
|
||||
"""
|
||||
if isinstance(ace_or_filename, Table):
|
||||
ace = ace_or_filename
|
||||
else:
|
||||
ace = get_table(ace_or_filename)
|
||||
|
||||
# Get new name that is GND-consistent
|
||||
ace_name, xs = ace.name.split('.')
|
||||
if name is None:
|
||||
if ace_name.lower() in _THERMAL_NAMES:
|
||||
name = _THERMAL_NAMES[ace_name.lower()] + '.' + xs
|
||||
else:
|
||||
# Make an educated guess?? This actually works well for JEFF-3.2
|
||||
# which stupidly uses names like lw00.32t, lw01.32t, etc. for
|
||||
# different temperatures
|
||||
matches = get_close_matches(
|
||||
ace_name.lower(), _THERMAL_NAMES.keys(), cutoff=0.5)
|
||||
if len(matches) > 0:
|
||||
name = _THERMAL_NAMES[matches[0]] + '.' + xs
|
||||
else:
|
||||
# OK, we give up. Just use the ACE name.
|
||||
name = 'c_' + ace.name
|
||||
warn('Thermal scattering material "{}" is not recognized. '
|
||||
'Assigning a name of {}.'.format(ace.name, name))
|
||||
|
||||
table = cls(name, ace.atomic_weight_ratio, ace.temperature)
|
||||
|
||||
# Incoherent inelastic scattering cross section
|
||||
idx = ace.jxs[1]
|
||||
n_energy = int(ace.xss[idx])
|
||||
energy = ace.xss[idx+1 : idx+1+n_energy]
|
||||
xs = ace.xss[idx+1+n_energy : idx+1+2*n_energy]
|
||||
table.inelastic_xs = Tabulated1D(energy, xs)
|
||||
|
||||
if ace.nxs[7] == 0:
|
||||
table.secondary_mode = 'equal'
|
||||
elif ace.nxs[7] == 1:
|
||||
table.secondary_mode = 'skewed'
|
||||
elif ace.nxs[7] == 2:
|
||||
table.secondary_mode = 'continuous'
|
||||
|
||||
n_energy_out = ace.nxs[4]
|
||||
if table.secondary_mode in ('equal', 'skewed'):
|
||||
n_mu = ace.nxs[3]
|
||||
idx = ace.jxs[3]
|
||||
table.inelastic_e_out = ace.xss[idx:idx+n_energy*n_energy_out*(n_mu+2):n_mu+2]
|
||||
table.inelastic_e_out.shape = (n_energy, n_energy_out)
|
||||
|
||||
table.inelastic_mu_out = ace.xss[idx:idx+n_energy*n_energy_out*(n_mu+2)]
|
||||
table.inelastic_mu_out.shape = (n_energy, n_energy_out, n_mu+2)
|
||||
table.inelastic_mu_out = table.inelastic_mu_out[:, :, 1:]
|
||||
else:
|
||||
n_mu = ace.nxs[3] - 1
|
||||
idx = ace.jxs[3]
|
||||
locc = ace.xss[idx:idx + n_energy].astype(int)
|
||||
n_energy_out = ace.xss[idx + n_energy:idx + 2*n_energy].astype(int)
|
||||
energy_out = []
|
||||
mu_out = []
|
||||
for i in range(n_energy):
|
||||
idx = locc[i]
|
||||
|
||||
# Outgoing energy distribution for incoming energy i
|
||||
e = ace.xss[idx + 1:idx + 1 + n_energy_out[i]*(n_mu + 3):n_mu + 3]
|
||||
p = ace.xss[idx + 2:idx + 2 + n_energy_out[i]*(n_mu + 3):n_mu + 3]
|
||||
c = ace.xss[idx + 3:idx + 3 + n_energy_out[i]*(n_mu + 3):n_mu + 3]
|
||||
eout_i = Tabular(e, p, 'linear-linear', ignore_negative=True)
|
||||
eout_i.c = c
|
||||
|
||||
# Outgoing angle distribution for each (incoming, outgoing) energy pair
|
||||
mu_i = []
|
||||
for j in range(n_energy_out[i]):
|
||||
mu = ace.xss[idx + 4:idx + 4 + n_mu]
|
||||
p_mu = 1./n_mu*np.ones(n_mu)
|
||||
mu_ij = Discrete(mu, p_mu)
|
||||
mu_ij.c = np.cumsum(p_mu)
|
||||
mu_i.append(mu_ij)
|
||||
idx += 3 + n_mu
|
||||
|
||||
energy_out.append(eout_i)
|
||||
mu_out.append(mu_i)
|
||||
|
||||
# Create correlated angle-energy distribution
|
||||
breakpoints = [n_energy]
|
||||
interpolation = [2]
|
||||
energy = inelastic_xs.x
|
||||
table.inelastic_dist = CorrelatedAngleEnergy(
|
||||
breakpoints, interpolation, energy, energy_out, mu_out)
|
||||
|
||||
# Incoherent/coherent elastic scattering cross section
|
||||
idx = ace.jxs[4]
|
||||
if idx != 0:
|
||||
n_energy = int(ace.xss[idx])
|
||||
energy = ace.xss[idx+1 : idx+1+n_energy]
|
||||
P = ace.xss[idx+1+n_energy : idx+1+2*n_energy]
|
||||
|
||||
if ace.nxs[5] == 4:
|
||||
table.elastic_xs = CoherentElastic(energy, P)
|
||||
else:
|
||||
table.elastic_xs = Tabulated1D(energy, P)
|
||||
|
||||
# Angular distribution
|
||||
n_mu = ace.nxs[6]
|
||||
if n_mu != -1:
|
||||
idx = ace.jxs[6]
|
||||
table.elastic_mu_out = ace.xss[idx:idx + n_energy*n_mu]
|
||||
table.elastic_mu_out.shape = (n_energy, n_mu)
|
||||
|
||||
# Get relevant ZAIDs
|
||||
pairs = np.fromiter(map(lambda p: p[0], ace.pairs), int)
|
||||
table.zaids = pairs[np.nonzero(pairs)]
|
||||
|
||||
return table
|
||||
|
|
|
|||
|
|
@ -169,3 +169,42 @@ class ProbabilityTables(object):
|
|||
|
||||
return cls(energy, table, interpolation, inelastic_flag,
|
||||
absorption_flag, multiply_smooth)
|
||||
|
||||
@classmethod
|
||||
def from_ace(cls, ace):
|
||||
"""Generate probability tables from an ACE table
|
||||
|
||||
Parameters
|
||||
----------
|
||||
ace : openmc.data.ace.Table
|
||||
ACE table to read from
|
||||
|
||||
Returns
|
||||
-------
|
||||
openmc.data.ProbabilityTables
|
||||
Unresolved resonance region probability tables
|
||||
|
||||
"""
|
||||
# Check if URR probability tables are present
|
||||
idx = ace.jxs[23]
|
||||
if idx == 0:
|
||||
return None
|
||||
|
||||
N = int(ace.xss[idx]) # Number of incident energies
|
||||
M = int(ace.xss[idx+1]) # Length of probability table
|
||||
interpolation = int(ace.xss[idx+2])
|
||||
inelastic_flag = int(ace.xss[idx+3])
|
||||
absorption_flag = int(ace.xss[idx+4])
|
||||
multiply_smooth = (int(ace.xss[idx+5]) == 1)
|
||||
idx += 6
|
||||
|
||||
# Get energies at which tables exist
|
||||
energy = ace.xss[idx : idx+N]
|
||||
idx += N
|
||||
|
||||
# Get probability tables
|
||||
table = ace.xss[idx : idx+N*6*M]
|
||||
table.shape = (N, 6, M)
|
||||
|
||||
return cls(energy, table, interpolation, inelastic_flag,
|
||||
absorption_flag, multiply_smooth)
|
||||
|
|
|
|||
|
|
@ -625,7 +625,7 @@ class Library(object):
|
|||
in the report. Defaults to 'all'.
|
||||
nuclides : {'all', 'sum'}
|
||||
The nuclides of the cross-sections to include in the report. This
|
||||
may be a list of nuclide name strings (e.g., ['U-235', 'U-238']).
|
||||
may be a list of nuclide name strings (e.g., ['U235', 'U238']).
|
||||
The special string 'all' will report the cross sections for all
|
||||
nuclides in the spatial domain. The special string 'sum' will report
|
||||
the cross sections summed over all nuclides. Defaults to 'all'.
|
||||
|
|
@ -758,7 +758,7 @@ class Library(object):
|
|||
xsdata_name : str
|
||||
Name to apply to the "xsdata" entry produced by this method
|
||||
nuclide : str
|
||||
A nuclide name string (e.g., 'U-235'). Defaults to 'total' to
|
||||
A nuclide name string (e.g., 'U235'). Defaults to 'total' to
|
||||
obtain a material-wise macroscopic cross section.
|
||||
xs_type: {'macro', 'micro'}
|
||||
Provide the macro or micro cross section in units of cm^-1 or
|
||||
|
|
|
|||
|
|
@ -120,7 +120,7 @@ class MGXS(object):
|
|||
being tracked. This is unity if the by_nuclide attribute is False.
|
||||
nuclides : Iterable of str or 'sum'
|
||||
The optional user-specified nuclides for which to compute cross
|
||||
sections (e.g., 'U-238', 'O-16'). If by_nuclide is True but nuclides
|
||||
sections (e.g., 'U238', 'O16'). If by_nuclide is True but nuclides
|
||||
are not specified by the user, all nuclides in the spatial domain
|
||||
are included. This attribute is 'sum' if by_nuclide is false.
|
||||
sparse : bool
|
||||
|
|
@ -494,7 +494,7 @@ class MGXS(object):
|
|||
-------
|
||||
list of str
|
||||
A list of the string names for each nuclide in the spatial domain
|
||||
(e.g., ['U-235', 'U-238', 'O-16'])
|
||||
(e.g., ['U235', 'U238', 'O16'])
|
||||
|
||||
Raises
|
||||
------
|
||||
|
|
@ -522,7 +522,7 @@ class MGXS(object):
|
|||
Parameters
|
||||
----------
|
||||
nuclide : str
|
||||
A nuclide name string (e.g., 'U-235')
|
||||
A nuclide name string (e.g., 'U235')
|
||||
|
||||
Returns
|
||||
-------
|
||||
|
|
@ -557,7 +557,7 @@ class MGXS(object):
|
|||
Parameters
|
||||
----------
|
||||
nuclides : Iterable of str or 'all' or 'sum'
|
||||
A list of nuclide name strings (e.g., ['U-235', 'U-238']). The
|
||||
A list of nuclide name strings (e.g., ['U235', 'U238']). The
|
||||
special string 'all' will return the atom densities for all nuclides
|
||||
in the spatial domain. The special string 'sum' will return the atom
|
||||
density summed across all nuclides in the spatial domain. Defaults
|
||||
|
|
@ -716,7 +716,7 @@ class MGXS(object):
|
|||
subdomains : Iterable of Integral or 'all'
|
||||
Subdomain IDs of interest. Defaults to 'all'.
|
||||
nuclides : Iterable of str or 'all' or 'sum'
|
||||
A list of nuclide name strings (e.g., ['U-235', 'U-238']). The
|
||||
A list of nuclide name strings (e.g., ['U235', 'U238']). The
|
||||
special string 'all' will return the cross sections for all nuclides
|
||||
in the spatial domain. The special string 'sum' will return the
|
||||
cross section summed over all nuclides. Defaults to 'all'.
|
||||
|
|
@ -954,7 +954,7 @@ class MGXS(object):
|
|||
----------
|
||||
nuclides : list of str
|
||||
A list of nuclide name strings
|
||||
(e.g., ['U-235', 'U-238']; default is [])
|
||||
(e.g., ['U235', 'U238']; default is [])
|
||||
groups : list of int
|
||||
A list of energy group indices starting at 1 for the high energies
|
||||
(e.g., [1, 2, 3]; default is [])
|
||||
|
|
@ -1111,7 +1111,7 @@ class MGXS(object):
|
|||
Defaults to 'all'.
|
||||
nuclides : Iterable of str or 'all' or 'sum'
|
||||
The nuclides of the cross-sections to include in the report. This
|
||||
may be a list of nuclide name strings (e.g., ['U-235', 'U-238']).
|
||||
may be a list of nuclide name strings (e.g., ['U235', 'U238']).
|
||||
The special string 'all' will report the cross sections for all
|
||||
nuclides in the spatial domain. The special string 'sum' will report
|
||||
the cross sections summed over all nuclides. Defaults to 'all'.
|
||||
|
|
@ -1215,7 +1215,7 @@ class MGXS(object):
|
|||
Defaults to 'all'.
|
||||
nuclides : Iterable of str or 'all' or 'sum'
|
||||
The nuclides of the cross-sections to include in the report. This
|
||||
may be a list of nuclide name strings (e.g., ['U-235', 'U-238']).
|
||||
may be a list of nuclide name strings (e.g., ['U235', 'U238']).
|
||||
The special string 'all' will report the cross sections for all
|
||||
nuclides in the spatial domain. The special string 'sum' will report
|
||||
the cross sections summed over all nuclides. Defaults to 'all'.
|
||||
|
|
@ -1414,7 +1414,7 @@ class MGXS(object):
|
|||
Energy groups of interest. Defaults to 'all'.
|
||||
nuclides : Iterable of str or 'all' or 'sum'
|
||||
The nuclides of the cross-sections to include in the dataframe. This
|
||||
may be a list of nuclide name strings (e.g., ['U-235', 'U-238']).
|
||||
may be a list of nuclide name strings (e.g., ['U235', 'U238']).
|
||||
The special string 'all' will include the cross sections for all
|
||||
nuclides in the spatial domain. The special string 'sum' will
|
||||
include the cross sections summed over all nuclides. Defaults
|
||||
|
|
@ -1603,7 +1603,7 @@ class MatrixMGXS(MGXS):
|
|||
being tracked. This is unity if the by_nuclide attribute is False.
|
||||
nuclides : Iterable of str or 'sum'
|
||||
The optional user-specified nuclides for which to compute cross
|
||||
sections (e.g., 'U-238', 'O-16'). If by_nuclide is True but nuclides
|
||||
sections (e.g., 'U238', 'O16'). If by_nuclide is True but nuclides
|
||||
are not specified by the user, all nuclides in the spatial domain
|
||||
are included. This attribute is 'sum' if by_nuclide is false.
|
||||
sparse : bool
|
||||
|
|
@ -1652,7 +1652,7 @@ class MatrixMGXS(MGXS):
|
|||
subdomains : Iterable of Integral or 'all'
|
||||
Subdomain IDs of interest. Defaults to 'all'.
|
||||
nuclides : Iterable of str or 'all' or 'sum'
|
||||
A list of nuclide name strings (e.g., ['U-235', 'U-238']). The
|
||||
A list of nuclide name strings (e.g., ['U235', 'U238']). The
|
||||
special string 'all' will return the cross sections for all
|
||||
nuclides in the spatial domain. The special string 'sum' will
|
||||
return the cross section summed over all nuclides. Defaults to
|
||||
|
|
@ -1790,7 +1790,7 @@ class MatrixMGXS(MGXS):
|
|||
----------
|
||||
nuclides : list of str
|
||||
A list of nuclide name strings
|
||||
(e.g., ['U-235', 'U-238']; default is [])
|
||||
(e.g., ['U235', 'U238']; default is [])
|
||||
in_groups : list of int
|
||||
A list of incoming energy group indices starting at 1 for the high
|
||||
energies (e.g., [1, 2, 3]; default is [])
|
||||
|
|
@ -1840,7 +1840,7 @@ class MatrixMGXS(MGXS):
|
|||
Defaults to 'all'.
|
||||
nuclides : Iterable of str or 'all' or 'sum'
|
||||
The nuclides of the cross-sections to include in the report. This
|
||||
may be a list of nuclide name strings (e.g., ['U-235', 'U-238']).
|
||||
may be a list of nuclide name strings (e.g., ['U235', 'U238']).
|
||||
The special string 'all' will report the cross sections for all
|
||||
nuclides in the spatial domain. The special string 'sum' will
|
||||
report the cross sections summed over all nuclides. Defaults to
|
||||
|
|
@ -2024,7 +2024,7 @@ class TotalXS(MGXS):
|
|||
being tracked. This is unity if the by_nuclide attribute is False.
|
||||
nuclides : Iterable of str or 'sum'
|
||||
The optional user-specified nuclides for which to compute cross
|
||||
sections (e.g., 'U-238', 'O-16'). If by_nuclide is True but nuclides
|
||||
sections (e.g., 'U238', 'O16'). If by_nuclide is True but nuclides
|
||||
are not specified by the user, all nuclides in the spatial domain
|
||||
are included. This attribute is 'sum' if by_nuclide is false.
|
||||
sparse : bool
|
||||
|
|
@ -2142,7 +2142,7 @@ class TransportXS(MGXS):
|
|||
being tracked. This is unity if the by_nuclide attribute is False.
|
||||
nuclides : Iterable of str or 'sum'
|
||||
The optional user-specified nuclides for which to compute cross
|
||||
sections (e.g., 'U-238', 'O-16'). If by_nuclide is True but nuclides
|
||||
sections (e.g., 'U238', 'O16'). If by_nuclide is True but nuclides
|
||||
are not specified by the user, all nuclides in the spatial domain
|
||||
are included. This attribute is 'sum' if by_nuclide is false.
|
||||
sparse : bool
|
||||
|
|
@ -2272,7 +2272,7 @@ class NuTransportXS(TransportXS):
|
|||
being tracked. This is unity if the by_nuclide attribute is False.
|
||||
nuclides : Iterable of str or 'sum'
|
||||
The optional user-specified nuclides for which to compute cross
|
||||
sections (e.g., 'U-238', 'O-16'). If by_nuclide is True but nuclides
|
||||
sections (e.g., 'U238', 'O16'). If by_nuclide is True but nuclides
|
||||
are not specified by the user, all nuclides in the spatial domain
|
||||
are included. This attribute is 'sum' if by_nuclide is false.
|
||||
sparse : bool
|
||||
|
|
@ -2393,7 +2393,7 @@ class AbsorptionXS(MGXS):
|
|||
being tracked. This is unity if the by_nuclide attribute is False.
|
||||
nuclides : Iterable of str or 'sum'
|
||||
The optional user-specified nuclides for which to compute cross
|
||||
sections (e.g., 'U-238', 'O-16'). If by_nuclide is True but nuclides
|
||||
sections (e.g., 'U238', 'O16'). If by_nuclide is True but nuclides
|
||||
are not specified by the user, all nuclides in the spatial domain
|
||||
are included. This attribute is 'sum' if by_nuclide is false.
|
||||
sparse : bool
|
||||
|
|
@ -2509,7 +2509,7 @@ class CaptureXS(MGXS):
|
|||
being tracked. This is unity if the by_nuclide attribute is False.
|
||||
nuclides : Iterable of str or 'sum'
|
||||
The optional user-specified nuclides for which to compute cross
|
||||
sections (e.g., 'U-238', 'O-16'). If by_nuclide is True but nuclides
|
||||
sections (e.g., 'U238', 'O16'). If by_nuclide is True but nuclides
|
||||
are not specified by the user, all nuclides in the spatial domain
|
||||
are included. This attribute is 'sum' if by_nuclide is false.
|
||||
sparse : bool
|
||||
|
|
@ -2631,7 +2631,7 @@ class FissionXS(MGXS):
|
|||
being tracked. This is unity if the by_nuclide attribute is False.
|
||||
nuclides : Iterable of str or 'sum'
|
||||
The optional user-specified nuclides for which to compute cross
|
||||
sections (e.g., 'U-238', 'O-16'). If by_nuclide is True but nuclides
|
||||
sections (e.g., 'U238', 'O16'). If by_nuclide is True but nuclides
|
||||
are not specified by the user, all nuclides in the spatial domain
|
||||
are included. This attribute is 'sum' if by_nuclide is false.
|
||||
sparse : bool
|
||||
|
|
@ -2742,7 +2742,7 @@ class NuFissionXS(MGXS):
|
|||
being tracked. This is unity if the by_nuclide attribute is False.
|
||||
nuclides : Iterable of str or 'sum'
|
||||
The optional user-specified nuclides for which to compute cross
|
||||
sections (e.g., 'U-238', 'O-16'). If by_nuclide is True but nuclides
|
||||
sections (e.g., 'U238', 'O16'). If by_nuclide is True but nuclides
|
||||
are not specified by the user, all nuclides in the spatial domain
|
||||
are included. This attribute is 'sum' if by_nuclide is false.
|
||||
sparse : bool
|
||||
|
|
@ -2858,7 +2858,7 @@ class KappaFissionXS(MGXS):
|
|||
being tracked. This is unity if the by_nuclide attribute is False.
|
||||
nuclides : Iterable of str or 'sum'
|
||||
The optional user-specified nuclides for which to compute cross
|
||||
sections (e.g., 'U-238', 'O-16'). If by_nuclide is True but nuclides
|
||||
sections (e.g., 'U238', 'O16'). If by_nuclide is True but nuclides
|
||||
are not specified by the user, all nuclides in the spatial domain
|
||||
are included. This attribute is 'sum' if by_nuclide is false.
|
||||
sparse : bool
|
||||
|
|
@ -2971,7 +2971,7 @@ class ScatterXS(MGXS):
|
|||
being tracked. This is unity if the by_nuclide attribute is False.
|
||||
nuclides : Iterable of str or 'sum'
|
||||
The optional user-specified nuclides for which to compute cross
|
||||
sections (e.g., 'U-238', 'O-16'). If by_nuclide is True but nuclides
|
||||
sections (e.g., 'U238', 'O16'). If by_nuclide is True but nuclides
|
||||
are not specified by the user, all nuclides in the spatial domain
|
||||
are included. This attribute is 'sum' if by_nuclide is false.
|
||||
sparse : bool
|
||||
|
|
@ -3086,7 +3086,7 @@ class NuScatterXS(MGXS):
|
|||
being tracked. This is unity if the by_nuclide attribute is False.
|
||||
nuclides : Iterable of str or 'sum'
|
||||
The optional user-specified nuclides for which to compute cross
|
||||
sections (e.g., 'U-238', 'O-16'). If by_nuclide is True but nuclides
|
||||
sections (e.g., 'U238', 'O16'). If by_nuclide is True but nuclides
|
||||
are not specified by the user, all nuclides in the spatial domain
|
||||
are included. This attribute is 'sum' if by_nuclide is false.
|
||||
sparse : bool
|
||||
|
|
@ -3220,7 +3220,7 @@ class ScatterMatrixXS(MatrixMGXS):
|
|||
being tracked. This is unity if the by_nuclide attribute is False.
|
||||
nuclides : Iterable of str or 'sum'
|
||||
The optional user-specified nuclides for which to compute cross
|
||||
sections (e.g., 'U-238', 'O-16'). If by_nuclide is True but nuclides
|
||||
sections (e.g., 'U238', 'O16'). If by_nuclide is True but nuclides
|
||||
are not specified by the user, all nuclides in the spatial domain
|
||||
are included. This attribute is 'sum' if by_nuclide is false.
|
||||
sparse : bool
|
||||
|
|
@ -3383,7 +3383,7 @@ class ScatterMatrixXS(MatrixMGXS):
|
|||
----------
|
||||
nuclides : list of str
|
||||
A list of nuclide name strings
|
||||
(e.g., ['U-235', 'U-238']; default is [])
|
||||
(e.g., ['U235', 'U238']; default is [])
|
||||
in_groups : list of int
|
||||
A list of incoming energy group indices starting at 1 for the high
|
||||
energies (e.g., [1, 2, 3]; default is [])
|
||||
|
|
@ -3465,7 +3465,7 @@ class ScatterMatrixXS(MatrixMGXS):
|
|||
subdomains : Iterable of Integral or 'all'
|
||||
Subdomain IDs of interest. Defaults to 'all'.
|
||||
nuclides : Iterable of str or 'all' or 'sum'
|
||||
A list of nuclide name strings (e.g., ['U-235', 'U-238']). The
|
||||
A list of nuclide name strings (e.g., ['U235', 'U238']). The
|
||||
special string 'all' will return the cross sections for all nuclides
|
||||
in the spatial domain. The special string 'sum' will return the
|
||||
cross section summed over all nuclides. Defaults to 'all'.
|
||||
|
|
@ -3612,7 +3612,7 @@ class ScatterMatrixXS(MatrixMGXS):
|
|||
Energy groups of interest. Defaults to 'all'.
|
||||
nuclides : Iterable of str or 'all' or 'sum'
|
||||
The nuclides of the cross-sections to include in the dataframe. This
|
||||
may be a list of nuclide name strings (e.g., ['U-235', 'U-238']).
|
||||
may be a list of nuclide name strings (e.g., ['U235', 'U238']).
|
||||
The special string 'all' will include the cross sections for all
|
||||
nuclides in the spatial domain. The special string 'sum' will
|
||||
include the cross sections summed over all nuclides. Defaults
|
||||
|
|
@ -3679,7 +3679,7 @@ class ScatterMatrixXS(MatrixMGXS):
|
|||
Defaults to 'all'.
|
||||
nuclides : Iterable of str or 'all' or 'sum'
|
||||
The nuclides of the cross-sections to include in the report. This
|
||||
may be a list of nuclide name strings (e.g., ['U-235', 'U-238']).
|
||||
may be a list of nuclide name strings (e.g., ['U235', 'U238']).
|
||||
The special string 'all' will report the cross sections for all
|
||||
nuclides in the spatial domain. The special string 'sum' will report
|
||||
the cross sections summed over all nuclides. Defaults to 'all'.
|
||||
|
|
@ -3869,7 +3869,7 @@ class NuScatterMatrixXS(ScatterMatrixXS):
|
|||
being tracked. This is unity if the by_nuclide attribute is False.
|
||||
nuclides : Iterable of str or 'sum'
|
||||
The optional user-specified nuclides for which to compute cross
|
||||
sections (e.g., 'U-238', 'O-16'). If by_nuclide is True but nuclides
|
||||
sections (e.g., 'U238', 'O16'). If by_nuclide is True but nuclides
|
||||
are not specified by the user, all nuclides in the spatial domain
|
||||
are included. This attribute is 'sum' if by_nuclide is false.
|
||||
sparse : bool
|
||||
|
|
@ -3991,7 +3991,7 @@ class MultiplicityMatrixXS(MatrixMGXS):
|
|||
being tracked. This is unity if the by_nuclide attribute is False.
|
||||
nuclides : Iterable of str or 'sum'
|
||||
The optional user-specified nuclides for which to compute cross
|
||||
sections (e.g., 'U-238', 'O-16'). If by_nuclide is True but nuclides
|
||||
sections (e.g., 'U238', 'O16'). If by_nuclide is True but nuclides
|
||||
are not specified by the user, all nuclides in the spatial domain
|
||||
are included. This attribute is 'sum' if by_nuclide is false.
|
||||
sparse : bool
|
||||
|
|
@ -4138,7 +4138,7 @@ class NuFissionMatrixXS(MatrixMGXS):
|
|||
being tracked. This is unity if the by_nuclide attribute is False.
|
||||
nuclides : Iterable of str or 'sum'
|
||||
The optional user-specified nuclides for which to compute cross
|
||||
sections (e.g., 'U-238', 'O-16'). If by_nuclide is True but nuclides
|
||||
sections (e.g., 'U238', 'O16'). If by_nuclide is True but nuclides
|
||||
are not specified by the user, all nuclides in the spatial domain
|
||||
are included. This attribute is 'sum' if by_nuclide is false.
|
||||
sparse : bool
|
||||
|
|
@ -4253,7 +4253,7 @@ class Chi(MGXS):
|
|||
being tracked. This is unity if the by_nuclide attribute is False.
|
||||
nuclides : Iterable of str or 'sum'
|
||||
The optional user-specified nuclides for which to compute cross
|
||||
sections (e.g., 'U-238', 'O-16'). If by_nuclide is True but nuclides
|
||||
sections (e.g., 'U238', 'O16'). If by_nuclide is True but nuclides
|
||||
are not specified by the user, all nuclides in the spatial domain
|
||||
are included. This attribute is 'sum' if by_nuclide is false.
|
||||
sparse : bool
|
||||
|
|
@ -4331,7 +4331,7 @@ class Chi(MGXS):
|
|||
----------
|
||||
nuclides : list of str
|
||||
A list of nuclide name strings
|
||||
(e.g., ['U-235', 'U-238']; default is [])
|
||||
(e.g., ['U235', 'U238']; default is [])
|
||||
groups : list of Integral
|
||||
A list of energy group indices starting at 1 for the high energies
|
||||
(e.g., [1, 2, 3]; default is [])
|
||||
|
|
@ -4442,7 +4442,7 @@ class Chi(MGXS):
|
|||
subdomains : Iterable of Integral or 'all'
|
||||
Subdomain IDs of interest. Defaults to 'all'.
|
||||
nuclides : Iterable of str or 'all' or 'sum'
|
||||
A list of nuclide name strings (e.g., ['U-235', 'U-238']). The
|
||||
A list of nuclide name strings (e.g., ['U235', 'U238']). The
|
||||
special string 'all' will return the cross sections for all nuclides
|
||||
in the spatial domain. The special string 'sum' will return the
|
||||
cross section summed over all nuclides. Defaults to 'all'.
|
||||
|
|
@ -4575,7 +4575,7 @@ class Chi(MGXS):
|
|||
Energy groups of interest. Defaults to 'all'.
|
||||
nuclides : Iterable of str or 'all' or 'sum'
|
||||
The nuclides of the cross-sections to include in the dataframe. This
|
||||
may be a list of nuclide name strings (e.g., ['U-235', 'U-238']).
|
||||
may be a list of nuclide name strings (e.g., ['U235', 'U238']).
|
||||
The special string 'all' will include the cross sections for all
|
||||
nuclides in the spatial domain. The special string 'sum' will
|
||||
include the cross sections summed over all nuclides. Defaults to
|
||||
|
|
|
|||
|
|
@ -100,7 +100,7 @@ class XSdata(object):
|
|||
alias : str
|
||||
Separate unique identifier for the xsdata object
|
||||
zaid : int
|
||||
1000*(atomic number) + mass number. As an example, the zaid of U-235
|
||||
1000*(atomic number) + mass number. As an example, the zaid of U235
|
||||
would be 92235.
|
||||
awr : float
|
||||
Atomic weight ratio of an isotope. That is, the ratio of the mass
|
||||
|
|
|
|||
|
|
@ -13,18 +13,18 @@ class Nuclide(object):
|
|||
Parameters
|
||||
----------
|
||||
name : str
|
||||
Name of the nuclide, e.g. U-235
|
||||
Name of the nuclide, e.g. U235
|
||||
xs : str
|
||||
Cross section identifier, e.g. 71c
|
||||
|
||||
Attributes
|
||||
----------
|
||||
name : str
|
||||
Name of the nuclide, e.g. U-235
|
||||
Name of the nuclide, e.g. U235
|
||||
xs : str
|
||||
Cross section identifier, e.g. 71c
|
||||
zaid : int
|
||||
1000*(atomic number) + mass number. As an example, the zaid of U-235
|
||||
1000*(atomic number) + mass number. As an example, the zaid of U235
|
||||
would be 92235.
|
||||
scattering : 'data' or 'iso-in-lab' or None
|
||||
The type of angular scattering distribution to use
|
||||
|
|
|
|||
|
|
@ -520,7 +520,7 @@ class Tally(object):
|
|||
Nuclide to add to the tally. The nuclide should be a Nuclide object
|
||||
when a user is adding nuclides to a Tally for input file generation.
|
||||
The nuclide is a str when a Tally is created from a StatePoint file
|
||||
(e.g., 'H-1', 'U-235') unless a Summary has been linked with the
|
||||
(e.g., 'H1', 'U235') unless a Summary has been linked with the
|
||||
StatePoint. The nuclide may be a CrossNuclide or AggregateNuclide
|
||||
for derived tallies created by tally arithmetic.
|
||||
|
||||
|
|
@ -1166,7 +1166,7 @@ class Tally(object):
|
|||
Parameters
|
||||
----------
|
||||
nuclide : str
|
||||
The name of the Nuclide (e.g., 'H-1', 'U-238')
|
||||
The name of the Nuclide (e.g., 'H1', 'U238')
|
||||
|
||||
Returns
|
||||
-------
|
||||
|
|
@ -1342,7 +1342,7 @@ class Tally(object):
|
|||
----------
|
||||
nuclides : list of str
|
||||
A list of nuclide name strings
|
||||
(e.g., ['U-235', 'U-238']; default is [])
|
||||
(e.g., ['U235', 'U238']; default is [])
|
||||
|
||||
Returns
|
||||
-------
|
||||
|
|
@ -1435,7 +1435,7 @@ class Tally(object):
|
|||
the filter_types parameter.
|
||||
nuclides : list of str
|
||||
A list of nuclide name strings
|
||||
(e.g., ['U-235', 'U-238']; default is [])
|
||||
(e.g., ['U235', 'U238']; default is [])
|
||||
value : str
|
||||
A string for the type of value to return - 'mean' (default),
|
||||
'std_dev', 'rel_err', 'sum', or 'sum_sq' are accepted
|
||||
|
|
@ -2887,7 +2887,7 @@ class Tally(object):
|
|||
correspond to the filter_types parameter.
|
||||
nuclides : list of str
|
||||
A list of nuclide name strings
|
||||
(e.g., ['U-235', 'U-238']; default is [])
|
||||
(e.g., ['U235', 'U238']; default is [])
|
||||
|
||||
Returns
|
||||
-------
|
||||
|
|
@ -3025,7 +3025,7 @@ class Tally(object):
|
|||
interest.
|
||||
nuclides : list of str
|
||||
A list of nuclide name strings to sum across
|
||||
(e.g., ['U-235', 'U-238']; default is [])
|
||||
(e.g., ['U235', 'U238']; default is [])
|
||||
remove_filter : bool
|
||||
If a filter is being summed over, this bool indicates whether to
|
||||
remove that filter in the returned tally. Default is False.
|
||||
|
|
@ -3173,7 +3173,7 @@ class Tally(object):
|
|||
interest.
|
||||
nuclides : list of str
|
||||
A list of nuclide name strings to average across
|
||||
(e.g., ['U-235', 'U-238']; default is [])
|
||||
(e.g., ['U235', 'U238']; default is [])
|
||||
remove_filter : bool
|
||||
If a filter is being averaged over, this bool indicates whether to
|
||||
remove that filter in the returned tally. Default is False.
|
||||
|
|
|
|||
139
scripts/openmc-ace-to-hdf5
Executable file
139
scripts/openmc-ace-to-hdf5
Executable file
|
|
@ -0,0 +1,139 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
import argparse
|
||||
import os
|
||||
import xml.etree.ElementTree as ET
|
||||
import warnings
|
||||
|
||||
import openmc.data
|
||||
|
||||
description = """
|
||||
This script can be used to create HDF5 nuclear data libraries used by
|
||||
OpenMC. There are four different ways you can specify ACE libraries that are to
|
||||
be converted:
|
||||
|
||||
1. List each ACE library as a positional argument. This is very useful in
|
||||
conjunction with the usual shell utilities (ls, find, etc.).
|
||||
2. Use the --xml option to specify a pre-v0.9 cross_sections.xml file.
|
||||
3. Use the --xsdir option to specify a MCNP xsdir file.
|
||||
4. Use the --xsdata option to specify a Serpent xsdata file.
|
||||
|
||||
The script does not use any extra information from cross_sections.xml/ xsdir/
|
||||
xsdata files to determine whether the nuclide is metastable. Instead, the
|
||||
--metastable argument can be used to specify whether the ZAID naming convention
|
||||
follows the NNDC data convention (1000*Z + A + 300 + 100*m), or the MCNP data
|
||||
convention (essentially the same as NNDC, except that the first metastable state
|
||||
of Am242 is 95242 and the ground state is 95642).
|
||||
|
||||
"""
|
||||
|
||||
class CustomFormatter(argparse.ArgumentDefaultsHelpFormatter,
|
||||
argparse.RawDescriptionHelpFormatter):
|
||||
pass
|
||||
|
||||
parser = argparse.ArgumentParser(
|
||||
description=description,
|
||||
formatter_class=CustomFormatter
|
||||
)
|
||||
parser.add_argument('libraries', nargs='*',
|
||||
help='ACE libraries to convert to HDF5')
|
||||
parser.add_argument('-d', '--destination', default='.',
|
||||
help='Directory to create new library in')
|
||||
parser.add_argument('-m', '--metastable', choices=['mcnp', 'nndc'], default='nndc',
|
||||
help='How to interpret ZAIDs for metastable nuclides')
|
||||
parser.add_argument('--xml', help='Old-style cross_sections.xml that '
|
||||
'lists ACE libraries')
|
||||
parser.add_argument('--xsdir', help='MCNP xsdir file that lists '
|
||||
'ACE libraries')
|
||||
parser.add_argument('--xsdata', help='Serpent xsdata file that lists '
|
||||
'ACE libraries')
|
||||
args = parser.parse_args()
|
||||
|
||||
if not os.path.isdir(args.destination):
|
||||
os.mkdir(args.destination)
|
||||
|
||||
# If the --xml argument was given, get the list of ACE libraries directory from
|
||||
# <ace_table> elements within the specified cross_sections.xml file
|
||||
ace_libraries = []
|
||||
if args.xml is not None:
|
||||
tree = ET.parse(args.xml)
|
||||
root = tree.getroot()
|
||||
if root.find('directory') is not None:
|
||||
directory = root.find('directory').text
|
||||
else:
|
||||
directory = os.path.dirname(args.xml)
|
||||
|
||||
for ace_table in root.findall('ace_table'):
|
||||
ace_libraries.append(os.path.join(directory, ace_table.attrib['path']))
|
||||
|
||||
elif args.xsdir is not None:
|
||||
# Find 'directory' section
|
||||
lines = open(args.xsdir, 'r').readlines()
|
||||
for index, line in enumerate(lines):
|
||||
if line.strip().lower() == 'directory':
|
||||
break
|
||||
else:
|
||||
raise IOError("Could not find 'directory' section in MCNP xsdir file")
|
||||
|
||||
# Create list of ACE libraries
|
||||
for line in lines[index + 1:]:
|
||||
words = line.split()
|
||||
if len(words) < 3:
|
||||
continue
|
||||
|
||||
path = os.path.join(os.path.dirname(args.xsdir), words[2])
|
||||
if path not in ace_libraries:
|
||||
ace_libraries.append(path)
|
||||
|
||||
elif args.xsdata is not None:
|
||||
with open(args.xsdata, 'r') as xsdata:
|
||||
for line in xsdata:
|
||||
words = line.split()
|
||||
if len(words) >= 9:
|
||||
path = os.path.join(os.path.dirname(args.xsdata, words[8]))
|
||||
if path not in ace_libraries:
|
||||
ace_libraries.append(path)
|
||||
|
||||
else:
|
||||
ace_libraries = args.libraries
|
||||
|
||||
library = openmc.data.DataLibrary()
|
||||
|
||||
for filename in ace_libraries:
|
||||
# Check that ACE library exists
|
||||
if not os.path.exists(filename):
|
||||
warnings.warn("ACE library '{}' does not exist.".format(filename))
|
||||
continue
|
||||
|
||||
lib = openmc.data.ace.Library(filename)
|
||||
for table in lib.tables:
|
||||
if table.name.endswith('c'):
|
||||
# Continuous-energy neutron data
|
||||
neutron = openmc.data.IncidentNeutron.from_ace(
|
||||
table, args.metastable)
|
||||
print(neutron.name)
|
||||
|
||||
# Determine filename
|
||||
outfile = os.path.join(args.destination,
|
||||
neutron.name.replace('.', '_') + '.h5')
|
||||
neutron.export_to_hdf5(outfile)
|
||||
|
||||
# Register with library
|
||||
library.register_file(outfile)
|
||||
|
||||
elif table.name.endswith('t'):
|
||||
# Thermal scattering data
|
||||
thermal = openmc.data.ThermalScattering.from_ace(table)
|
||||
print(thermal.name)
|
||||
|
||||
# Determine filename
|
||||
outfile = os.path.join(args.destination,
|
||||
thermal.name.replace('.', '_') + '.h5')
|
||||
thermal.export_to_hdf5(outfile)
|
||||
|
||||
# Register with library
|
||||
library.register_file(outfile, 'thermal')
|
||||
|
||||
# Write cross_sections.xml
|
||||
libpath = os.path.join(args.destination, 'cross_sections.xml')
|
||||
library.export_to_xml(libpath)
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
from openmc.ace import ascii_to_binary
|
||||
import sys
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
# Check for proper number of arguments
|
||||
if len(sys.argv) < 3:
|
||||
sys.exit('Usage: {0} ascii_file binary_file'.format(sys.argv[0]))
|
||||
|
||||
# Convert ASCII file
|
||||
ascii_to_binary(sys.argv[1], sys.argv[2])
|
||||
|
|
@ -22,11 +22,14 @@ optional arguments:
|
|||
from __future__ import print_function
|
||||
|
||||
import argparse
|
||||
from difflib import get_close_matches
|
||||
from itertools import chain
|
||||
from random import randint
|
||||
from shutil import move
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
import openmc.data
|
||||
from openmc.data.thermal import _THERMAL_NAMES
|
||||
|
||||
description = "Update OpenMC's input XML files to the latest format."
|
||||
epilog = """\
|
||||
|
|
@ -40,6 +43,11 @@ geometry.xml: Lattices containing 'outside' attributes/tags will be replaced
|
|||
with lattices containing 'outer' attributes, and the appropriate
|
||||
cells/universes will be added. Any 'surfaces' attributes/elements on a cell
|
||||
will be renamed 'region'.
|
||||
|
||||
materials.xml: Nuclide names will be changed from ACE aliases (e.g., Am-242m) to
|
||||
HDF5/GND names (e.g., Am242_m1). Thermal scattering table names will be
|
||||
changed from ACE aliases (e.g., HH2O) to HDF5/GND names (e.g., c_H_in_H2O).
|
||||
|
||||
"""
|
||||
|
||||
|
||||
|
|
@ -245,6 +253,62 @@ def update_geometry(geometry_root):
|
|||
|
||||
return was_updated
|
||||
|
||||
def get_thermal_name(name):
|
||||
"""Get proper S(a,b) table name, e.g. 'HH2O' -> 'c_H_in_H2O'"""
|
||||
if name.lower() in _THERMAL_NAMES:
|
||||
return _THERMAL_NAMES[name.lower()]
|
||||
else:
|
||||
# Make an educated guess?? This actually works well for
|
||||
# JEFF-3.2 which stupidly uses names like lw00.32t,
|
||||
# lw01.32t, etc. for different temperatures
|
||||
matches = get_close_matches(
|
||||
name.lower(), _THERMAL_NAMES.keys(), cutoff=0.5)
|
||||
if len(matches) > 0:
|
||||
return _THERMAL_NAMES[matches[0]] + '.' + xs
|
||||
else:
|
||||
# OK, we give up. Just use the ACE name.
|
||||
return 'c_' + name
|
||||
return name
|
||||
|
||||
def update_materials(root):
|
||||
"""Update the given XML materials tree. Return True if changes were made."""
|
||||
was_updated = False
|
||||
|
||||
for material in root.findall('material'):
|
||||
for nuclide in material.findall('nuclide'):
|
||||
if 'name' in nuclide.attrib:
|
||||
nucname = nuclide.attrib['name']
|
||||
nucname = nucname.replace('-', '')
|
||||
nucname = nucname.replace('Nat', '0')
|
||||
if nucname.endswith('m'):
|
||||
nucname = nucname[:-1] + '_m1'
|
||||
nuclide.set('name', nucname)
|
||||
was_updated = True
|
||||
|
||||
elif nuclide.find('name') is not None:
|
||||
name_elem = nuclide.find('name')
|
||||
nucname = name_elem.text
|
||||
nucname = nucname.replace('-', '')
|
||||
nucname = nucname.replace('Nat', '0')
|
||||
if nucname.endswith('m'):
|
||||
nucname = nucname[:-1] + '_m1'
|
||||
name_elem.text = nucname
|
||||
was_updated = True
|
||||
|
||||
for sab in material.findall('sab'):
|
||||
if 'name' in sab.attrib:
|
||||
sabname = sab.attrib['name']
|
||||
sab.set('name', get_thermal_name(sabname))
|
||||
was_updated = True
|
||||
|
||||
elif sab.find('name') is not None:
|
||||
name_elem = sab.find('name')
|
||||
sabname = name_elem.text
|
||||
name_elem.text = get_thermal(sabname)
|
||||
was_updated = True
|
||||
|
||||
return was_updated
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
args = parse_args()
|
||||
|
|
@ -256,6 +320,8 @@ if __name__ == '__main__':
|
|||
|
||||
if root.tag == 'geometry':
|
||||
was_updated = update_geometry(root)
|
||||
elif root.tag == 'materials':
|
||||
was_updated = update_materials(root)
|
||||
|
||||
if was_updated:
|
||||
# Move the original geometry file to preserve it.
|
||||
|
|
|
|||
|
|
@ -1,148 +0,0 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
import os
|
||||
import sys
|
||||
from xml.dom.minidom import getDOMImplementation
|
||||
|
||||
types = {1: "neutron", 2: "dosimetry", 3: "thermal"}
|
||||
|
||||
|
||||
class Xsdata(object):
|
||||
|
||||
def __init__(self, filename):
|
||||
self._table_dict = {}
|
||||
self.tables = []
|
||||
|
||||
for line in open(filename, 'r'):
|
||||
words = line.split()
|
||||
|
||||
# If this listing is just an alias listing, only assign the alias
|
||||
# attribute
|
||||
name = words[1]
|
||||
alias = words[0]
|
||||
table = self.find_table(name)
|
||||
if table:
|
||||
if name not in table.alias:
|
||||
table.alias.append(alias)
|
||||
continue
|
||||
|
||||
table = XsdataTable()
|
||||
table.name = name
|
||||
table.type = types[int(words[2])]
|
||||
table.zaid = int(words[3])
|
||||
table.metastable = int(words[4])
|
||||
table.awr = float(words[5])
|
||||
table.temperature = 8.6173423e-11 * float(words[6])
|
||||
table.binary = int(words[7])
|
||||
table.path = words[8]
|
||||
|
||||
self.tables.append(table)
|
||||
self._table_dict[name] = table
|
||||
|
||||
# Check for common directory
|
||||
self.directory = os.path.dirname(self.tables[0].path)
|
||||
for table in self.tables:
|
||||
if not table.path.startswith(self.directory):
|
||||
self.directory = None
|
||||
break
|
||||
|
||||
def to_xml(self):
|
||||
# Create XML document
|
||||
impl = getDOMImplementation()
|
||||
doc = impl.createDocument(None, "cross_sections", None)
|
||||
|
||||
# Get root element
|
||||
root = doc.documentElement
|
||||
|
||||
# Add a directory node
|
||||
if self.directory:
|
||||
directoryNode = doc.createElement("directory")
|
||||
text = doc.createTextNode(self.directory)
|
||||
directoryNode.appendChild(text)
|
||||
root.appendChild(directoryNode)
|
||||
|
||||
for table in self.tables:
|
||||
table.path = os.path.basename(table.path)
|
||||
|
||||
# Add a node for each table
|
||||
for table in self.tables:
|
||||
node = table.to_xml_node(doc)
|
||||
root.appendChild(node)
|
||||
|
||||
return doc
|
||||
|
||||
def find_table(self, name):
|
||||
if name in self._table_dict:
|
||||
return self._table_dict[name]
|
||||
else:
|
||||
return None
|
||||
|
||||
|
||||
class XsdataTable(object):
|
||||
|
||||
def __init__(self):
|
||||
self.alias = []
|
||||
|
||||
def to_xml_node(self, doc):
|
||||
node = doc.createElement("ace_table")
|
||||
node.setAttribute("name", self.name)
|
||||
for attribute in ["alias", "zaid", "type", "metastable",
|
||||
"awr", "temperature", "binary", "path"]:
|
||||
if hasattr(self, attribute):
|
||||
# Join string for alias attribute
|
||||
if attribute == "alias":
|
||||
if not self.alias:
|
||||
continue
|
||||
string = " ".join(self.alias)
|
||||
else:
|
||||
string = "{0}".format(getattr(self, attribute))
|
||||
|
||||
# Skip metastable and binary if 0
|
||||
if attribute == "metastable" and self.metastable == 0:
|
||||
continue
|
||||
if attribute == "binary" and self.binary == 0:
|
||||
continue
|
||||
|
||||
# Create attribute node
|
||||
# nodeAttr = doc.createElement(attribute)
|
||||
# text = doc.createTextNode(string)
|
||||
# nodeAttr.appendChild(text)
|
||||
# node.appendChild(nodeAttr)
|
||||
node.setAttribute(attribute, string)
|
||||
return node
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
# Read command line arguments
|
||||
if len(sys.argv) < 3:
|
||||
sys.exit("Usage: convert_xsdata.py xsdataFile xmlFile")
|
||||
xsdataFile = sys.argv[1]
|
||||
xmlFile = sys.argv[2]
|
||||
|
||||
# Read xsdata and create XML document object
|
||||
xsdataObject = Xsdata(xsdataFile)
|
||||
doc = xsdataObject.to_xml()
|
||||
|
||||
# Reduce number of lines
|
||||
lines = doc.toprettyxml(indent=' ')
|
||||
lines = lines.replace('<alias>\n ', '<alias>')
|
||||
lines = lines.replace('\n </alias>', '</alias>')
|
||||
lines = lines.replace('<zaid>\n ', '<zaid>')
|
||||
lines = lines.replace('\n </zaid>', '</zaid>')
|
||||
lines = lines.replace('<type>\n ', '<type>')
|
||||
lines = lines.replace('\n </type>', '</type>')
|
||||
lines = lines.replace('<awr>\n ', '<awr>')
|
||||
lines = lines.replace('\n </awr>', '</awr>')
|
||||
lines = lines.replace('<temperature>\n ', '<temperature>')
|
||||
lines = lines.replace('\n </temperature>', '</temperature>')
|
||||
lines = lines.replace('<path>\n ', '<path>')
|
||||
lines = lines.replace('\n </path>', '</path>')
|
||||
lines = lines.replace('<metastable>\n ', '<metastable>')
|
||||
lines = lines.replace('\n </metastable>', '</metastable>')
|
||||
lines = lines.replace('<binary>\n ', '<binary>')
|
||||
lines = lines.replace('\n </binary>', '</binary>')
|
||||
|
||||
# Write document in pretty XML to specified file
|
||||
f = open(xmlFile, 'w')
|
||||
f.write(lines)
|
||||
f.close()
|
||||
|
|
@ -1,288 +0,0 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
import os
|
||||
import sys
|
||||
from xml.dom.minidom import getDOMImplementation
|
||||
|
||||
elements = [None, "H", "He", "Li", "Be", "B", "C", "N", "O", "F", "Ne", "Na",
|
||||
"Mg", "Al", "Si", "P", "S", "Cl", "Ar", "K", "Ca", "Sc", "Ti", "V",
|
||||
"Cr", "Mn", "Fe", "Co", "Ni", "Cu", "Zn", "Ga", "Ge", "As", "Se",
|
||||
"Br", "Kr", "Rb", "Sr", "Y", "Zr", "Nb", "Mo", "Tc", "Ru", "Rh",
|
||||
"Pd", "Ag", "Cd", "In", "Sn", "Sb", "Te", "I", "Xe", "Cs", "Ba",
|
||||
"La", "Ce", "Pr", "Nd", "Pm", "Sm", "Eu", "Gd", "Tb", "Dy", "Ho",
|
||||
"Er", "Tm", "Yb", "Lu", "Hf", "Ta", "W", "Re", "Os", "Ir", "Pt",
|
||||
"Au", "Hg", "Tl", "Pb", "Bi", "Po", "At", "Rn", "Fr", "Ra", "Ac",
|
||||
"Th", "Pa", "U", "Np", "Pu", "Am", "Cm", "Bk", "Cf", "Es", "Fm",
|
||||
"Md", "No", "Lr", "Rf", "Db", "Sg", "Bh", "Hs", "Mt", "Ds", "Rg",
|
||||
"Cn"]
|
||||
|
||||
|
||||
class Xsdir(object):
|
||||
|
||||
def __init__(self, filename):
|
||||
self.f = open(filename, 'r')
|
||||
self.filename = os.path.abspath(filename)
|
||||
self.directory = os.path.dirname(filename)
|
||||
self.awr = {}
|
||||
self.tables = []
|
||||
|
||||
self.filetype = set()
|
||||
self.recordlength = set()
|
||||
self.entries = set()
|
||||
|
||||
# Read first section (DATAPATH)
|
||||
line = self.f.readline()
|
||||
words = line.split()
|
||||
if words:
|
||||
if words[0].lower().startswith('datapath'):
|
||||
if '=' in words[0]:
|
||||
index = line.index('=')
|
||||
self.datapath = line[index+1:].strip()
|
||||
else:
|
||||
if len(line.strip()) > 8:
|
||||
self.datapath = line[8:].strip()
|
||||
else:
|
||||
self.f.seek(0)
|
||||
|
||||
# Read second section
|
||||
line = self.f.readline()
|
||||
words = line.split()
|
||||
assert len(words) == 3
|
||||
assert words[0].lower() == 'atomic'
|
||||
assert words[1].lower() == 'weight'
|
||||
assert words[2].lower() == 'ratios'
|
||||
|
||||
while True:
|
||||
line = self.f.readline()
|
||||
words = line.split()
|
||||
|
||||
# Check for end of second section
|
||||
if len(words) % 2 != 0 or words[0] == 'directory':
|
||||
break
|
||||
|
||||
for zaid, awr in zip(words[::2], words[1::2]):
|
||||
self.awr[zaid] = awr
|
||||
|
||||
# Read third section
|
||||
while words[0] != 'directory':
|
||||
words = self.f.readline().split()
|
||||
|
||||
while True:
|
||||
words = self.f.readline().split()
|
||||
if not words:
|
||||
break
|
||||
|
||||
# Handle continuation lines
|
||||
while words[-1] == '+':
|
||||
extraWords = self.f.readline().split()
|
||||
words = words[:-1] + extraWords
|
||||
assert len(words) >= 7
|
||||
|
||||
# Create XsdirTable object and add to line
|
||||
table = XsdirTable(self.directory)
|
||||
self.tables.append(table)
|
||||
|
||||
# All tables have at least 7 attributes
|
||||
table.name = words[0]
|
||||
table.awr = float(words[1])
|
||||
table.filename = words[2]
|
||||
table.access = words[3]
|
||||
table.filetype = int(words[4])
|
||||
table.location = int(words[5])
|
||||
table.length = int(words[6])
|
||||
|
||||
self.filetype.add(table.filetype)
|
||||
|
||||
if len(words) > 7:
|
||||
table.recordlength = int(words[7])
|
||||
self.recordlength.add(table.recordlength)
|
||||
if len(words) > 8:
|
||||
table.entries = int(words[8])
|
||||
self.entries.add(table.entries)
|
||||
if len(words) > 9:
|
||||
table.temperature = float(words[9])
|
||||
if len(words) > 10:
|
||||
table.ptable = (words[10] == 'ptable')
|
||||
|
||||
if len(self.filetype) == 1:
|
||||
if 1 in self.filetype:
|
||||
self.filetype = 'ascii'
|
||||
elif 2 in self.filetype:
|
||||
self.filetype = 'binary'
|
||||
else:
|
||||
self.filetype = None
|
||||
|
||||
if len(self.recordlength) == 1:
|
||||
self.recordlength = list(self.recordlength)[0]
|
||||
else:
|
||||
self.recordlength = None
|
||||
if len(self.entries) == 1:
|
||||
self.entries = list(self.entries)[0]
|
||||
else:
|
||||
self.recordlength = None
|
||||
|
||||
def to_xml(self):
|
||||
# Create XML document
|
||||
impl = getDOMImplementation()
|
||||
doc = impl.createDocument(None, "cross_sections", None)
|
||||
|
||||
# Get root element
|
||||
root = doc.documentElement
|
||||
|
||||
# Add a directory node
|
||||
if self.directory:
|
||||
directoryNode = doc.createElement("directory")
|
||||
text = doc.createTextNode(self.directory)
|
||||
directoryNode.appendChild(text)
|
||||
root.appendChild(directoryNode)
|
||||
|
||||
for table in self.tables:
|
||||
table.path = os.path.basename(table.path)
|
||||
|
||||
# Add filetype, record_length and entries nodes
|
||||
if self.filetype:
|
||||
node = doc.createElement("filetype")
|
||||
text = doc.createTextNode(self.filetype)
|
||||
node.appendChild(text)
|
||||
root.appendChild(node)
|
||||
if self.recordlength:
|
||||
node = doc.createElement("record_length")
|
||||
text = doc.createTextNode(str(self.recordlength))
|
||||
node.appendChild(text)
|
||||
root.appendChild(node)
|
||||
if self.entries:
|
||||
node = doc.createElement("entries")
|
||||
text = doc.createTextNode(str(self.entries))
|
||||
node.appendChild(text)
|
||||
root.appendChild(node)
|
||||
|
||||
# Add a node for each table
|
||||
for table in self.tables:
|
||||
if table.name[-1] in ['e', 'p', 'u', 'h', 'g', 'm', 'd']:
|
||||
continue
|
||||
node = table.to_xml_node(doc)
|
||||
root.appendChild(node)
|
||||
|
||||
return doc
|
||||
|
||||
|
||||
class XsdirTable(object):
|
||||
|
||||
def __init__(self, directory=None):
|
||||
self.directory = None
|
||||
self.name = None
|
||||
self.awr = None
|
||||
self.filename = None
|
||||
self.access = None
|
||||
self.filetype = None
|
||||
self.location = None
|
||||
self.length = None
|
||||
self.recordlength = None
|
||||
self.entries = None
|
||||
self.temperature = None
|
||||
self.ptable = False
|
||||
|
||||
@property
|
||||
def path(self):
|
||||
if self.directory:
|
||||
return os.path.join(self.directory, self.filename)
|
||||
else:
|
||||
return self.filename
|
||||
|
||||
@path.setter
|
||||
def path(self, value):
|
||||
self.diretory = ''
|
||||
self.filename = value
|
||||
|
||||
@property
|
||||
def metastable(self):
|
||||
# Only valid for neutron cross-sections
|
||||
if not self.name.endswith('c'):
|
||||
return
|
||||
|
||||
# Handle special case of Am-242 and Am-242m
|
||||
if self.zaid == '95242':
|
||||
return 1
|
||||
elif self.zaid == '95642':
|
||||
return 0
|
||||
|
||||
# All other cases
|
||||
A = int(self.zaid) % 1000
|
||||
if A > 300:
|
||||
return 1
|
||||
else:
|
||||
return 0
|
||||
|
||||
@property
|
||||
def alias(self):
|
||||
zaid = self.zaid
|
||||
if zaid:
|
||||
Z = int(zaid[:-3])
|
||||
A = zaid[-3:]
|
||||
|
||||
if A == '000':
|
||||
s = 'Nat'
|
||||
elif zaid == '95242':
|
||||
s = '242m'
|
||||
elif zaid == '95642':
|
||||
s = '242'
|
||||
elif int(A) > 300:
|
||||
s = str(int(A) - 400) + "m"
|
||||
else:
|
||||
s = str(int(A))
|
||||
|
||||
return "{0}-{1}.{2}".format(elements[Z], s, self.xs)
|
||||
else:
|
||||
return None
|
||||
|
||||
@property
|
||||
def zaid(self):
|
||||
if self.name.endswith('c'):
|
||||
return self.name[:self.name.find('.')]
|
||||
else:
|
||||
return 0
|
||||
|
||||
@property
|
||||
def xs(self):
|
||||
return self.name[self.name.find('.')+1:]
|
||||
|
||||
def to_xml_node(self, doc):
|
||||
node = doc.createElement("ace_table")
|
||||
node.setAttribute("name", self.name)
|
||||
for attribute in ["alias", "zaid", "type", "metastable", "awr",
|
||||
"temperature", "path", "location"]:
|
||||
if hasattr(self, attribute):
|
||||
string = str(getattr(self, attribute))
|
||||
|
||||
# Skip metastable and binary if 0
|
||||
if attribute == "metastable" and self.metastable == 0:
|
||||
continue
|
||||
|
||||
# Skip any attribute that is none
|
||||
if getattr(self, attribute) is None:
|
||||
continue
|
||||
|
||||
# Create attribute node
|
||||
node.setAttribute(attribute, string)
|
||||
|
||||
return node
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
# Read command line arguments
|
||||
if len(sys.argv) < 3:
|
||||
sys.exit("Usage: convert_xsdir.py xsdirFile xmlFile")
|
||||
xsdirFile = sys.argv[1]
|
||||
xmlFile = sys.argv[2]
|
||||
|
||||
# Read xsdata and create XML document object
|
||||
xsdirObject = Xsdir(xsdirFile)
|
||||
doc = xsdirObject.to_xml()
|
||||
|
||||
# Reduce number of lines
|
||||
lines = doc.toprettyxml(indent=' ')
|
||||
|
||||
# Write document in pretty XML to specified file
|
||||
f = open(xmlFile, 'w')
|
||||
f.write(lines)
|
||||
f.close()
|
||||
|
|
@ -38,7 +38,7 @@ contains
|
|||
integer(HSIZE_T) :: dims(1)
|
||||
|
||||
call read_attribute(this % Q_value, group_id, 'Q_value')
|
||||
call read_attribute(this % MT, group_id, 'MT')
|
||||
call read_attribute(this % MT, group_id, 'mt')
|
||||
call read_attribute(this % threshold, group_id, 'threshold_idx')
|
||||
call read_attribute(cm, group_id, 'center_of_mass')
|
||||
this % scatter_in_cm = (cm == 1)
|
||||
|
|
|
|||
|
|
@ -1,25 +1,12 @@
|
|||
element cross_sections {
|
||||
element ace_table {
|
||||
(element name { xsd:string { maxLength = "15" } } |
|
||||
attribute name { xsd:string { maxLength = "15" } }) &
|
||||
(element alias { xsd:string { maxLength = "15" } } |
|
||||
attribute alias { xsd:string { maxLength = "15" } })? &
|
||||
(element zaid { xsd:int } | attribute zaid { xsd:int }) &
|
||||
(element metastable { xsd:int } | attribute metastable { xsd:int })? &
|
||||
(element awr { xsd:double } | attribute awr { xsd:double }) &
|
||||
(element temperature { xsd:double } | attribute temperature { xsd:double }) &
|
||||
(element path { xsd:string { maxLength = "255" } } |
|
||||
attribute path { xsd:string { maxLength = "255" } }) &
|
||||
(element location { xsd:int } | attribute location { xsd:int })? &
|
||||
(element filetype { ( "ascii" | "binary" ) } |
|
||||
attribute filetype { ( "ascii" | "binary" ) })?
|
||||
element library {
|
||||
(element materials { xsd:string } |
|
||||
attribute materials { xsd:string }) &
|
||||
(element type { xsd:string } |
|
||||
attribute type { xsd:string }) &
|
||||
(element path { xsd:string } |
|
||||
attribute path { xsd:string })
|
||||
}* &
|
||||
|
||||
element directory { xsd:string { maxLength = "255" } }? &
|
||||
|
||||
element filetype { ( "ascii" | "binary" ) } &
|
||||
|
||||
element record_length { xsd:int }? &
|
||||
|
||||
element entries { xsd:int }?
|
||||
element directory { xsd:string { maxLength = "255" } }?
|
||||
}
|
||||
|
|
@ -2,106 +2,32 @@
|
|||
<element name="cross_sections" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
||||
<interleave>
|
||||
<zeroOrMore>
|
||||
<element name="ace_table">
|
||||
<element name="library">
|
||||
<interleave>
|
||||
<choice>
|
||||
<element name="name">
|
||||
<data type="string">
|
||||
<param name="maxLength">15</param>
|
||||
</data>
|
||||
<element name="materials">
|
||||
<data type="string"/>
|
||||
</element>
|
||||
<attribute name="name">
|
||||
<data type="string">
|
||||
<param name="maxLength">15</param>
|
||||
</data>
|
||||
</attribute>
|
||||
</choice>
|
||||
<optional>
|
||||
<choice>
|
||||
<element name="alias">
|
||||
<data type="string">
|
||||
<param name="maxLength">15</param>
|
||||
</data>
|
||||
</element>
|
||||
<attribute name="alias">
|
||||
<data type="string">
|
||||
<param name="maxLength">15</param>
|
||||
</data>
|
||||
</attribute>
|
||||
</choice>
|
||||
</optional>
|
||||
<choice>
|
||||
<element name="zaid">
|
||||
<data type="int"/>
|
||||
</element>
|
||||
<attribute name="zaid">
|
||||
<data type="int"/>
|
||||
</attribute>
|
||||
</choice>
|
||||
<optional>
|
||||
<choice>
|
||||
<element name="metastable">
|
||||
<data type="int"/>
|
||||
</element>
|
||||
<attribute name="metastable">
|
||||
<data type="int"/>
|
||||
</attribute>
|
||||
</choice>
|
||||
</optional>
|
||||
<choice>
|
||||
<element name="awr">
|
||||
<data type="double"/>
|
||||
</element>
|
||||
<attribute name="awr">
|
||||
<data type="double"/>
|
||||
<attribute name="materials">
|
||||
<data type="string"/>
|
||||
</attribute>
|
||||
</choice>
|
||||
<choice>
|
||||
<element name="temperature">
|
||||
<data type="double"/>
|
||||
<element name="type">
|
||||
<data type="string"/>
|
||||
</element>
|
||||
<attribute name="temperature">
|
||||
<data type="double"/>
|
||||
<attribute name="type">
|
||||
<data type="string"/>
|
||||
</attribute>
|
||||
</choice>
|
||||
<choice>
|
||||
<element name="path">
|
||||
<data type="string">
|
||||
<param name="maxLength">255</param>
|
||||
</data>
|
||||
<data type="string"/>
|
||||
</element>
|
||||
<attribute name="path">
|
||||
<data type="string">
|
||||
<param name="maxLength">255</param>
|
||||
</data>
|
||||
<data type="string"/>
|
||||
</attribute>
|
||||
</choice>
|
||||
<optional>
|
||||
<choice>
|
||||
<element name="location">
|
||||
<data type="int"/>
|
||||
</element>
|
||||
<attribute name="location">
|
||||
<data type="int"/>
|
||||
</attribute>
|
||||
</choice>
|
||||
</optional>
|
||||
<optional>
|
||||
<choice>
|
||||
<element name="filetype">
|
||||
<choice>
|
||||
<value>ascii</value>
|
||||
<value>binary</value>
|
||||
</choice>
|
||||
</element>
|
||||
<attribute name="filetype">
|
||||
<choice>
|
||||
<value>ascii</value>
|
||||
<value>binary</value>
|
||||
</choice>
|
||||
</attribute>
|
||||
</choice>
|
||||
</optional>
|
||||
</interleave>
|
||||
</element>
|
||||
</zeroOrMore>
|
||||
|
|
@ -112,21 +38,5 @@
|
|||
</data>
|
||||
</element>
|
||||
</optional>
|
||||
<element name="filetype">
|
||||
<choice>
|
||||
<value>ascii</value>
|
||||
<value>binary</value>
|
||||
</choice>
|
||||
</element>
|
||||
<optional>
|
||||
<element name="record_length">
|
||||
<data type="int"/>
|
||||
</element>
|
||||
</optional>
|
||||
<optional>
|
||||
<element name="entries">
|
||||
<data type="int"/>
|
||||
</element>
|
||||
</optional>
|
||||
</interleave>
|
||||
</element>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue