Merge branch 'develop' into log-energy-grid

This commit is contained in:
Paul Romano 2014-10-16 21:03:32 -04:00
commit 689141dc36
248 changed files with 161110 additions and 159174 deletions

View file

@ -64,7 +64,7 @@
<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-59.71c" awr="57.4381" location="1" name="27059.71c" path="293.6K/Co_058m1_293.6K.ace" temperature="2.53e-08" zaid="27059"/>
<ace_table alias="Co-58m.71c" awr="57.4381" location="1" metastable="1" name="27059.71c" path="293.6K/Co_058m1_293.6K.ace" temperature="2.53e-08" zaid="27059"/>
<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"/>
@ -157,7 +157,7 @@
<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-119.71c" awr="108.962" location="1" name="47119.71c" path="293.6K/Ag_110m1_293.6K.ace" temperature="2.53e-08" zaid="47119"/>
<ace_table alias="Ag-110m.71c" awr="108.962" location="1" metastable="1" name="47119.71c" path="293.6K/Ag_110m1_293.6K.ace" temperature="2.53e-08" zaid="47119"/>
<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"/>
@ -166,7 +166,7 @@
<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-119.71c" awr="113.918" location="1" name="48119.71c" path="293.6K/Cd_115m1_293.6K.ace" temperature="2.53e-08" zaid="48119"/>
<ace_table alias="Cd-115m.71c" awr="113.918" location="1" metastable="1" name="48119.71c" path="293.6K/Cd_115m1_293.6K.ace" temperature="2.53e-08" zaid="48119"/>
<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"/>
@ -195,9 +195,9 @@
<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-129.71c" awr="125.815" location="1" name="52129.71c" path="293.6K/Te_127m1_293.6K.ace" temperature="2.53e-08" zaid="52129"/>
<ace_table alias="Te-127m.71c" awr="125.815" location="1" metastable="1" name="52129.71c" path="293.6K/Te_127m1_293.6K.ace" temperature="2.53e-08" zaid="52129"/>
<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-129.71c" awr="127.8" location="1" name="52129.71c" path="293.6K/Te_129m1_293.6K.ace" temperature="2.53e-08" zaid="52129"/>
<ace_table alias="Te-129m.71c" awr="127.8" location="1" metastable="1" name="52129.71c" path="293.6K/Te_129m1_293.6K.ace" temperature="2.53e-08" zaid="52129"/>
<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"/>
@ -255,7 +255,7 @@
<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-149.71c" awr="146.65" location="1" name="61149.71c" path="293.6K/Pm_148m1_293.6K.ace" temperature="2.53e-08" zaid="61149"/>
<ace_table alias="Pm-148m.71c" awr="146.65" location="1" metastable="1" name="61149.71c" path="293.6K/Pm_148m1_293.6K.ace" temperature="2.53e-08" zaid="61149"/>
<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"/>
@ -292,7 +292,7 @@
<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-169.71c" awr="164.507" location="1" name="67169.71c" path="293.6K/Ho_166m1_293.6K.ace" temperature="2.53e-08" zaid="67169"/>
<ace_table alias="Ho-166m.71c" awr="164.507" location="1" metastable="1" name="67169.71c" path="293.6K/Ho_166m1_293.6K.ace" temperature="2.53e-08" zaid="67169"/>
<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"/>
@ -387,11 +387,11 @@
<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-242m.71c" awr="239.9801" location="1" metastable="1" name="95242.71c" path="293.6K/Am_242_293.6K.ace" temperature="2.53e-08" zaid="95242"/>
<ace_table alias="Am-249.71c" awr="239.9801" location="1" name="95249.71c" path="293.6K/Am_242m1_293.6K.ace" temperature="2.53e-08" zaid="95249"/>
<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="95249.71c" path="293.6K/Am_242m1_293.6K.ace" temperature="2.53e-08" zaid="95249"/>
<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-249.71c" awr="241.968" location="1" name="95249.71c" path="293.6K/Am_244m1_293.6K.ace" temperature="2.53e-08" zaid="95249"/>
<ace_table alias="Am-244m.71c" awr="241.968" location="1" metastable="1" name="95249.71c" path="293.6K/Am_244m1_293.6K.ace" temperature="2.53e-08" zaid="95249"/>
<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"/>
@ -421,7 +421,7 @@
<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-259.71c" awr="251.905" location="1" name="99259.71c" path="293.6K/Es_254m1_293.6K.ace" temperature="2.53e-08" zaid="99259"/>
<ace_table alias="Es-254m.71c" awr="251.905" location="1" metastable="1" name="99259.71c" path="293.6K/Es_254m1_293.6K.ace" temperature="2.53e-08" zaid="99259"/>
<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"/>
@ -487,7 +487,7 @@
<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-59.72c" awr="57.4381" location="1" name="27059.72c" path="300K/Co_058m1_300K.ace" temperature="2.585e-08" zaid="27059"/>
<ace_table alias="Co-58m.72c" awr="57.4381" location="1" metastable="1" name="27059.72c" path="300K/Co_058m1_300K.ace" temperature="2.585e-08" zaid="27059"/>
<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"/>
@ -580,7 +580,7 @@
<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-119.72c" awr="108.962" location="1" name="47119.72c" path="300K/Ag_110m1_300K.ace" temperature="2.585e-08" zaid="47119"/>
<ace_table alias="Ag-110m.72c" awr="108.962" location="1" metastable="1" name="47119.72c" path="300K/Ag_110m1_300K.ace" temperature="2.585e-08" zaid="47119"/>
<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"/>
@ -589,7 +589,7 @@
<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-119.72c" awr="113.918" location="1" name="48119.72c" path="300K/Cd_115m1_300K.ace" temperature="2.585e-08" zaid="48119"/>
<ace_table alias="Cd-115m.72c" awr="113.918" location="1" metastable="1" name="48119.72c" path="300K/Cd_115m1_300K.ace" temperature="2.585e-08" zaid="48119"/>
<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"/>
@ -618,9 +618,9 @@
<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-129.72c" awr="125.815" location="1" name="52129.72c" path="300K/Te_127m1_300K.ace" temperature="2.585e-08" zaid="52129"/>
<ace_table alias="Te-127m.72c" awr="125.815" location="1" metastable="1" name="52129.72c" path="300K/Te_127m1_300K.ace" temperature="2.585e-08" zaid="52129"/>
<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-129.72c" awr="127.8" location="1" name="52129.72c" path="300K/Te_129m1_300K.ace" temperature="2.585e-08" zaid="52129"/>
<ace_table alias="Te-129m.72c" awr="127.8" location="1" metastable="1" name="52129.72c" path="300K/Te_129m1_300K.ace" temperature="2.585e-08" zaid="52129"/>
<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"/>
@ -678,7 +678,7 @@
<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-149.72c" awr="146.65" location="1" name="61149.72c" path="300K/Pm_148m1_300K.ace" temperature="2.585e-08" zaid="61149"/>
<ace_table alias="Pm-148m.72c" awr="146.65" location="1" metastable="1" name="61149.72c" path="300K/Pm_148m1_300K.ace" temperature="2.585e-08" zaid="61149"/>
<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"/>
@ -715,7 +715,7 @@
<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-169.72c" awr="164.507" location="1" name="67169.72c" path="300K/Ho_166m1_300K.ace" temperature="2.585e-08" zaid="67169"/>
<ace_table alias="Ho-166m.72c" awr="164.507" location="1" metastable="1" name="67169.72c" path="300K/Ho_166m1_300K.ace" temperature="2.585e-08" zaid="67169"/>
<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"/>
@ -810,11 +810,11 @@
<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-242m.72c" awr="239.9801" location="1" metastable="1" name="95242.72c" path="300K/Am_242_300K.ace" temperature="2.585e-08" zaid="95242"/>
<ace_table alias="Am-249.72c" awr="239.9801" location="1" name="95249.72c" path="300K/Am_242m1_300K.ace" temperature="2.585e-08" zaid="95249"/>
<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="95249.72c" path="300K/Am_242m1_300K.ace" temperature="2.585e-08" zaid="95249"/>
<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-249.72c" awr="241.968" location="1" name="95249.72c" path="300K/Am_244m1_300K.ace" temperature="2.585e-08" zaid="95249"/>
<ace_table alias="Am-244m.72c" awr="241.968" location="1" metastable="1" name="95249.72c" path="300K/Am_244m1_300K.ace" temperature="2.585e-08" zaid="95249"/>
<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"/>
@ -844,855 +844,9 @@
<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-259.72c" awr="251.905" location="1" name="99259.72c" path="300K/Es_254m1_300K.ace" temperature="2.585e-08" zaid="99259"/>
<ace_table alias="Es-254m.72c" awr="251.905" location="1" metastable="1" name="99259.72c" path="300K/Es_254m1_300K.ace" temperature="2.585e-08" zaid="99259"/>
<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 alias="H-1.73c" awr="0.999167" location="1" name="1001.73c" path="900K/H_001_900K.ace" temperature="7.756e-08" zaid="1001"/>
<ace_table alias="H-2.73c" awr="1.9968" location="1" name="1002.73c" path="900K/H_002_900K.ace" temperature="7.756e-08" zaid="1002"/>
<ace_table alias="H-3.73c" awr="2.989596" location="1" name="1003.73c" path="900K/H_003_900K.ace" temperature="7.756e-08" zaid="1003"/>
<ace_table alias="He-3.73c" awr="2.989032" location="1" name="2003.73c" path="900K/He_003_900K.ace" temperature="7.756e-08" zaid="2003"/>
<ace_table alias="He-4.73c" awr="3.968219" location="1" name="2004.73c" path="900K/He_004_900K.ace" temperature="7.756e-08" zaid="2004"/>
<ace_table alias="Li-6.73c" awr="5.9634" location="1" name="3006.73c" path="900K/Li_006_900K.ace" temperature="7.756e-08" zaid="3006"/>
<ace_table alias="Li-7.73c" awr="6.955732" location="1" name="3007.73c" path="900K/Li_007_900K.ace" temperature="7.756e-08" zaid="3007"/>
<ace_table alias="Be-7.73c" awr="6.9545" location="1" name="4007.73c" path="900K/Be_007_900K.ace" temperature="7.756e-08" zaid="4007"/>
<ace_table alias="Be-9.73c" awr="8.93478" location="1" name="4009.73c" path="900K/Be_009_900K.ace" temperature="7.756e-08" zaid="4009"/>
<ace_table alias="B-10.73c" awr="9.926921" location="1" name="5010.73c" path="900K/B_010_900K.ace" temperature="7.756e-08" zaid="5010"/>
<ace_table alias="B-11.73c" awr="10.9147" location="1" name="5011.73c" path="900K/B_011_900K.ace" temperature="7.756e-08" zaid="5011"/>
<ace_table alias="C-Nat.73c" awr="11.898" location="1" name="6000.73c" path="900K/C_000_900K.ace" temperature="7.756e-08" zaid="6000"/>
<ace_table alias="N-14.73c" awr="13.88278" location="1" name="7014.73c" path="900K/N_014_900K.ace" temperature="7.756e-08" zaid="7014"/>
<ace_table alias="N-15.73c" awr="14.871" location="1" name="7015.73c" path="900K/N_015_900K.ace" temperature="7.756e-08" zaid="7015"/>
<ace_table alias="O-16.73c" awr="15.85751" location="1" name="8016.73c" path="900K/O_016_900K.ace" temperature="7.756e-08" zaid="8016"/>
<ace_table alias="O-17.73c" awr="16.8531" location="1" name="8017.73c" path="900K/O_017_900K.ace" temperature="7.756e-08" zaid="8017"/>
<ace_table alias="F-19.73c" awr="18.835" location="1" name="9019.73c" path="900K/F_019_900K.ace" temperature="7.756e-08" zaid="9019"/>
<ace_table alias="Na-22.73c" awr="21.8055" location="1" name="11022.73c" path="900K/Na_022_900K.ace" temperature="7.756e-08" zaid="11022"/>
<ace_table alias="Na-23.73c" awr="22.792" location="1" name="11023.73c" path="900K/Na_023_900K.ace" temperature="7.756e-08" zaid="11023"/>
<ace_table alias="Mg-24.73c" awr="23.779" location="1" name="12024.73c" path="900K/Mg_024_900K.ace" temperature="7.756e-08" zaid="12024"/>
<ace_table alias="Mg-25.73c" awr="24.7712" location="1" name="12025.73c" path="900K/Mg_025_900K.ace" temperature="7.756e-08" zaid="12025"/>
<ace_table alias="Mg-26.73c" awr="25.7594" location="1" name="12026.73c" path="900K/Mg_026_900K.ace" temperature="7.756e-08" zaid="12026"/>
<ace_table alias="Al-27.73c" awr="26.74975" location="1" name="13027.73c" path="900K/Al_027_900K.ace" temperature="7.756e-08" zaid="13027"/>
<ace_table alias="Si-28.73c" awr="27.737" location="1" name="14028.73c" path="900K/Si_028_900K.ace" temperature="7.756e-08" zaid="14028"/>
<ace_table alias="Si-29.73c" awr="28.728" location="1" name="14029.73c" path="900K/Si_029_900K.ace" temperature="7.756e-08" zaid="14029"/>
<ace_table alias="Si-30.73c" awr="29.716" location="1" name="14030.73c" path="900K/Si_030_900K.ace" temperature="7.756e-08" zaid="14030"/>
<ace_table alias="P-31.73c" awr="30.708" location="1" name="15031.73c" path="900K/P_031_900K.ace" temperature="7.756e-08" zaid="15031"/>
<ace_table alias="S-32.73c" awr="31.6973" location="1" name="16032.73c" path="900K/S_032_900K.ace" temperature="7.756e-08" zaid="16032"/>
<ace_table alias="S-33.73c" awr="32.6878" location="1" name="16033.73c" path="900K/S_033_900K.ace" temperature="7.756e-08" zaid="16033"/>
<ace_table alias="S-34.73c" awr="33.6762" location="1" name="16034.73c" path="900K/S_034_900K.ace" temperature="7.756e-08" zaid="16034"/>
<ace_table alias="S-36.73c" awr="35.658" location="1" name="16036.73c" path="900K/S_036_900K.ace" temperature="7.756e-08" zaid="16036"/>
<ace_table alias="Cl-35.73c" awr="34.66845" location="1" name="17035.73c" path="900K/Cl_035_900K.ace" temperature="7.756e-08" zaid="17035"/>
<ace_table alias="Cl-37.73c" awr="36.6483" location="1" name="17037.73c" path="900K/Cl_037_900K.ace" temperature="7.756e-08" zaid="17037"/>
<ace_table alias="Ar-36.73c" awr="35.6585" location="1" name="18036.73c" path="900K/Ar_036_900K.ace" temperature="7.756e-08" zaid="18036"/>
<ace_table alias="Ar-38.73c" awr="37.6366" location="1" name="18038.73c" path="900K/Ar_038_900K.ace" temperature="7.756e-08" zaid="18038"/>
<ace_table alias="Ar-40.73c" awr="39.6191" location="1" name="18040.73c" path="900K/Ar_040_900K.ace" temperature="7.756e-08" zaid="18040"/>
<ace_table alias="K-39.73c" awr="38.6293" location="1" name="19039.73c" path="900K/K_039_900K.ace" temperature="7.756e-08" zaid="19039"/>
<ace_table alias="K-40.73c" awr="39.6207" location="1" name="19040.73c" path="900K/K_040_900K.ace" temperature="7.756e-08" zaid="19040"/>
<ace_table alias="K-41.73c" awr="40.6101" location="1" name="19041.73c" path="900K/K_041_900K.ace" temperature="7.756e-08" zaid="19041"/>
<ace_table alias="Ca-40.73c" awr="39.6193" location="1" name="20040.73c" path="900K/Ca_040_900K.ace" temperature="7.756e-08" zaid="20040"/>
<ace_table alias="Ca-42.73c" awr="41.59818" location="1" name="20042.73c" path="900K/Ca_042_900K.ace" temperature="7.756e-08" zaid="20042"/>
<ace_table alias="Ca-43.73c" awr="42.58973" location="1" name="20043.73c" path="900K/Ca_043_900K.ace" temperature="7.756e-08" zaid="20043"/>
<ace_table alias="Ca-44.73c" awr="43.57788" location="1" name="20044.73c" path="900K/Ca_044_900K.ace" temperature="7.756e-08" zaid="20044"/>
<ace_table alias="Ca-46.73c" awr="45.55893" location="1" name="20046.73c" path="900K/Ca_046_900K.ace" temperature="7.756e-08" zaid="20046"/>
<ace_table alias="Ca-48.73c" awr="47.5406" location="1" name="20048.73c" path="900K/Ca_048_900K.ace" temperature="7.756e-08" zaid="20048"/>
<ace_table alias="Sc-45.73c" awr="44.5679" location="1" name="21045.73c" path="900K/Sc_045_900K.ace" temperature="7.756e-08" zaid="21045"/>
<ace_table alias="Ti-46.73c" awr="45.5579" location="1" name="22046.73c" path="900K/Ti_046_900K.ace" temperature="7.756e-08" zaid="22046"/>
<ace_table alias="Ti-47.73c" awr="46.5484" location="1" name="22047.73c" path="900K/Ti_047_900K.ace" temperature="7.756e-08" zaid="22047"/>
<ace_table alias="Ti-48.73c" awr="47.5361" location="1" name="22048.73c" path="900K/Ti_048_900K.ace" temperature="7.756e-08" zaid="22048"/>
<ace_table alias="Ti-49.73c" awr="48.5274" location="1" name="22049.73c" path="900K/Ti_049_900K.ace" temperature="7.756e-08" zaid="22049"/>
<ace_table alias="Ti-50.73c" awr="49.5157" location="1" name="22050.73c" path="900K/Ti_050_900K.ace" temperature="7.756e-08" zaid="22050"/>
<ace_table alias="V-50.73c" awr="49.5181" location="1" name="23050.73c" path="900K/V_050_900K.ace" temperature="7.756e-08" zaid="23050"/>
<ace_table alias="V-51.73c" awr="50.5063" location="1" name="23051.73c" path="900K/V_051_900K.ace" temperature="7.756e-08" zaid="23051"/>
<ace_table alias="Cr-50.73c" awr="49.517" location="1" name="24050.73c" path="900K/Cr_050_900K.ace" temperature="7.756e-08" zaid="24050"/>
<ace_table alias="Cr-52.73c" awr="51.494" location="1" name="24052.73c" path="900K/Cr_052_900K.ace" temperature="7.756e-08" zaid="24052"/>
<ace_table alias="Cr-53.73c" awr="52.486" location="1" name="24053.73c" path="900K/Cr_053_900K.ace" temperature="7.756e-08" zaid="24053"/>
<ace_table alias="Cr-54.73c" awr="53.476" location="1" name="24054.73c" path="900K/Cr_054_900K.ace" temperature="7.756e-08" zaid="24054"/>
<ace_table alias="Mn-55.73c" awr="54.4661" location="1" name="25055.73c" path="900K/Mn_055_900K.ace" temperature="7.756e-08" zaid="25055"/>
<ace_table alias="Fe-54.73c" awr="53.476" location="1" name="26054.73c" path="900K/Fe_054_900K.ace" temperature="7.756e-08" zaid="26054"/>
<ace_table alias="Fe-56.73c" awr="55.454" location="1" name="26056.73c" path="900K/Fe_056_900K.ace" temperature="7.756e-08" zaid="26056"/>
<ace_table alias="Fe-57.73c" awr="56.446" location="1" name="26057.73c" path="900K/Fe_057_900K.ace" temperature="7.756e-08" zaid="26057"/>
<ace_table alias="Fe-58.73c" awr="57.436" location="1" name="26058.73c" path="900K/Fe_058_900K.ace" temperature="7.756e-08" zaid="26058"/>
<ace_table alias="Co-58.73c" awr="57.4381" location="1" name="27058.73c" path="900K/Co_058_900K.ace" temperature="7.756e-08" zaid="27058"/>
<ace_table alias="Co-59.73c" awr="57.4381" location="1" name="27059.73c" path="900K/Co_058m1_900K.ace" temperature="7.756e-08" zaid="27059"/>
<ace_table alias="Co-59.73c" awr="58.4269" location="1" name="27059.73c" path="900K/Co_059_900K.ace" temperature="7.756e-08" zaid="27059"/>
<ace_table alias="Ni-58.73c" awr="57.438" location="1" name="28058.73c" path="900K/Ni_058_900K.ace" temperature="7.756e-08" zaid="28058"/>
<ace_table alias="Ni-59.73c" awr="58.4281" location="1" name="28059.73c" path="900K/Ni_059_900K.ace" temperature="7.756e-08" zaid="28059"/>
<ace_table alias="Ni-60.73c" awr="59.416" location="1" name="28060.73c" path="900K/Ni_060_900K.ace" temperature="7.756e-08" zaid="28060"/>
<ace_table alias="Ni-61.73c" awr="60.408" location="1" name="28061.73c" path="900K/Ni_061_900K.ace" temperature="7.756e-08" zaid="28061"/>
<ace_table alias="Ni-62.73c" awr="61.396" location="1" name="28062.73c" path="900K/Ni_062_900K.ace" temperature="7.756e-08" zaid="28062"/>
<ace_table alias="Ni-64.73c" awr="63.379" location="1" name="28064.73c" path="900K/Ni_064_900K.ace" temperature="7.756e-08" zaid="28064"/>
<ace_table alias="Cu-63.73c" awr="62.389" location="1" name="29063.73c" path="900K/Cu_063_900K.ace" temperature="7.756e-08" zaid="29063"/>
<ace_table alias="Cu-65.73c" awr="64.37" location="1" name="29065.73c" path="900K/Cu_065_900K.ace" temperature="7.756e-08" zaid="29065"/>
<ace_table alias="Zn-64.73c" awr="63.38" location="1" name="30064.73c" path="900K/Zn_064_900K.ace" temperature="7.756e-08" zaid="30064"/>
<ace_table alias="Zn-65.73c" awr="64.3715" location="1" name="30065.73c" path="900K/Zn_065_900K.ace" temperature="7.756e-08" zaid="30065"/>
<ace_table alias="Zn-66.73c" awr="65.3597" location="1" name="30066.73c" path="900K/Zn_066_900K.ace" temperature="7.756e-08" zaid="30066"/>
<ace_table alias="Zn-67.73c" awr="66.3522" location="1" name="30067.73c" path="900K/Zn_067_900K.ace" temperature="7.756e-08" zaid="30067"/>
<ace_table alias="Zn-68.73c" awr="67.3413" location="1" name="30068.73c" path="900K/Zn_068_900K.ace" temperature="7.756e-08" zaid="30068"/>
<ace_table alias="Zn-70.73c" awr="69.3246" location="1" name="30070.73c" path="900K/Zn_070_900K.ace" temperature="7.756e-08" zaid="30070"/>
<ace_table alias="Ga-69.73c" awr="68.3336" location="1" name="31069.73c" path="900K/Ga_069_900K.ace" temperature="7.756e-08" zaid="31069"/>
<ace_table alias="Ga-71.73c" awr="70.315" location="1" name="31071.73c" path="900K/Ga_071_900K.ace" temperature="7.756e-08" zaid="31071"/>
<ace_table alias="Ge-70.73c" awr="69.3236" location="1" name="32070.73c" path="900K/Ge_070_900K.ace" temperature="7.756e-08" zaid="32070"/>
<ace_table alias="Ge-72.73c" awr="71.3042" location="1" name="32072.73c" path="900K/Ge_072_900K.ace" temperature="7.756e-08" zaid="32072"/>
<ace_table alias="Ge-73.73c" awr="72.297" location="1" name="32073.73c" path="900K/Ge_073_900K.ace" temperature="7.756e-08" zaid="32073"/>
<ace_table alias="Ge-74.73c" awr="73.2862" location="1" name="32074.73c" path="900K/Ge_074_900K.ace" temperature="7.756e-08" zaid="32074"/>
<ace_table alias="Ge-76.73c" awr="75.2692" location="1" name="32076.73c" path="900K/Ge_076_900K.ace" temperature="7.756e-08" zaid="32076"/>
<ace_table alias="As-74.73c" awr="73.2889" location="1" name="33074.73c" path="900K/As_074_900K.ace" temperature="7.756e-08" zaid="33074"/>
<ace_table alias="As-75.73c" awr="74.278" location="1" name="33075.73c" path="900K/As_075_900K.ace" temperature="7.756e-08" zaid="33075"/>
<ace_table alias="Se-74.73c" awr="73.2875" location="1" name="34074.73c" path="900K/Se_074_900K.ace" temperature="7.756e-08" zaid="34074"/>
<ace_table alias="Se-76.73c" awr="75.267" location="1" name="34076.73c" path="900K/Se_076_900K.ace" temperature="7.756e-08" zaid="34076"/>
<ace_table alias="Se-77.73c" awr="76.2591" location="1" name="34077.73c" path="900K/Se_077_900K.ace" temperature="7.756e-08" zaid="34077"/>
<ace_table alias="Se-78.73c" awr="77.2479" location="1" name="34078.73c" path="900K/Se_078_900K.ace" temperature="7.756e-08" zaid="34078"/>
<ace_table alias="Se-79.73c" awr="78.2405" location="1" name="34079.73c" path="900K/Se_079_900K.ace" temperature="7.756e-08" zaid="34079"/>
<ace_table alias="Se-80.73c" awr="79.23" location="1" name="34080.73c" path="900K/Se_080_900K.ace" temperature="7.756e-08" zaid="34080"/>
<ace_table alias="Se-82.73c" awr="81.213" location="1" name="34082.73c" path="900K/Se_082_900K.ace" temperature="7.756e-08" zaid="34082"/>
<ace_table alias="Br-79.73c" awr="78.2403" location="1" name="35079.73c" path="900K/Br_079_900K.ace" temperature="7.756e-08" zaid="35079"/>
<ace_table alias="Br-81.73c" awr="80.2212" location="1" name="35081.73c" path="900K/Br_081_900K.ace" temperature="7.756e-08" zaid="35081"/>
<ace_table alias="Kr-78.73c" awr="77.25099" location="1" name="36078.73c" path="900K/Kr_078_900K.ace" temperature="7.756e-08" zaid="36078"/>
<ace_table alias="Kr-80.73c" awr="79.2299" location="1" name="36080.73c" path="900K/Kr_080_900K.ace" temperature="7.756e-08" zaid="36080"/>
<ace_table alias="Kr-82.73c" awr="81.2098" location="1" name="36082.73c" path="900K/Kr_082_900K.ace" temperature="7.756e-08" zaid="36082"/>
<ace_table alias="Kr-83.73c" awr="82.202" location="1" name="36083.73c" path="900K/Kr_083_900K.ace" temperature="7.756e-08" zaid="36083"/>
<ace_table alias="Kr-84.73c" awr="83.1907" location="1" name="36084.73c" path="900K/Kr_084_900K.ace" temperature="7.756e-08" zaid="36084"/>
<ace_table alias="Kr-85.73c" awr="84.1831" location="1" name="36085.73c" path="900K/Kr_085_900K.ace" temperature="7.756e-08" zaid="36085"/>
<ace_table alias="Kr-86.73c" awr="85.1726" location="1" name="36086.73c" path="900K/Kr_086_900K.ace" temperature="7.756e-08" zaid="36086"/>
<ace_table alias="Rb-85.73c" awr="84.1824" location="1" name="37085.73c" path="900K/Rb_085_900K.ace" temperature="7.756e-08" zaid="37085"/>
<ace_table alias="Rb-86.73c" awr="85.1731" location="1" name="37086.73c" path="900K/Rb_086_900K.ace" temperature="7.756e-08" zaid="37086"/>
<ace_table alias="Rb-87.73c" awr="86.1626" location="1" name="37087.73c" path="900K/Rb_087_900K.ace" temperature="7.756e-08" zaid="37087"/>
<ace_table alias="Sr-84.73c" awr="83.1926" location="1" name="38084.73c" path="900K/Sr_084_900K.ace" temperature="7.756e-08" zaid="38084"/>
<ace_table alias="Sr-86.73c" awr="85.1713" location="1" name="38086.73c" path="900K/Sr_086_900K.ace" temperature="7.756e-08" zaid="38086"/>
<ace_table alias="Sr-87.73c" awr="86.1623" location="1" name="38087.73c" path="900K/Sr_087_900K.ace" temperature="7.756e-08" zaid="38087"/>
<ace_table alias="Sr-88.73c" awr="87.15" location="1" name="38088.73c" path="900K/Sr_088_900K.ace" temperature="7.756e-08" zaid="38088"/>
<ace_table alias="Sr-89.73c" awr="88.144" location="1" name="38089.73c" path="900K/Sr_089_900K.ace" temperature="7.756e-08" zaid="38089"/>
<ace_table alias="Sr-90.73c" awr="89.1353" location="1" name="38090.73c" path="900K/Sr_090_900K.ace" temperature="7.756e-08" zaid="38090"/>
<ace_table alias="Y-89.73c" awr="88.1421" location="1" name="39089.73c" path="900K/Y_089_900K.ace" temperature="7.756e-08" zaid="39089"/>
<ace_table alias="Y-90.73c" awr="89.1348" location="1" name="39090.73c" path="900K/Y_090_900K.ace" temperature="7.756e-08" zaid="39090"/>
<ace_table alias="Y-91.73c" awr="90.1264" location="1" name="39091.73c" path="900K/Y_091_900K.ace" temperature="7.756e-08" zaid="39091"/>
<ace_table alias="Zr-90.73c" awr="89.1324" location="1" name="40090.73c" path="900K/Zr_090_900K.ace" temperature="7.756e-08" zaid="40090"/>
<ace_table alias="Zr-91.73c" awr="90.1247" location="1" name="40091.73c" path="900K/Zr_091_900K.ace" temperature="7.756e-08" zaid="40091"/>
<ace_table alias="Zr-92.73c" awr="91.1155" location="1" name="40092.73c" path="900K/Zr_092_900K.ace" temperature="7.756e-08" zaid="40092"/>
<ace_table alias="Zr-93.73c" awr="92.1084" location="1" name="40093.73c" path="900K/Zr_093_900K.ace" temperature="7.756e-08" zaid="40093"/>
<ace_table alias="Zr-94.73c" awr="93.0996" location="1" name="40094.73c" path="900K/Zr_094_900K.ace" temperature="7.756e-08" zaid="40094"/>
<ace_table alias="Zr-95.73c" awr="94.0927" location="1" name="40095.73c" path="900K/Zr_095_900K.ace" temperature="7.756e-08" zaid="40095"/>
<ace_table alias="Zr-96.73c" awr="95.0844" location="1" name="40096.73c" path="900K/Zr_096_900K.ace" temperature="7.756e-08" zaid="40096"/>
<ace_table alias="Nb-93.73c" awr="92.1051" location="1" name="41093.73c" path="900K/Nb_093_900K.ace" temperature="7.756e-08" zaid="41093"/>
<ace_table alias="Nb-94.73c" awr="93.1006" location="1" name="41094.73c" path="900K/Nb_094_900K.ace" temperature="7.756e-08" zaid="41094"/>
<ace_table alias="Nb-95.73c" awr="94.0915" location="1" name="41095.73c" path="900K/Nb_095_900K.ace" temperature="7.756e-08" zaid="41095"/>
<ace_table alias="Mo-92.73c" awr="91.1173" location="1" name="42092.73c" path="900K/Mo_092_900K.ace" temperature="7.756e-08" zaid="42092"/>
<ace_table alias="Mo-94.73c" awr="93.0984" location="1" name="42094.73c" path="900K/Mo_094_900K.ace" temperature="7.756e-08" zaid="42094"/>
<ace_table alias="Mo-95.73c" awr="94.0906" location="1" name="42095.73c" path="900K/Mo_095_900K.ace" temperature="7.756e-08" zaid="42095"/>
<ace_table alias="Mo-96.73c" awr="95.0808" location="1" name="42096.73c" path="900K/Mo_096_900K.ace" temperature="7.756e-08" zaid="42096"/>
<ace_table alias="Mo-97.73c" awr="96.0735" location="1" name="42097.73c" path="900K/Mo_097_900K.ace" temperature="7.756e-08" zaid="42097"/>
<ace_table alias="Mo-98.73c" awr="97.0643" location="1" name="42098.73c" path="900K/Mo_098_900K.ace" temperature="7.756e-08" zaid="42098"/>
<ace_table alias="Mo-99.73c" awr="98.058" location="1" name="42099.73c" path="900K/Mo_099_900K.ace" temperature="7.756e-08" zaid="42099"/>
<ace_table alias="Mo-100.73c" awr="99.049" location="1" name="42100.73c" path="900K/Mo_100_900K.ace" temperature="7.756e-08" zaid="42100"/>
<ace_table alias="Tc-99.73c" awr="98.0566" location="1" name="43099.73c" path="900K/Tc_099_900K.ace" temperature="7.756e-08" zaid="43099"/>
<ace_table alias="Ru-96.73c" awr="95.0837" location="1" name="44096.73c" path="900K/Ru_096_900K.ace" temperature="7.756e-08" zaid="44096"/>
<ace_table alias="Ru-98.73c" awr="97.0642" location="1" name="44098.73c" path="900K/Ru_098_900K.ace" temperature="7.756e-08" zaid="44098"/>
<ace_table alias="Ru-99.73c" awr="98.0562" location="1" name="44099.73c" path="900K/Ru_099_900K.ace" temperature="7.756e-08" zaid="44099"/>
<ace_table alias="Ru-100.73c" awr="99.046" location="1" name="44100.73c" path="900K/Ru_100_900K.ace" temperature="7.756e-08" zaid="44100"/>
<ace_table alias="Ru-101.73c" awr="100.039" location="1" name="44101.73c" path="900K/Ru_101_900K.ace" temperature="7.756e-08" zaid="44101"/>
<ace_table alias="Ru-102.73c" awr="101.03" location="1" name="44102.73c" path="900K/Ru_102_900K.ace" temperature="7.756e-08" zaid="44102"/>
<ace_table alias="Ru-103.73c" awr="102.02" location="1" name="44103.73c" path="900K/Ru_103_900K.ace" temperature="7.756e-08" zaid="44103"/>
<ace_table alias="Ru-104.73c" awr="103.01" location="1" name="44104.73c" path="900K/Ru_104_900K.ace" temperature="7.756e-08" zaid="44104"/>
<ace_table alias="Ru-105.73c" awr="104.01" location="1" name="44105.73c" path="900K/Ru_105_900K.ace" temperature="7.756e-08" zaid="44105"/>
<ace_table alias="Ru-106.73c" awr="104.997" location="1" name="44106.73c" path="900K/Ru_106_900K.ace" temperature="7.756e-08" zaid="44106"/>
<ace_table alias="Rh-103.73c" awr="102.021" location="1" name="45103.73c" path="900K/Rh_103_900K.ace" temperature="7.756e-08" zaid="45103"/>
<ace_table alias="Rh-105.73c" awr="104.0" location="1" name="45105.73c" path="900K/Rh_105_900K.ace" temperature="7.756e-08" zaid="45105"/>
<ace_table alias="Pd-102.73c" awr="101.0302" location="1" name="46102.73c" path="900K/Pd_102_900K.ace" temperature="7.756e-08" zaid="46102"/>
<ace_table alias="Pd-104.73c" awr="103.0114" location="1" name="46104.73c" path="900K/Pd_104_900K.ace" temperature="7.756e-08" zaid="46104"/>
<ace_table alias="Pd-105.73c" awr="104.004" location="1" name="46105.73c" path="900K/Pd_105_900K.ace" temperature="7.756e-08" zaid="46105"/>
<ace_table alias="Pd-106.73c" awr="104.9937" location="1" name="46106.73c" path="900K/Pd_106_900K.ace" temperature="7.756e-08" zaid="46106"/>
<ace_table alias="Pd-107.73c" awr="105.987" location="1" name="46107.73c" path="900K/Pd_107_900K.ace" temperature="7.756e-08" zaid="46107"/>
<ace_table alias="Pd-108.73c" awr="106.9769" location="1" name="46108.73c" path="900K/Pd_108_900K.ace" temperature="7.756e-08" zaid="46108"/>
<ace_table alias="Pd-110.73c" awr="108.961" location="1" name="46110.73c" path="900K/Pd_110_900K.ace" temperature="7.756e-08" zaid="46110"/>
<ace_table alias="Ag-107.73c" awr="105.987" location="1" name="47107.73c" path="900K/Ag_107_900K.ace" temperature="7.756e-08" zaid="47107"/>
<ace_table alias="Ag-109.73c" awr="107.969" location="1" name="47109.73c" path="900K/Ag_109_900K.ace" temperature="7.756e-08" zaid="47109"/>
<ace_table alias="Ag-119.73c" awr="108.962" location="1" name="47119.73c" path="900K/Ag_110m1_900K.ace" temperature="7.756e-08" zaid="47119"/>
<ace_table alias="Ag-111.73c" awr="109.953" location="1" name="47111.73c" path="900K/Ag_111_900K.ace" temperature="7.756e-08" zaid="47111"/>
<ace_table alias="Cd-106.73c" awr="104.996" location="1" name="48106.73c" path="900K/Cd_106_900K.ace" temperature="7.756e-08" zaid="48106"/>
<ace_table alias="Cd-108.73c" awr="106.977" location="1" name="48108.73c" path="900K/Cd_108_900K.ace" temperature="7.756e-08" zaid="48108"/>
<ace_table alias="Cd-110.73c" awr="108.959" location="1" name="48110.73c" path="900K/Cd_110_900K.ace" temperature="7.756e-08" zaid="48110"/>
<ace_table alias="Cd-111.73c" awr="109.951" location="1" name="48111.73c" path="900K/Cd_111_900K.ace" temperature="7.756e-08" zaid="48111"/>
<ace_table alias="Cd-112.73c" awr="110.942" location="1" name="48112.73c" path="900K/Cd_112_900K.ace" temperature="7.756e-08" zaid="48112"/>
<ace_table alias="Cd-113.73c" awr="111.93" location="1" name="48113.73c" path="900K/Cd_113_900K.ace" temperature="7.756e-08" zaid="48113"/>
<ace_table alias="Cd-114.73c" awr="112.925" location="1" name="48114.73c" path="900K/Cd_114_900K.ace" temperature="7.756e-08" zaid="48114"/>
<ace_table alias="Cd-119.73c" awr="113.918" location="1" name="48119.73c" path="900K/Cd_115m1_900K.ace" temperature="7.756e-08" zaid="48119"/>
<ace_table alias="Cd-116.73c" awr="114.909" location="1" name="48116.73c" path="900K/Cd_116_900K.ace" temperature="7.756e-08" zaid="48116"/>
<ace_table alias="In-113.73c" awr="111.934" location="1" name="49113.73c" path="900K/In_113_900K.ace" temperature="7.756e-08" zaid="49113"/>
<ace_table alias="In-115.73c" awr="113.917" location="1" name="49115.73c" path="900K/In_115_900K.ace" temperature="7.756e-08" zaid="49115"/>
<ace_table alias="Sn-112.73c" awr="110.944" location="1" name="50112.73c" path="900K/Sn_112_900K.ace" temperature="7.756e-08" zaid="50112"/>
<ace_table alias="Sn-113.73c" awr="111.935" location="1" name="50113.73c" path="900K/Sn_113_900K.ace" temperature="7.756e-08" zaid="50113"/>
<ace_table alias="Sn-114.73c" awr="112.925" location="1" name="50114.73c" path="900K/Sn_114_900K.ace" temperature="7.756e-08" zaid="50114"/>
<ace_table alias="Sn-115.73c" awr="113.916" location="1" name="50115.73c" path="900K/Sn_115_900K.ace" temperature="7.756e-08" zaid="50115"/>
<ace_table alias="Sn-116.73c" awr="114.906" location="1" name="50116.73c" path="900K/Sn_116_900K.ace" temperature="7.756e-08" zaid="50116"/>
<ace_table alias="Sn-117.73c" awr="115.899" location="1" name="50117.73c" path="900K/Sn_117_900K.ace" temperature="7.756e-08" zaid="50117"/>
<ace_table alias="Sn-118.73c" awr="116.889" location="1" name="50118.73c" path="900K/Sn_118_900K.ace" temperature="7.756e-08" zaid="50118"/>
<ace_table alias="Sn-119.73c" awr="117.882" location="1" name="50119.73c" path="900K/Sn_119_900K.ace" temperature="7.756e-08" zaid="50119"/>
<ace_table alias="Sn-120.73c" awr="118.872" location="1" name="50120.73c" path="900K/Sn_120_900K.ace" temperature="7.756e-08" zaid="50120"/>
<ace_table alias="Sn-122.73c" awr="120.856" location="1" name="50122.73c" path="900K/Sn_122_900K.ace" temperature="7.756e-08" zaid="50122"/>
<ace_table alias="Sn-123.73c" awr="121.85" location="1" name="50123.73c" path="900K/Sn_123_900K.ace" temperature="7.756e-08" zaid="50123"/>
<ace_table alias="Sn-124.73c" awr="122.841" location="1" name="50124.73c" path="900K/Sn_124_900K.ace" temperature="7.756e-08" zaid="50124"/>
<ace_table alias="Sn-125.73c" awr="123.835" location="1" name="50125.73c" path="900K/Sn_125_900K.ace" temperature="7.756e-08" zaid="50125"/>
<ace_table alias="Sn-126.73c" awr="124.826" location="1" name="50126.73c" path="900K/Sn_126_900K.ace" temperature="7.756e-08" zaid="50126"/>
<ace_table alias="Sb-121.73c" awr="119.87" location="1" name="51121.73c" path="900K/Sb_121_900K.ace" temperature="7.756e-08" zaid="51121"/>
<ace_table alias="Sb-123.73c" awr="121.85" location="1" name="51123.73c" path="900K/Sb_123_900K.ace" temperature="7.756e-08" zaid="51123"/>
<ace_table alias="Sb-124.73c" awr="122.842" location="1" name="51124.73c" path="900K/Sb_124_900K.ace" temperature="7.756e-08" zaid="51124"/>
<ace_table alias="Sb-125.73c" awr="123.832" location="1" name="51125.73c" path="900K/Sb_125_900K.ace" temperature="7.756e-08" zaid="51125"/>
<ace_table alias="Sb-126.73c" awr="124.826" location="1" name="51126.73c" path="900K/Sb_126_900K.ace" temperature="7.756e-08" zaid="51126"/>
<ace_table alias="Te-120.73c" awr="118.874" location="1" name="52120.73c" path="900K/Te_120_900K.ace" temperature="7.756e-08" zaid="52120"/>
<ace_table alias="Te-122.73c" awr="120.856" location="1" name="52122.73c" path="900K/Te_122_900K.ace" temperature="7.756e-08" zaid="52122"/>
<ace_table alias="Te-123.73c" awr="121.848" location="1" name="52123.73c" path="900K/Te_123_900K.ace" temperature="7.756e-08" zaid="52123"/>
<ace_table alias="Te-124.73c" awr="122.839" location="1" name="52124.73c" path="900K/Te_124_900K.ace" temperature="7.756e-08" zaid="52124"/>
<ace_table alias="Te-125.73c" awr="123.831" location="1" name="52125.73c" path="900K/Te_125_900K.ace" temperature="7.756e-08" zaid="52125"/>
<ace_table alias="Te-126.73c" awr="124.821" location="1" name="52126.73c" path="900K/Te_126_900K.ace" temperature="7.756e-08" zaid="52126"/>
<ace_table alias="Te-129.73c" awr="125.815" location="1" name="52129.73c" path="900K/Te_127m1_900K.ace" temperature="7.756e-08" zaid="52129"/>
<ace_table alias="Te-128.73c" awr="126.805" location="1" name="52128.73c" path="900K/Te_128_900K.ace" temperature="7.756e-08" zaid="52128"/>
<ace_table alias="Te-129.73c" awr="127.8" location="1" name="52129.73c" path="900K/Te_129m1_900K.ace" temperature="7.756e-08" zaid="52129"/>
<ace_table alias="Te-130.73c" awr="128.79" location="1" name="52130.73c" path="900K/Te_130_900K.ace" temperature="7.756e-08" zaid="52130"/>
<ace_table alias="Te-132.73c" awr="130.775" location="1" name="52132.73c" path="900K/Te_132_900K.ace" temperature="7.756e-08" zaid="52132"/>
<ace_table alias="I-127.73c" awr="125.8143" location="1" name="53127.73c" path="900K/I_127_900K.ace" temperature="7.756e-08" zaid="53127"/>
<ace_table alias="I-129.73c" awr="127.798" location="1" name="53129.73c" path="900K/I_129_900K.ace" temperature="7.756e-08" zaid="53129"/>
<ace_table alias="I-130.73c" awr="128.791" location="1" name="53130.73c" path="900K/I_130_900K.ace" temperature="7.756e-08" zaid="53130"/>
<ace_table alias="I-131.73c" awr="129.781" location="1" name="53131.73c" path="900K/I_131_900K.ace" temperature="7.756e-08" zaid="53131"/>
<ace_table alias="I-135.73c" awr="133.75" location="1" name="53135.73c" path="900K/I_135_900K.ace" temperature="7.756e-08" zaid="53135"/>
<ace_table alias="Xe-123.73c" awr="121.8526" location="1" name="54123.73c" path="900K/Xe_123_900K.ace" temperature="7.756e-08" zaid="54123"/>
<ace_table alias="Xe-124.73c" awr="122.8415" location="1" name="54124.73c" path="900K/Xe_124_900K.ace" temperature="7.756e-08" zaid="54124"/>
<ace_table alias="Xe-126.73c" awr="124.822" location="1" name="54126.73c" path="900K/Xe_126_900K.ace" temperature="7.756e-08" zaid="54126"/>
<ace_table alias="Xe-128.73c" awr="126.804" location="1" name="54128.73c" path="900K/Xe_128_900K.ace" temperature="7.756e-08" zaid="54128"/>
<ace_table alias="Xe-129.73c" awr="127.798" location="1" name="54129.73c" path="900K/Xe_129_900K.ace" temperature="7.756e-08" zaid="54129"/>
<ace_table alias="Xe-130.73c" awr="128.788" location="1" name="54130.73c" path="900K/Xe_130_900K.ace" temperature="7.756e-08" zaid="54130"/>
<ace_table alias="Xe-131.73c" awr="129.781" location="1" name="54131.73c" path="900K/Xe_131_900K.ace" temperature="7.756e-08" zaid="54131"/>
<ace_table alias="Xe-132.73c" awr="130.77" location="1" name="54132.73c" path="900K/Xe_132_900K.ace" temperature="7.756e-08" zaid="54132"/>
<ace_table alias="Xe-133.73c" awr="131.764" location="1" name="54133.73c" path="900K/Xe_133_900K.ace" temperature="7.756e-08" zaid="54133"/>
<ace_table alias="Xe-134.73c" awr="132.76" location="1" name="54134.73c" path="900K/Xe_134_900K.ace" temperature="7.756e-08" zaid="54134"/>
<ace_table alias="Xe-135.73c" awr="133.748" location="1" name="54135.73c" path="900K/Xe_135_900K.ace" temperature="7.756e-08" zaid="54135"/>
<ace_table alias="Xe-136.73c" awr="134.74" location="1" name="54136.73c" path="900K/Xe_136_900K.ace" temperature="7.756e-08" zaid="54136"/>
<ace_table alias="Cs-133.73c" awr="131.764" location="1" name="55133.73c" path="900K/Cs_133_900K.ace" temperature="7.756e-08" zaid="55133"/>
<ace_table alias="Cs-134.73c" awr="132.757" location="1" name="55134.73c" path="900K/Cs_134_900K.ace" temperature="7.756e-08" zaid="55134"/>
<ace_table alias="Cs-135.73c" awr="133.747" location="1" name="55135.73c" path="900K/Cs_135_900K.ace" temperature="7.756e-08" zaid="55135"/>
<ace_table alias="Cs-136.73c" awr="134.739" location="1" name="55136.73c" path="900K/Cs_136_900K.ace" temperature="7.756e-08" zaid="55136"/>
<ace_table alias="Cs-137.73c" awr="135.731" location="1" name="55137.73c" path="900K/Cs_137_900K.ace" temperature="7.756e-08" zaid="55137"/>
<ace_table alias="Ba-130.73c" awr="128.79" location="1" name="56130.73c" path="900K/Ba_130_900K.ace" temperature="7.756e-08" zaid="56130"/>
<ace_table alias="Ba-132.73c" awr="130.772" location="1" name="56132.73c" path="900K/Ba_132_900K.ace" temperature="7.756e-08" zaid="56132"/>
<ace_table alias="Ba-133.73c" awr="131.764" location="1" name="56133.73c" path="900K/Ba_133_900K.ace" temperature="7.756e-08" zaid="56133"/>
<ace_table alias="Ba-134.73c" awr="132.754" location="1" name="56134.73c" path="900K/Ba_134_900K.ace" temperature="7.756e-08" zaid="56134"/>
<ace_table alias="Ba-135.73c" awr="133.747" location="1" name="56135.73c" path="900K/Ba_135_900K.ace" temperature="7.756e-08" zaid="56135"/>
<ace_table alias="Ba-136.73c" awr="134.737" location="1" name="56136.73c" path="900K/Ba_136_900K.ace" temperature="7.756e-08" zaid="56136"/>
<ace_table alias="Ba-137.73c" awr="135.73" location="1" name="56137.73c" path="900K/Ba_137_900K.ace" temperature="7.756e-08" zaid="56137"/>
<ace_table alias="Ba-138.73c" awr="136.72" location="1" name="56138.73c" path="900K/Ba_138_900K.ace" temperature="7.756e-08" zaid="56138"/>
<ace_table alias="Ba-140.73c" awr="138.708" location="1" name="56140.73c" path="900K/Ba_140_900K.ace" temperature="7.756e-08" zaid="56140"/>
<ace_table alias="La-138.73c" awr="136.722" location="1" name="57138.73c" path="900K/La_138_900K.ace" temperature="7.756e-08" zaid="57138"/>
<ace_table alias="La-139.73c" awr="137.71" location="1" name="57139.73c" path="900K/La_139_900K.ace" temperature="7.756e-08" zaid="57139"/>
<ace_table alias="La-140.73c" awr="138.708" location="1" name="57140.73c" path="900K/La_140_900K.ace" temperature="7.756e-08" zaid="57140"/>
<ace_table alias="Ce-136.73c" awr="134.74" location="1" name="58136.73c" path="900K/Ce_136_900K.ace" temperature="7.756e-08" zaid="58136"/>
<ace_table alias="Ce-138.73c" awr="136.721" location="1" name="58138.73c" path="900K/Ce_138_900K.ace" temperature="7.756e-08" zaid="58138"/>
<ace_table alias="Ce-139.73c" awr="137.713" location="1" name="58139.73c" path="900K/Ce_139_900K.ace" temperature="7.756e-08" zaid="58139"/>
<ace_table alias="Ce-140.73c" awr="138.704" location="1" name="58140.73c" path="900K/Ce_140_900K.ace" temperature="7.756e-08" zaid="58140"/>
<ace_table alias="Ce-141.73c" awr="139.7" location="1" name="58141.73c" path="900K/Ce_141_900K.ace" temperature="7.756e-08" zaid="58141"/>
<ace_table alias="Ce-142.73c" awr="140.69" location="1" name="58142.73c" path="900K/Ce_142_900K.ace" temperature="7.756e-08" zaid="58142"/>
<ace_table alias="Ce-143.73c" awr="141.685" location="1" name="58143.73c" path="900K/Ce_143_900K.ace" temperature="7.756e-08" zaid="58143"/>
<ace_table alias="Ce-144.73c" awr="142.678" location="1" name="58144.73c" path="900K/Ce_144_900K.ace" temperature="7.756e-08" zaid="58144"/>
<ace_table alias="Pr-141.73c" awr="139.697" location="1" name="59141.73c" path="900K/Pr_141_900K.ace" temperature="7.756e-08" zaid="59141"/>
<ace_table alias="Pr-142.73c" awr="140.691" location="1" name="59142.73c" path="900K/Pr_142_900K.ace" temperature="7.756e-08" zaid="59142"/>
<ace_table alias="Pr-143.73c" awr="141.683" location="1" name="59143.73c" path="900K/Pr_143_900K.ace" temperature="7.756e-08" zaid="59143"/>
<ace_table alias="Nd-142.73c" awr="140.689" location="1" name="60142.73c" path="900K/Nd_142_900K.ace" temperature="7.756e-08" zaid="60142"/>
<ace_table alias="Nd-143.73c" awr="141.682" location="1" name="60143.73c" path="900K/Nd_143_900K.ace" temperature="7.756e-08" zaid="60143"/>
<ace_table alias="Nd-144.73c" awr="142.674" location="1" name="60144.73c" path="900K/Nd_144_900K.ace" temperature="7.756e-08" zaid="60144"/>
<ace_table alias="Nd-145.73c" awr="143.668" location="1" name="60145.73c" path="900K/Nd_145_900K.ace" temperature="7.756e-08" zaid="60145"/>
<ace_table alias="Nd-146.73c" awr="144.66" location="1" name="60146.73c" path="900K/Nd_146_900K.ace" temperature="7.756e-08" zaid="60146"/>
<ace_table alias="Nd-147.73c" awr="145.654" location="1" name="60147.73c" path="900K/Nd_147_900K.ace" temperature="7.756e-08" zaid="60147"/>
<ace_table alias="Nd-148.73c" awr="146.646" location="1" name="60148.73c" path="900K/Nd_148_900K.ace" temperature="7.756e-08" zaid="60148"/>
<ace_table alias="Nd-150.73c" awr="148.633" location="1" name="60150.73c" path="900K/Nd_150_900K.ace" temperature="7.756e-08" zaid="60150"/>
<ace_table alias="Pm-147.73c" awr="145.653" location="1" name="61147.73c" path="900K/Pm_147_900K.ace" temperature="7.756e-08" zaid="61147"/>
<ace_table alias="Pm-148.73c" awr="146.646" location="1" name="61148.73c" path="900K/Pm_148_900K.ace" temperature="7.756e-08" zaid="61148"/>
<ace_table alias="Pm-149.73c" awr="146.65" location="1" name="61149.73c" path="900K/Pm_148m1_900K.ace" temperature="7.756e-08" zaid="61149"/>
<ace_table alias="Pm-149.73c" awr="147.639" location="1" name="61149.73c" path="900K/Pm_149_900K.ace" temperature="7.756e-08" zaid="61149"/>
<ace_table alias="Pm-151.73c" awr="149.625" location="1" name="61151.73c" path="900K/Pm_151_900K.ace" temperature="7.756e-08" zaid="61151"/>
<ace_table alias="Sm-144.73c" awr="142.676" location="1" name="62144.73c" path="900K/Sm_144_900K.ace" temperature="7.756e-08" zaid="62144"/>
<ace_table alias="Sm-147.73c" awr="145.653" location="1" name="62147.73c" path="900K/Sm_147_900K.ace" temperature="7.756e-08" zaid="62147"/>
<ace_table alias="Sm-148.73c" awr="146.644" location="1" name="62148.73c" path="900K/Sm_148_900K.ace" temperature="7.756e-08" zaid="62148"/>
<ace_table alias="Sm-149.73c" awr="147.638" location="1" name="62149.73c" path="900K/Sm_149_900K.ace" temperature="7.756e-08" zaid="62149"/>
<ace_table alias="Sm-150.73c" awr="148.629" location="1" name="62150.73c" path="900K/Sm_150_900K.ace" temperature="7.756e-08" zaid="62150"/>
<ace_table alias="Sm-151.73c" awr="149.623" location="1" name="62151.73c" path="900K/Sm_151_900K.ace" temperature="7.756e-08" zaid="62151"/>
<ace_table alias="Sm-152.73c" awr="150.615" location="1" name="62152.73c" path="900K/Sm_152_900K.ace" temperature="7.756e-08" zaid="62152"/>
<ace_table alias="Sm-153.73c" awr="151.608" location="1" name="62153.73c" path="900K/Sm_153_900K.ace" temperature="7.756e-08" zaid="62153"/>
<ace_table alias="Sm-154.73c" awr="152.6" location="1" name="62154.73c" path="900K/Sm_154_900K.ace" temperature="7.756e-08" zaid="62154"/>
<ace_table alias="Eu-151.73c" awr="149.62" location="1" name="63151.73c" path="900K/Eu_151_900K.ace" temperature="7.756e-08" zaid="63151"/>
<ace_table alias="Eu-152.73c" awr="150.617" location="1" name="63152.73c" path="900K/Eu_152_900K.ace" temperature="7.756e-08" zaid="63152"/>
<ace_table alias="Eu-153.73c" awr="151.608" location="1" name="63153.73c" path="900K/Eu_153_900K.ace" temperature="7.756e-08" zaid="63153"/>
<ace_table alias="Eu-154.73c" awr="152.6" location="1" name="63154.73c" path="900K/Eu_154_900K.ace" temperature="7.756e-08" zaid="63154"/>
<ace_table alias="Eu-155.73c" awr="153.59" location="1" name="63155.73c" path="900K/Eu_155_900K.ace" temperature="7.756e-08" zaid="63155"/>
<ace_table alias="Eu-156.73c" awr="154.586" location="1" name="63156.73c" path="900K/Eu_156_900K.ace" temperature="7.756e-08" zaid="63156"/>
<ace_table alias="Eu-157.73c" awr="155.577" location="1" name="63157.73c" path="900K/Eu_157_900K.ace" temperature="7.756e-08" zaid="63157"/>
<ace_table alias="Gd-152.73c" awr="150.615" location="1" name="64152.73c" path="900K/Gd_152_900K.ace" temperature="7.756e-08" zaid="64152"/>
<ace_table alias="Gd-153.73c" awr="151.608" location="1" name="64153.73c" path="900K/Gd_153_900K.ace" temperature="7.756e-08" zaid="64153"/>
<ace_table alias="Gd-154.73c" awr="152.599" location="1" name="64154.73c" path="900K/Gd_154_900K.ace" temperature="7.756e-08" zaid="64154"/>
<ace_table alias="Gd-155.73c" awr="153.592" location="1" name="64155.73c" path="900K/Gd_155_900K.ace" temperature="7.756e-08" zaid="64155"/>
<ace_table alias="Gd-156.73c" awr="154.583" location="1" name="64156.73c" path="900K/Gd_156_900K.ace" temperature="7.756e-08" zaid="64156"/>
<ace_table alias="Gd-157.73c" awr="155.576" location="1" name="64157.73c" path="900K/Gd_157_900K.ace" temperature="7.756e-08" zaid="64157"/>
<ace_table alias="Gd-158.73c" awr="156.567" location="1" name="64158.73c" path="900K/Gd_158_900K.ace" temperature="7.756e-08" zaid="64158"/>
<ace_table alias="Gd-160.73c" awr="158.553" location="1" name="64160.73c" path="900K/Gd_160_900K.ace" temperature="7.756e-08" zaid="64160"/>
<ace_table alias="Tb-159.73c" awr="157.56" location="1" name="65159.73c" path="900K/Tb_159_900K.ace" temperature="7.756e-08" zaid="65159"/>
<ace_table alias="Tb-160.73c" awr="158.553" location="1" name="65160.73c" path="900K/Tb_160_900K.ace" temperature="7.756e-08" zaid="65160"/>
<ace_table alias="Dy-156.73c" awr="154.585" location="1" name="66156.73c" path="900K/Dy_156_900K.ace" temperature="7.756e-08" zaid="66156"/>
<ace_table alias="Dy-158.73c" awr="156.568" location="1" name="66158.73c" path="900K/Dy_158_900K.ace" temperature="7.756e-08" zaid="66158"/>
<ace_table alias="Dy-160.73c" awr="158.551" location="1" name="66160.73c" path="900K/Dy_160_900K.ace" temperature="7.756e-08" zaid="66160"/>
<ace_table alias="Dy-161.73c" awr="159.544" location="1" name="66161.73c" path="900K/Dy_161_900K.ace" temperature="7.756e-08" zaid="66161"/>
<ace_table alias="Dy-162.73c" awr="160.536" location="1" name="66162.73c" path="900K/Dy_162_900K.ace" temperature="7.756e-08" zaid="66162"/>
<ace_table alias="Dy-163.73c" awr="161.529" location="1" name="66163.73c" path="900K/Dy_163_900K.ace" temperature="7.756e-08" zaid="66163"/>
<ace_table alias="Dy-164.73c" awr="162.521" location="1" name="66164.73c" path="900K/Dy_164_900K.ace" temperature="7.756e-08" zaid="66164"/>
<ace_table alias="Ho-165.73c" awr="163.513" location="1" name="67165.73c" path="900K/Ho_165_900K.ace" temperature="7.756e-08" zaid="67165"/>
<ace_table alias="Ho-169.73c" awr="164.507" location="1" name="67169.73c" path="900K/Ho_166m1_900K.ace" temperature="7.756e-08" zaid="67169"/>
<ace_table alias="Er-162.73c" awr="160.538" location="1" name="68162.73c" path="900K/Er_162_900K.ace" temperature="7.756e-08" zaid="68162"/>
<ace_table alias="Er-164.73c" awr="162.521" location="1" name="68164.73c" path="900K/Er_164_900K.ace" temperature="7.756e-08" zaid="68164"/>
<ace_table alias="Er-166.73c" awr="164.505" location="1" name="68166.73c" path="900K/Er_166_900K.ace" temperature="7.756e-08" zaid="68166"/>
<ace_table alias="Er-167.73c" awr="165.498" location="1" name="68167.73c" path="900K/Er_167_900K.ace" temperature="7.756e-08" zaid="68167"/>
<ace_table alias="Er-168.73c" awr="166.487" location="1" name="68168.73c" path="900K/Er_168_900K.ace" temperature="7.756e-08" zaid="68168"/>
<ace_table alias="Er-170.73c" awr="168.476" location="1" name="68170.73c" path="900K/Er_170_900K.ace" temperature="7.756e-08" zaid="68170"/>
<ace_table alias="Tm-168.73c" awr="166.492" location="1" name="69168.73c" path="900K/Tm_168_900K.ace" temperature="7.756e-08" zaid="69168"/>
<ace_table alias="Tm-169.73c" awr="167.483" location="1" name="69169.73c" path="900K/Tm_169_900K.ace" temperature="7.756e-08" zaid="69169"/>
<ace_table alias="Tm-170.73c" awr="168.476" location="1" name="69170.73c" path="900K/Tm_170_900K.ace" temperature="7.756e-08" zaid="69170"/>
<ace_table alias="Lu-175.73c" awr="173.438" location="1" name="71175.73c" path="900K/Lu_175_900K.ace" temperature="7.756e-08" zaid="71175"/>
<ace_table alias="Lu-176.73c" awr="174.43" location="1" name="71176.73c" path="900K/Lu_176_900K.ace" temperature="7.756e-08" zaid="71176"/>
<ace_table alias="Hf-174.73c" awr="172.446" location="1" name="72174.73c" path="900K/Hf_174_900K.ace" temperature="7.756e-08" zaid="72174"/>
<ace_table alias="Hf-176.73c" awr="174.429" location="1" name="72176.73c" path="900K/Hf_176_900K.ace" temperature="7.756e-08" zaid="72176"/>
<ace_table alias="Hf-177.73c" awr="175.42" location="1" name="72177.73c" path="900K/Hf_177_900K.ace" temperature="7.756e-08" zaid="72177"/>
<ace_table alias="Hf-178.73c" awr="176.411" location="1" name="72178.73c" path="900K/Hf_178_900K.ace" temperature="7.756e-08" zaid="72178"/>
<ace_table alias="Hf-179.73c" awr="177.413" location="1" name="72179.73c" path="900K/Hf_179_900K.ace" temperature="7.756e-08" zaid="72179"/>
<ace_table alias="Hf-180.73c" awr="178.404" location="1" name="72180.73c" path="900K/Hf_180_900K.ace" temperature="7.756e-08" zaid="72180"/>
<ace_table alias="Ta-180.73c" awr="178.4016" location="1" name="73180.73c" path="900K/Ta_180_900K.ace" temperature="7.756e-08" zaid="73180"/>
<ace_table alias="Ta-181.73c" awr="179.3936" location="1" name="73181.73c" path="900K/Ta_181_900K.ace" temperature="7.756e-08" zaid="73181"/>
<ace_table alias="Ta-182.73c" awr="180.387" location="1" name="73182.73c" path="900K/Ta_182_900K.ace" temperature="7.756e-08" zaid="73182"/>
<ace_table alias="W-180.73c" awr="178.401" location="1" name="74180.73c" path="900K/W_180_900K.ace" temperature="7.756e-08" zaid="74180"/>
<ace_table alias="W-182.73c" awr="180.385" location="1" name="74182.73c" path="900K/W_182_900K.ace" temperature="7.756e-08" zaid="74182"/>
<ace_table alias="W-183.73c" awr="181.379" location="1" name="74183.73c" path="900K/W_183_900K.ace" temperature="7.756e-08" zaid="74183"/>
<ace_table alias="W-184.73c" awr="182.371" location="1" name="74184.73c" path="900K/W_184_900K.ace" temperature="7.756e-08" zaid="74184"/>
<ace_table alias="W-186.73c" awr="184.357" location="1" name="74186.73c" path="900K/W_186_900K.ace" temperature="7.756e-08" zaid="74186"/>
<ace_table alias="Re-185.73c" awr="183.3641" location="1" name="75185.73c" path="900K/Re_185_900K.ace" temperature="7.756e-08" zaid="75185"/>
<ace_table alias="Re-187.73c" awr="185.3497" location="1" name="75187.73c" path="900K/Re_187_900K.ace" temperature="7.756e-08" zaid="75187"/>
<ace_table alias="Ir-191.73c" awr="189.32" location="1" name="77191.73c" path="900K/Ir_191_900K.ace" temperature="7.756e-08" zaid="77191"/>
<ace_table alias="Ir-193.73c" awr="191.305" location="1" name="77193.73c" path="900K/Ir_193_900K.ace" temperature="7.756e-08" zaid="77193"/>
<ace_table alias="Au-197.73c" awr="195.274" location="1" name="79197.73c" path="900K/Au_197_900K.ace" temperature="7.756e-08" zaid="79197"/>
<ace_table alias="Hg-196.73c" awr="194.282" location="1" name="80196.73c" path="900K/Hg_196_900K.ace" temperature="7.756e-08" zaid="80196"/>
<ace_table alias="Hg-198.73c" awr="196.266" location="1" name="80198.73c" path="900K/Hg_198_900K.ace" temperature="7.756e-08" zaid="80198"/>
<ace_table alias="Hg-199.73c" awr="197.259" location="1" name="80199.73c" path="900K/Hg_199_900K.ace" temperature="7.756e-08" zaid="80199"/>
<ace_table alias="Hg-200.73c" awr="198.25" location="1" name="80200.73c" path="900K/Hg_200_900K.ace" temperature="7.756e-08" zaid="80200"/>
<ace_table alias="Hg-201.73c" awr="199.244" location="1" name="80201.73c" path="900K/Hg_201_900K.ace" temperature="7.756e-08" zaid="80201"/>
<ace_table alias="Hg-202.73c" awr="200.236" location="1" name="80202.73c" path="900K/Hg_202_900K.ace" temperature="7.756e-08" zaid="80202"/>
<ace_table alias="Hg-204.73c" awr="202.221" location="1" name="80204.73c" path="900K/Hg_204_900K.ace" temperature="7.756e-08" zaid="80204"/>
<ace_table alias="Tl-203.73c" awr="201.229" location="1" name="81203.73c" path="900K/Tl_203_900K.ace" temperature="7.756e-08" zaid="81203"/>
<ace_table alias="Tl-205.73c" awr="203.214" location="1" name="81205.73c" path="900K/Tl_205_900K.ace" temperature="7.756e-08" zaid="81205"/>
<ace_table alias="Pb-204.73c" awr="202.2208" location="1" name="82204.73c" path="900K/Pb_204_900K.ace" temperature="7.756e-08" zaid="82204"/>
<ace_table alias="Pb-206.73c" awr="204.205" location="1" name="82206.73c" path="900K/Pb_206_900K.ace" temperature="7.756e-08" zaid="82206"/>
<ace_table alias="Pb-207.73c" awr="205.1979" location="1" name="82207.73c" path="900K/Pb_207_900K.ace" temperature="7.756e-08" zaid="82207"/>
<ace_table alias="Pb-208.73c" awr="206.19" location="1" name="82208.73c" path="900K/Pb_208_900K.ace" temperature="7.756e-08" zaid="82208"/>
<ace_table alias="Bi-209.73c" awr="207.185" location="1" name="83209.73c" path="900K/Bi_209_900K.ace" temperature="7.756e-08" zaid="83209"/>
<ace_table alias="Ra-223.73c" awr="221.103" location="1" name="88223.73c" path="900K/Ra_223_900K.ace" temperature="7.756e-08" zaid="88223"/>
<ace_table alias="Ra-224.73c" awr="222.096" location="1" name="88224.73c" path="900K/Ra_224_900K.ace" temperature="7.756e-08" zaid="88224"/>
<ace_table alias="Ra-225.73c" awr="223.091" location="1" name="88225.73c" path="900K/Ra_225_900K.ace" temperature="7.756e-08" zaid="88225"/>
<ace_table alias="Ra-226.73c" awr="224.084" location="1" name="88226.73c" path="900K/Ra_226_900K.ace" temperature="7.756e-08" zaid="88226"/>
<ace_table alias="Ac-225.73c" awr="223.09" location="1" name="89225.73c" path="900K/Ac_225_900K.ace" temperature="7.756e-08" zaid="89225"/>
<ace_table alias="Ac-226.73c" awr="224.084" location="1" name="89226.73c" path="900K/Ac_226_900K.ace" temperature="7.756e-08" zaid="89226"/>
<ace_table alias="Ac-227.73c" awr="225.077" location="1" name="89227.73c" path="900K/Ac_227_900K.ace" temperature="7.756e-08" zaid="89227"/>
<ace_table alias="Th-227.73c" awr="225.077" location="1" name="90227.73c" path="900K/Th_227_900K.ace" temperature="7.756e-08" zaid="90227"/>
<ace_table alias="Th-228.73c" awr="226.07" location="1" name="90228.73c" path="900K/Th_228_900K.ace" temperature="7.756e-08" zaid="90228"/>
<ace_table alias="Th-229.73c" awr="227.064" location="1" name="90229.73c" path="900K/Th_229_900K.ace" temperature="7.756e-08" zaid="90229"/>
<ace_table alias="Th-230.73c" awr="228.057" location="1" name="90230.73c" path="900K/Th_230_900K.ace" temperature="7.756e-08" zaid="90230"/>
<ace_table alias="Th-231.73c" awr="229.052" location="1" name="90231.73c" path="900K/Th_231_900K.ace" temperature="7.756e-08" zaid="90231"/>
<ace_table alias="Th-232.73c" awr="230.045" location="1" name="90232.73c" path="900K/Th_232_900K.ace" temperature="7.756e-08" zaid="90232"/>
<ace_table alias="Th-233.73c" awr="231.04" location="1" name="90233.73c" path="900K/Th_233_900K.ace" temperature="7.756e-08" zaid="90233"/>
<ace_table alias="Th-234.73c" awr="232.033" location="1" name="90234.73c" path="900K/Th_234_900K.ace" temperature="7.756e-08" zaid="90234"/>
<ace_table alias="Pa-229.73c" awr="227.065" location="1" name="91229.73c" path="900K/Pa_229_900K.ace" temperature="7.756e-08" zaid="91229"/>
<ace_table alias="Pa-230.73c" awr="228.058" location="1" name="91230.73c" path="900K/Pa_230_900K.ace" temperature="7.756e-08" zaid="91230"/>
<ace_table alias="Pa-231.73c" awr="229.051" location="1" name="91231.73c" path="900K/Pa_231_900K.ace" temperature="7.756e-08" zaid="91231"/>
<ace_table alias="Pa-232.73c" awr="230.045" location="1" name="91232.73c" path="900K/Pa_232_900K.ace" temperature="7.756e-08" zaid="91232"/>
<ace_table alias="Pa-233.73c" awr="231.038" location="1" name="91233.73c" path="900K/Pa_233_900K.ace" temperature="7.756e-08" zaid="91233"/>
<ace_table alias="U-230.73c" awr="228.058" location="1" name="92230.73c" path="900K/U_230_900K.ace" temperature="7.756e-08" zaid="92230"/>
<ace_table alias="U-231.73c" awr="229.052" location="1" name="92231.73c" path="900K/U_231_900K.ace" temperature="7.756e-08" zaid="92231"/>
<ace_table alias="U-232.73c" awr="230.044" location="1" name="92232.73c" path="900K/U_232_900K.ace" temperature="7.756e-08" zaid="92232"/>
<ace_table alias="U-233.73c" awr="231.0377" location="1" name="92233.73c" path="900K/U_233_900K.ace" temperature="7.756e-08" zaid="92233"/>
<ace_table alias="U-234.73c" awr="232.0304" location="1" name="92234.73c" path="900K/U_234_900K.ace" temperature="7.756e-08" zaid="92234"/>
<ace_table alias="U-235.73c" awr="233.0248" location="1" name="92235.73c" path="900K/U_235_900K.ace" temperature="7.756e-08" zaid="92235"/>
<ace_table alias="U-236.73c" awr="234.0178" location="1" name="92236.73c" path="900K/U_236_900K.ace" temperature="7.756e-08" zaid="92236"/>
<ace_table alias="U-237.73c" awr="235.0124" location="1" name="92237.73c" path="900K/U_237_900K.ace" temperature="7.756e-08" zaid="92237"/>
<ace_table alias="U-238.73c" awr="236.0058" location="1" name="92238.73c" path="900K/U_238_900K.ace" temperature="7.756e-08" zaid="92238"/>
<ace_table alias="U-239.73c" awr="237.0007" location="1" name="92239.73c" path="900K/U_239_900K.ace" temperature="7.756e-08" zaid="92239"/>
<ace_table alias="U-240.73c" awr="237.9944" location="1" name="92240.73c" path="900K/U_240_900K.ace" temperature="7.756e-08" zaid="92240"/>
<ace_table alias="U-241.73c" awr="238.9895" location="1" name="92241.73c" path="900K/U_241_900K.ace" temperature="7.756e-08" zaid="92241"/>
<ace_table alias="Np-234.73c" awr="232.032" location="1" name="93234.73c" path="900K/Np_234_900K.ace" temperature="7.756e-08" zaid="93234"/>
<ace_table alias="Np-235.73c" awr="233.025" location="1" name="93235.73c" path="900K/Np_235_900K.ace" temperature="7.756e-08" zaid="93235"/>
<ace_table alias="Np-236.73c" awr="234.019" location="1" name="93236.73c" path="900K/Np_236_900K.ace" temperature="7.756e-08" zaid="93236"/>
<ace_table alias="Np-237.73c" awr="235.0118" location="1" name="93237.73c" path="900K/Np_237_900K.ace" temperature="7.756e-08" zaid="93237"/>
<ace_table alias="Np-238.73c" awr="236.006" location="1" name="93238.73c" path="900K/Np_238_900K.ace" temperature="7.756e-08" zaid="93238"/>
<ace_table alias="Np-239.73c" awr="236.999" location="1" name="93239.73c" path="900K/Np_239_900K.ace" temperature="7.756e-08" zaid="93239"/>
<ace_table alias="Pu-236.73c" awr="234.018" location="1" name="94236.73c" path="900K/Pu_236_900K.ace" temperature="7.756e-08" zaid="94236"/>
<ace_table alias="Pu-237.73c" awr="235.012" location="1" name="94237.73c" path="900K/Pu_237_900K.ace" temperature="7.756e-08" zaid="94237"/>
<ace_table alias="Pu-238.73c" awr="236.0046" location="1" name="94238.73c" path="900K/Pu_238_900K.ace" temperature="7.756e-08" zaid="94238"/>
<ace_table alias="Pu-239.73c" awr="236.9986" location="1" name="94239.73c" path="900K/Pu_239_900K.ace" temperature="7.756e-08" zaid="94239"/>
<ace_table alias="Pu-240.73c" awr="237.9916" location="1" name="94240.73c" path="900K/Pu_240_900K.ace" temperature="7.756e-08" zaid="94240"/>
<ace_table alias="Pu-241.73c" awr="238.978" location="1" name="94241.73c" path="900K/Pu_241_900K.ace" temperature="7.756e-08" zaid="94241"/>
<ace_table alias="Pu-242.73c" awr="239.979" location="1" name="94242.73c" path="900K/Pu_242_900K.ace" temperature="7.756e-08" zaid="94242"/>
<ace_table alias="Pu-243.73c" awr="240.974" location="1" name="94243.73c" path="900K/Pu_243_900K.ace" temperature="7.756e-08" zaid="94243"/>
<ace_table alias="Pu-244.73c" awr="241.967" location="1" name="94244.73c" path="900K/Pu_244_900K.ace" temperature="7.756e-08" zaid="94244"/>
<ace_table alias="Pu-246.73c" awr="243.956" location="1" name="94246.73c" path="900K/Pu_246_900K.ace" temperature="7.756e-08" zaid="94246"/>
<ace_table alias="Am-240.73c" awr="237.993" location="1" name="95240.73c" path="900K/Am_240_900K.ace" temperature="7.756e-08" zaid="95240"/>
<ace_table alias="Am-241.73c" awr="238.986" location="1" name="95241.73c" path="900K/Am_241_900K.ace" temperature="7.756e-08" zaid="95241"/>
<ace_table alias="Am-242m.73c" awr="239.9801" location="1" metastable="1" name="95242.73c" path="900K/Am_242_900K.ace" temperature="7.756e-08" zaid="95242"/>
<ace_table alias="Am-249.73c" awr="239.9801" location="1" name="95249.73c" path="900K/Am_242m1_900K.ace" temperature="7.756e-08" zaid="95249"/>
<ace_table alias="Am-243.73c" awr="240.9734" location="1" name="95243.73c" path="900K/Am_243_900K.ace" temperature="7.756e-08" zaid="95243"/>
<ace_table alias="Am-244.73c" awr="241.968" location="1" name="95244.73c" path="900K/Am_244_900K.ace" temperature="7.756e-08" zaid="95244"/>
<ace_table alias="Am-249.73c" awr="241.968" location="1" name="95249.73c" path="900K/Am_244m1_900K.ace" temperature="7.756e-08" zaid="95249"/>
<ace_table alias="Cm-240.73c" awr="237.993" location="1" name="96240.73c" path="900K/Cm_240_900K.ace" temperature="7.756e-08" zaid="96240"/>
<ace_table alias="Cm-241.73c" awr="238.987" location="1" name="96241.73c" path="900K/Cm_241_900K.ace" temperature="7.756e-08" zaid="96241"/>
<ace_table alias="Cm-242.73c" awr="239.979" location="1" name="96242.73c" path="900K/Cm_242_900K.ace" temperature="7.756e-08" zaid="96242"/>
<ace_table alias="Cm-243.73c" awr="240.973" location="1" name="96243.73c" path="900K/Cm_243_900K.ace" temperature="7.756e-08" zaid="96243"/>
<ace_table alias="Cm-244.73c" awr="241.966" location="1" name="96244.73c" path="900K/Cm_244_900K.ace" temperature="7.756e-08" zaid="96244"/>
<ace_table alias="Cm-245.73c" awr="242.96" location="1" name="96245.73c" path="900K/Cm_245_900K.ace" temperature="7.756e-08" zaid="96245"/>
<ace_table alias="Cm-246.73c" awr="243.953" location="1" name="96246.73c" path="900K/Cm_246_900K.ace" temperature="7.756e-08" zaid="96246"/>
<ace_table alias="Cm-247.73c" awr="244.948" location="1" name="96247.73c" path="900K/Cm_247_900K.ace" temperature="7.756e-08" zaid="96247"/>
<ace_table alias="Cm-248.73c" awr="245.941" location="1" name="96248.73c" path="900K/Cm_248_900K.ace" temperature="7.756e-08" zaid="96248"/>
<ace_table alias="Cm-249.73c" awr="246.936" location="1" name="96249.73c" path="900K/Cm_249_900K.ace" temperature="7.756e-08" zaid="96249"/>
<ace_table alias="Cm-250.73c" awr="247.93" location="1" name="96250.73c" path="900K/Cm_250_900K.ace" temperature="7.756e-08" zaid="96250"/>
<ace_table alias="Bk-245.73c" awr="242.961" location="1" name="97245.73c" path="900K/Bk_245_900K.ace" temperature="7.756e-08" zaid="97245"/>
<ace_table alias="Bk-246.73c" awr="243.955" location="1" name="97246.73c" path="900K/Bk_246_900K.ace" temperature="7.756e-08" zaid="97246"/>
<ace_table alias="Bk-247.73c" awr="244.948" location="1" name="97247.73c" path="900K/Bk_247_900K.ace" temperature="7.756e-08" zaid="97247"/>
<ace_table alias="Bk-248.73c" awr="245.942" location="1" name="97248.73c" path="900K/Bk_248_900K.ace" temperature="7.756e-08" zaid="97248"/>
<ace_table alias="Bk-249.73c" awr="246.935" location="1" name="97249.73c" path="900K/Bk_249_900K.ace" temperature="7.756e-08" zaid="97249"/>
<ace_table alias="Bk-250.73c" awr="247.93" location="1" name="97250.73c" path="900K/Bk_250_900K.ace" temperature="7.756e-08" zaid="97250"/>
<ace_table alias="Cf-246.73c" awr="243.955" location="1" name="98246.73c" path="900K/Cf_246_900K.ace" temperature="7.756e-08" zaid="98246"/>
<ace_table alias="Cf-248.73c" awr="245.941" location="1" name="98248.73c" path="900K/Cf_248_900K.ace" temperature="7.756e-08" zaid="98248"/>
<ace_table alias="Cf-249.73c" awr="246.935" location="1" name="98249.73c" path="900K/Cf_249_900K.ace" temperature="7.756e-08" zaid="98249"/>
<ace_table alias="Cf-250.73c" awr="247.928" location="1" name="98250.73c" path="900K/Cf_250_900K.ace" temperature="7.756e-08" zaid="98250"/>
<ace_table alias="Cf-251.73c" awr="248.923" location="1" name="98251.73c" path="900K/Cf_251_900K.ace" temperature="7.756e-08" zaid="98251"/>
<ace_table alias="Cf-252.73c" awr="249.916" location="1" name="98252.73c" path="900K/Cf_252_900K.ace" temperature="7.756e-08" zaid="98252"/>
<ace_table alias="Cf-253.73c" awr="250.911" location="1" name="98253.73c" path="900K/Cf_253_900K.ace" temperature="7.756e-08" zaid="98253"/>
<ace_table alias="Cf-254.73c" awr="251.905" location="1" name="98254.73c" path="900K/Cf_254_900K.ace" temperature="7.756e-08" zaid="98254"/>
<ace_table alias="Es-251.73c" awr="248.923" location="1" name="99251.73c" path="900K/Es_251_900K.ace" temperature="7.756e-08" zaid="99251"/>
<ace_table alias="Es-252.73c" awr="249.917" location="1" name="99252.73c" path="900K/Es_252_900K.ace" temperature="7.756e-08" zaid="99252"/>
<ace_table alias="Es-253.73c" awr="250.911" location="1" name="99253.73c" path="900K/Es_253_900K.ace" temperature="7.756e-08" zaid="99253"/>
<ace_table alias="Es-254.73c" awr="251.905" location="1" name="99254.73c" path="900K/Es_254_900K.ace" temperature="7.756e-08" zaid="99254"/>
<ace_table alias="Es-259.73c" awr="251.905" location="1" name="99259.73c" path="900K/Es_254m1_900K.ace" temperature="7.756e-08" zaid="99259"/>
<ace_table alias="Es-255.73c" awr="252.899" location="1" name="99255.73c" path="900K/Es_255_900K.ace" temperature="7.756e-08" zaid="99255"/>
<ace_table alias="Fm-255.73c" awr="252.899" location="1" name="100255.73c" path="900K/Fm_255_900K.ace" temperature="7.756e-08" zaid="100255"/>
<ace_table alias="H-1.74c" awr="0.999167" location="1" name="1001.74c" path="1500K/H_001_1500K.ace" temperature="1.293e-07" zaid="1001"/>
<ace_table alias="H-2.74c" awr="1.9968" location="1" name="1002.74c" path="1500K/H_002_1500K.ace" temperature="1.293e-07" zaid="1002"/>
<ace_table alias="H-3.74c" awr="2.989596" location="1" name="1003.74c" path="1500K/H_003_1500K.ace" temperature="1.293e-07" zaid="1003"/>
<ace_table alias="He-3.74c" awr="2.989032" location="1" name="2003.74c" path="1500K/He_003_1500K.ace" temperature="1.293e-07" zaid="2003"/>
<ace_table alias="He-4.74c" awr="3.968219" location="1" name="2004.74c" path="1500K/He_004_1500K.ace" temperature="1.293e-07" zaid="2004"/>
<ace_table alias="Li-6.74c" awr="5.9634" location="1" name="3006.74c" path="1500K/Li_006_1500K.ace" temperature="1.293e-07" zaid="3006"/>
<ace_table alias="Li-7.74c" awr="6.955732" location="1" name="3007.74c" path="1500K/Li_007_1500K.ace" temperature="1.293e-07" zaid="3007"/>
<ace_table alias="Be-7.74c" awr="6.9545" location="1" name="4007.74c" path="1500K/Be_007_1500K.ace" temperature="1.293e-07" zaid="4007"/>
<ace_table alias="Be-9.74c" awr="8.93478" location="1" name="4009.74c" path="1500K/Be_009_1500K.ace" temperature="1.293e-07" zaid="4009"/>
<ace_table alias="B-10.74c" awr="9.926921" location="1" name="5010.74c" path="1500K/B_010_1500K.ace" temperature="1.293e-07" zaid="5010"/>
<ace_table alias="B-11.74c" awr="10.9147" location="1" name="5011.74c" path="1500K/B_011_1500K.ace" temperature="1.293e-07" zaid="5011"/>
<ace_table alias="C-Nat.74c" awr="11.898" location="1" name="6000.74c" path="1500K/C_000_1500K.ace" temperature="1.293e-07" zaid="6000"/>
<ace_table alias="N-14.74c" awr="13.88278" location="1" name="7014.74c" path="1500K/N_014_1500K.ace" temperature="1.293e-07" zaid="7014"/>
<ace_table alias="N-15.74c" awr="14.871" location="1" name="7015.74c" path="1500K/N_015_1500K.ace" temperature="1.293e-07" zaid="7015"/>
<ace_table alias="O-16.74c" awr="15.85751" location="1" name="8016.74c" path="1500K/O_016_1500K.ace" temperature="1.293e-07" zaid="8016"/>
<ace_table alias="O-17.74c" awr="16.8531" location="1" name="8017.74c" path="1500K/O_017_1500K.ace" temperature="1.293e-07" zaid="8017"/>
<ace_table alias="F-19.74c" awr="18.835" location="1" name="9019.74c" path="1500K/F_019_1500K.ace" temperature="1.293e-07" zaid="9019"/>
<ace_table alias="Na-22.74c" awr="21.8055" location="1" name="11022.74c" path="1500K/Na_022_1500K.ace" temperature="1.293e-07" zaid="11022"/>
<ace_table alias="Na-23.74c" awr="22.792" location="1" name="11023.74c" path="1500K/Na_023_1500K.ace" temperature="1.293e-07" zaid="11023"/>
<ace_table alias="Mg-24.74c" awr="23.779" location="1" name="12024.74c" path="1500K/Mg_024_1500K.ace" temperature="1.293e-07" zaid="12024"/>
<ace_table alias="Mg-25.74c" awr="24.7712" location="1" name="12025.74c" path="1500K/Mg_025_1500K.ace" temperature="1.293e-07" zaid="12025"/>
<ace_table alias="Mg-26.74c" awr="25.7594" location="1" name="12026.74c" path="1500K/Mg_026_1500K.ace" temperature="1.293e-07" zaid="12026"/>
<ace_table alias="Al-27.74c" awr="26.74975" location="1" name="13027.74c" path="1500K/Al_027_1500K.ace" temperature="1.293e-07" zaid="13027"/>
<ace_table alias="Si-28.74c" awr="27.737" location="1" name="14028.74c" path="1500K/Si_028_1500K.ace" temperature="1.293e-07" zaid="14028"/>
<ace_table alias="Si-29.74c" awr="28.728" location="1" name="14029.74c" path="1500K/Si_029_1500K.ace" temperature="1.293e-07" zaid="14029"/>
<ace_table alias="Si-30.74c" awr="29.716" location="1" name="14030.74c" path="1500K/Si_030_1500K.ace" temperature="1.293e-07" zaid="14030"/>
<ace_table alias="P-31.74c" awr="30.708" location="1" name="15031.74c" path="1500K/P_031_1500K.ace" temperature="1.293e-07" zaid="15031"/>
<ace_table alias="S-32.74c" awr="31.6973" location="1" name="16032.74c" path="1500K/S_032_1500K.ace" temperature="1.293e-07" zaid="16032"/>
<ace_table alias="S-33.74c" awr="32.6878" location="1" name="16033.74c" path="1500K/S_033_1500K.ace" temperature="1.293e-07" zaid="16033"/>
<ace_table alias="S-34.74c" awr="33.6762" location="1" name="16034.74c" path="1500K/S_034_1500K.ace" temperature="1.293e-07" zaid="16034"/>
<ace_table alias="S-36.74c" awr="35.658" location="1" name="16036.74c" path="1500K/S_036_1500K.ace" temperature="1.293e-07" zaid="16036"/>
<ace_table alias="Cl-35.74c" awr="34.66845" location="1" name="17035.74c" path="1500K/Cl_035_1500K.ace" temperature="1.293e-07" zaid="17035"/>
<ace_table alias="Cl-37.74c" awr="36.6483" location="1" name="17037.74c" path="1500K/Cl_037_1500K.ace" temperature="1.293e-07" zaid="17037"/>
<ace_table alias="Ar-36.74c" awr="35.6585" location="1" name="18036.74c" path="1500K/Ar_036_1500K.ace" temperature="1.293e-07" zaid="18036"/>
<ace_table alias="Ar-38.74c" awr="37.6366" location="1" name="18038.74c" path="1500K/Ar_038_1500K.ace" temperature="1.293e-07" zaid="18038"/>
<ace_table alias="Ar-40.74c" awr="39.6191" location="1" name="18040.74c" path="1500K/Ar_040_1500K.ace" temperature="1.293e-07" zaid="18040"/>
<ace_table alias="K-39.74c" awr="38.6293" location="1" name="19039.74c" path="1500K/K_039_1500K.ace" temperature="1.293e-07" zaid="19039"/>
<ace_table alias="K-40.74c" awr="39.6207" location="1" name="19040.74c" path="1500K/K_040_1500K.ace" temperature="1.293e-07" zaid="19040"/>
<ace_table alias="K-41.74c" awr="40.6101" location="1" name="19041.74c" path="1500K/K_041_1500K.ace" temperature="1.293e-07" zaid="19041"/>
<ace_table alias="Ca-40.74c" awr="39.6193" location="1" name="20040.74c" path="1500K/Ca_040_1500K.ace" temperature="1.293e-07" zaid="20040"/>
<ace_table alias="Ca-42.74c" awr="41.59818" location="1" name="20042.74c" path="1500K/Ca_042_1500K.ace" temperature="1.293e-07" zaid="20042"/>
<ace_table alias="Ca-43.74c" awr="42.58973" location="1" name="20043.74c" path="1500K/Ca_043_1500K.ace" temperature="1.293e-07" zaid="20043"/>
<ace_table alias="Ca-44.74c" awr="43.57788" location="1" name="20044.74c" path="1500K/Ca_044_1500K.ace" temperature="1.293e-07" zaid="20044"/>
<ace_table alias="Ca-46.74c" awr="45.55893" location="1" name="20046.74c" path="1500K/Ca_046_1500K.ace" temperature="1.293e-07" zaid="20046"/>
<ace_table alias="Ca-48.74c" awr="47.5406" location="1" name="20048.74c" path="1500K/Ca_048_1500K.ace" temperature="1.293e-07" zaid="20048"/>
<ace_table alias="Sc-45.74c" awr="44.5679" location="1" name="21045.74c" path="1500K/Sc_045_1500K.ace" temperature="1.293e-07" zaid="21045"/>
<ace_table alias="Ti-46.74c" awr="45.5579" location="1" name="22046.74c" path="1500K/Ti_046_1500K.ace" temperature="1.293e-07" zaid="22046"/>
<ace_table alias="Ti-47.74c" awr="46.5484" location="1" name="22047.74c" path="1500K/Ti_047_1500K.ace" temperature="1.293e-07" zaid="22047"/>
<ace_table alias="Ti-48.74c" awr="47.5361" location="1" name="22048.74c" path="1500K/Ti_048_1500K.ace" temperature="1.293e-07" zaid="22048"/>
<ace_table alias="Ti-49.74c" awr="48.5274" location="1" name="22049.74c" path="1500K/Ti_049_1500K.ace" temperature="1.293e-07" zaid="22049"/>
<ace_table alias="Ti-50.74c" awr="49.5157" location="1" name="22050.74c" path="1500K/Ti_050_1500K.ace" temperature="1.293e-07" zaid="22050"/>
<ace_table alias="V-50.74c" awr="49.5181" location="1" name="23050.74c" path="1500K/V_050_1500K.ace" temperature="1.293e-07" zaid="23050"/>
<ace_table alias="V-51.74c" awr="50.5063" location="1" name="23051.74c" path="1500K/V_051_1500K.ace" temperature="1.293e-07" zaid="23051"/>
<ace_table alias="Cr-50.74c" awr="49.517" location="1" name="24050.74c" path="1500K/Cr_050_1500K.ace" temperature="1.293e-07" zaid="24050"/>
<ace_table alias="Cr-52.74c" awr="51.494" location="1" name="24052.74c" path="1500K/Cr_052_1500K.ace" temperature="1.293e-07" zaid="24052"/>
<ace_table alias="Cr-53.74c" awr="52.486" location="1" name="24053.74c" path="1500K/Cr_053_1500K.ace" temperature="1.293e-07" zaid="24053"/>
<ace_table alias="Cr-54.74c" awr="53.476" location="1" name="24054.74c" path="1500K/Cr_054_1500K.ace" temperature="1.293e-07" zaid="24054"/>
<ace_table alias="Mn-55.74c" awr="54.4661" location="1" name="25055.74c" path="1500K/Mn_055_1500K.ace" temperature="1.293e-07" zaid="25055"/>
<ace_table alias="Fe-54.74c" awr="53.476" location="1" name="26054.74c" path="1500K/Fe_054_1500K.ace" temperature="1.293e-07" zaid="26054"/>
<ace_table alias="Fe-56.74c" awr="55.454" location="1" name="26056.74c" path="1500K/Fe_056_1500K.ace" temperature="1.293e-07" zaid="26056"/>
<ace_table alias="Fe-57.74c" awr="56.446" location="1" name="26057.74c" path="1500K/Fe_057_1500K.ace" temperature="1.293e-07" zaid="26057"/>
<ace_table alias="Fe-58.74c" awr="57.436" location="1" name="26058.74c" path="1500K/Fe_058_1500K.ace" temperature="1.293e-07" zaid="26058"/>
<ace_table alias="Co-58.74c" awr="57.4381" location="1" name="27058.74c" path="1500K/Co_058_1500K.ace" temperature="1.293e-07" zaid="27058"/>
<ace_table alias="Co-59.74c" awr="57.4381" location="1" name="27059.74c" path="1500K/Co_058m1_1500K.ace" temperature="1.293e-07" zaid="27059"/>
<ace_table alias="Co-59.74c" awr="58.4269" location="1" name="27059.74c" path="1500K/Co_059_1500K.ace" temperature="1.293e-07" zaid="27059"/>
<ace_table alias="Ni-58.74c" awr="57.438" location="1" name="28058.74c" path="1500K/Ni_058_1500K.ace" temperature="1.293e-07" zaid="28058"/>
<ace_table alias="Ni-59.74c" awr="58.4281" location="1" name="28059.74c" path="1500K/Ni_059_1500K.ace" temperature="1.293e-07" zaid="28059"/>
<ace_table alias="Ni-60.74c" awr="59.416" location="1" name="28060.74c" path="1500K/Ni_060_1500K.ace" temperature="1.293e-07" zaid="28060"/>
<ace_table alias="Ni-61.74c" awr="60.408" location="1" name="28061.74c" path="1500K/Ni_061_1500K.ace" temperature="1.293e-07" zaid="28061"/>
<ace_table alias="Ni-62.74c" awr="61.396" location="1" name="28062.74c" path="1500K/Ni_062_1500K.ace" temperature="1.293e-07" zaid="28062"/>
<ace_table alias="Ni-64.74c" awr="63.379" location="1" name="28064.74c" path="1500K/Ni_064_1500K.ace" temperature="1.293e-07" zaid="28064"/>
<ace_table alias="Cu-63.74c" awr="62.389" location="1" name="29063.74c" path="1500K/Cu_063_1500K.ace" temperature="1.293e-07" zaid="29063"/>
<ace_table alias="Cu-65.74c" awr="64.37" location="1" name="29065.74c" path="1500K/Cu_065_1500K.ace" temperature="1.293e-07" zaid="29065"/>
<ace_table alias="Zn-64.74c" awr="63.38" location="1" name="30064.74c" path="1500K/Zn_064_1500K.ace" temperature="1.293e-07" zaid="30064"/>
<ace_table alias="Zn-65.74c" awr="64.3715" location="1" name="30065.74c" path="1500K/Zn_065_1500K.ace" temperature="1.293e-07" zaid="30065"/>
<ace_table alias="Zn-66.74c" awr="65.3597" location="1" name="30066.74c" path="1500K/Zn_066_1500K.ace" temperature="1.293e-07" zaid="30066"/>
<ace_table alias="Zn-67.74c" awr="66.3522" location="1" name="30067.74c" path="1500K/Zn_067_1500K.ace" temperature="1.293e-07" zaid="30067"/>
<ace_table alias="Zn-68.74c" awr="67.3413" location="1" name="30068.74c" path="1500K/Zn_068_1500K.ace" temperature="1.293e-07" zaid="30068"/>
<ace_table alias="Zn-70.74c" awr="69.3246" location="1" name="30070.74c" path="1500K/Zn_070_1500K.ace" temperature="1.293e-07" zaid="30070"/>
<ace_table alias="Ga-69.74c" awr="68.3336" location="1" name="31069.74c" path="1500K/Ga_069_1500K.ace" temperature="1.293e-07" zaid="31069"/>
<ace_table alias="Ga-71.74c" awr="70.315" location="1" name="31071.74c" path="1500K/Ga_071_1500K.ace" temperature="1.293e-07" zaid="31071"/>
<ace_table alias="Ge-70.74c" awr="69.3236" location="1" name="32070.74c" path="1500K/Ge_070_1500K.ace" temperature="1.293e-07" zaid="32070"/>
<ace_table alias="Ge-72.74c" awr="71.3042" location="1" name="32072.74c" path="1500K/Ge_072_1500K.ace" temperature="1.293e-07" zaid="32072"/>
<ace_table alias="Ge-73.74c" awr="72.297" location="1" name="32073.74c" path="1500K/Ge_073_1500K.ace" temperature="1.293e-07" zaid="32073"/>
<ace_table alias="Ge-74.74c" awr="73.2862" location="1" name="32074.74c" path="1500K/Ge_074_1500K.ace" temperature="1.293e-07" zaid="32074"/>
<ace_table alias="Ge-76.74c" awr="75.2692" location="1" name="32076.74c" path="1500K/Ge_076_1500K.ace" temperature="1.293e-07" zaid="32076"/>
<ace_table alias="As-74.74c" awr="73.2889" location="1" name="33074.74c" path="1500K/As_074_1500K.ace" temperature="1.293e-07" zaid="33074"/>
<ace_table alias="As-75.74c" awr="74.278" location="1" name="33075.74c" path="1500K/As_075_1500K.ace" temperature="1.293e-07" zaid="33075"/>
<ace_table alias="Se-74.74c" awr="73.2875" location="1" name="34074.74c" path="1500K/Se_074_1500K.ace" temperature="1.293e-07" zaid="34074"/>
<ace_table alias="Se-76.74c" awr="75.267" location="1" name="34076.74c" path="1500K/Se_076_1500K.ace" temperature="1.293e-07" zaid="34076"/>
<ace_table alias="Se-77.74c" awr="76.2591" location="1" name="34077.74c" path="1500K/Se_077_1500K.ace" temperature="1.293e-07" zaid="34077"/>
<ace_table alias="Se-78.74c" awr="77.2479" location="1" name="34078.74c" path="1500K/Se_078_1500K.ace" temperature="1.293e-07" zaid="34078"/>
<ace_table alias="Se-79.74c" awr="78.2405" location="1" name="34079.74c" path="1500K/Se_079_1500K.ace" temperature="1.293e-07" zaid="34079"/>
<ace_table alias="Se-80.74c" awr="79.23" location="1" name="34080.74c" path="1500K/Se_080_1500K.ace" temperature="1.293e-07" zaid="34080"/>
<ace_table alias="Se-82.74c" awr="81.213" location="1" name="34082.74c" path="1500K/Se_082_1500K.ace" temperature="1.293e-07" zaid="34082"/>
<ace_table alias="Br-79.74c" awr="78.2403" location="1" name="35079.74c" path="1500K/Br_079_1500K.ace" temperature="1.293e-07" zaid="35079"/>
<ace_table alias="Br-81.74c" awr="80.2212" location="1" name="35081.74c" path="1500K/Br_081_1500K.ace" temperature="1.293e-07" zaid="35081"/>
<ace_table alias="Kr-78.74c" awr="77.25099" location="1" name="36078.74c" path="1500K/Kr_078_1500K.ace" temperature="1.293e-07" zaid="36078"/>
<ace_table alias="Kr-80.74c" awr="79.2299" location="1" name="36080.74c" path="1500K/Kr_080_1500K.ace" temperature="1.293e-07" zaid="36080"/>
<ace_table alias="Kr-82.74c" awr="81.2098" location="1" name="36082.74c" path="1500K/Kr_082_1500K.ace" temperature="1.293e-07" zaid="36082"/>
<ace_table alias="Kr-83.74c" awr="82.202" location="1" name="36083.74c" path="1500K/Kr_083_1500K.ace" temperature="1.293e-07" zaid="36083"/>
<ace_table alias="Kr-84.74c" awr="83.1907" location="1" name="36084.74c" path="1500K/Kr_084_1500K.ace" temperature="1.293e-07" zaid="36084"/>
<ace_table alias="Kr-85.74c" awr="84.1831" location="1" name="36085.74c" path="1500K/Kr_085_1500K.ace" temperature="1.293e-07" zaid="36085"/>
<ace_table alias="Kr-86.74c" awr="85.1726" location="1" name="36086.74c" path="1500K/Kr_086_1500K.ace" temperature="1.293e-07" zaid="36086"/>
<ace_table alias="Rb-85.74c" awr="84.1824" location="1" name="37085.74c" path="1500K/Rb_085_1500K.ace" temperature="1.293e-07" zaid="37085"/>
<ace_table alias="Rb-86.74c" awr="85.1731" location="1" name="37086.74c" path="1500K/Rb_086_1500K.ace" temperature="1.293e-07" zaid="37086"/>
<ace_table alias="Rb-87.74c" awr="86.1626" location="1" name="37087.74c" path="1500K/Rb_087_1500K.ace" temperature="1.293e-07" zaid="37087"/>
<ace_table alias="Sr-84.74c" awr="83.1926" location="1" name="38084.74c" path="1500K/Sr_084_1500K.ace" temperature="1.293e-07" zaid="38084"/>
<ace_table alias="Sr-86.74c" awr="85.1713" location="1" name="38086.74c" path="1500K/Sr_086_1500K.ace" temperature="1.293e-07" zaid="38086"/>
<ace_table alias="Sr-87.74c" awr="86.1623" location="1" name="38087.74c" path="1500K/Sr_087_1500K.ace" temperature="1.293e-07" zaid="38087"/>
<ace_table alias="Sr-88.74c" awr="87.15" location="1" name="38088.74c" path="1500K/Sr_088_1500K.ace" temperature="1.293e-07" zaid="38088"/>
<ace_table alias="Sr-89.74c" awr="88.144" location="1" name="38089.74c" path="1500K/Sr_089_1500K.ace" temperature="1.293e-07" zaid="38089"/>
<ace_table alias="Sr-90.74c" awr="89.1353" location="1" name="38090.74c" path="1500K/Sr_090_1500K.ace" temperature="1.293e-07" zaid="38090"/>
<ace_table alias="Y-89.74c" awr="88.1421" location="1" name="39089.74c" path="1500K/Y_089_1500K.ace" temperature="1.293e-07" zaid="39089"/>
<ace_table alias="Y-90.74c" awr="89.1348" location="1" name="39090.74c" path="1500K/Y_090_1500K.ace" temperature="1.293e-07" zaid="39090"/>
<ace_table alias="Y-91.74c" awr="90.1264" location="1" name="39091.74c" path="1500K/Y_091_1500K.ace" temperature="1.293e-07" zaid="39091"/>
<ace_table alias="Zr-90.74c" awr="89.1324" location="1" name="40090.74c" path="1500K/Zr_090_1500K.ace" temperature="1.293e-07" zaid="40090"/>
<ace_table alias="Zr-91.74c" awr="90.1247" location="1" name="40091.74c" path="1500K/Zr_091_1500K.ace" temperature="1.293e-07" zaid="40091"/>
<ace_table alias="Zr-92.74c" awr="91.1155" location="1" name="40092.74c" path="1500K/Zr_092_1500K.ace" temperature="1.293e-07" zaid="40092"/>
<ace_table alias="Zr-93.74c" awr="92.1084" location="1" name="40093.74c" path="1500K/Zr_093_1500K.ace" temperature="1.293e-07" zaid="40093"/>
<ace_table alias="Zr-94.74c" awr="93.0996" location="1" name="40094.74c" path="1500K/Zr_094_1500K.ace" temperature="1.293e-07" zaid="40094"/>
<ace_table alias="Zr-95.74c" awr="94.0927" location="1" name="40095.74c" path="1500K/Zr_095_1500K.ace" temperature="1.293e-07" zaid="40095"/>
<ace_table alias="Zr-96.74c" awr="95.0844" location="1" name="40096.74c" path="1500K/Zr_096_1500K.ace" temperature="1.293e-07" zaid="40096"/>
<ace_table alias="Nb-93.74c" awr="92.1051" location="1" name="41093.74c" path="1500K/Nb_093_1500K.ace" temperature="1.293e-07" zaid="41093"/>
<ace_table alias="Nb-94.74c" awr="93.1006" location="1" name="41094.74c" path="1500K/Nb_094_1500K.ace" temperature="1.293e-07" zaid="41094"/>
<ace_table alias="Nb-95.74c" awr="94.0915" location="1" name="41095.74c" path="1500K/Nb_095_1500K.ace" temperature="1.293e-07" zaid="41095"/>
<ace_table alias="Mo-92.74c" awr="91.1173" location="1" name="42092.74c" path="1500K/Mo_092_1500K.ace" temperature="1.293e-07" zaid="42092"/>
<ace_table alias="Mo-94.74c" awr="93.0984" location="1" name="42094.74c" path="1500K/Mo_094_1500K.ace" temperature="1.293e-07" zaid="42094"/>
<ace_table alias="Mo-95.74c" awr="94.0906" location="1" name="42095.74c" path="1500K/Mo_095_1500K.ace" temperature="1.293e-07" zaid="42095"/>
<ace_table alias="Mo-96.74c" awr="95.0808" location="1" name="42096.74c" path="1500K/Mo_096_1500K.ace" temperature="1.293e-07" zaid="42096"/>
<ace_table alias="Mo-97.74c" awr="96.0735" location="1" name="42097.74c" path="1500K/Mo_097_1500K.ace" temperature="1.293e-07" zaid="42097"/>
<ace_table alias="Mo-98.74c" awr="97.0643" location="1" name="42098.74c" path="1500K/Mo_098_1500K.ace" temperature="1.293e-07" zaid="42098"/>
<ace_table alias="Mo-99.74c" awr="98.058" location="1" name="42099.74c" path="1500K/Mo_099_1500K.ace" temperature="1.293e-07" zaid="42099"/>
<ace_table alias="Mo-100.74c" awr="99.049" location="1" name="42100.74c" path="1500K/Mo_100_1500K.ace" temperature="1.293e-07" zaid="42100"/>
<ace_table alias="Tc-99.74c" awr="98.0566" location="1" name="43099.74c" path="1500K/Tc_099_1500K.ace" temperature="1.293e-07" zaid="43099"/>
<ace_table alias="Ru-96.74c" awr="95.0837" location="1" name="44096.74c" path="1500K/Ru_096_1500K.ace" temperature="1.293e-07" zaid="44096"/>
<ace_table alias="Ru-98.74c" awr="97.0642" location="1" name="44098.74c" path="1500K/Ru_098_1500K.ace" temperature="1.293e-07" zaid="44098"/>
<ace_table alias="Ru-99.74c" awr="98.0562" location="1" name="44099.74c" path="1500K/Ru_099_1500K.ace" temperature="1.293e-07" zaid="44099"/>
<ace_table alias="Ru-100.74c" awr="99.046" location="1" name="44100.74c" path="1500K/Ru_100_1500K.ace" temperature="1.293e-07" zaid="44100"/>
<ace_table alias="Ru-101.74c" awr="100.039" location="1" name="44101.74c" path="1500K/Ru_101_1500K.ace" temperature="1.293e-07" zaid="44101"/>
<ace_table alias="Ru-102.74c" awr="101.03" location="1" name="44102.74c" path="1500K/Ru_102_1500K.ace" temperature="1.293e-07" zaid="44102"/>
<ace_table alias="Ru-103.74c" awr="102.02" location="1" name="44103.74c" path="1500K/Ru_103_1500K.ace" temperature="1.293e-07" zaid="44103"/>
<ace_table alias="Ru-104.74c" awr="103.01" location="1" name="44104.74c" path="1500K/Ru_104_1500K.ace" temperature="1.293e-07" zaid="44104"/>
<ace_table alias="Ru-105.74c" awr="104.01" location="1" name="44105.74c" path="1500K/Ru_105_1500K.ace" temperature="1.293e-07" zaid="44105"/>
<ace_table alias="Ru-106.74c" awr="104.997" location="1" name="44106.74c" path="1500K/Ru_106_1500K.ace" temperature="1.293e-07" zaid="44106"/>
<ace_table alias="Rh-103.74c" awr="102.021" location="1" name="45103.74c" path="1500K/Rh_103_1500K.ace" temperature="1.293e-07" zaid="45103"/>
<ace_table alias="Rh-105.74c" awr="104.0" location="1" name="45105.74c" path="1500K/Rh_105_1500K.ace" temperature="1.293e-07" zaid="45105"/>
<ace_table alias="Pd-102.74c" awr="101.0302" location="1" name="46102.74c" path="1500K/Pd_102_1500K.ace" temperature="1.293e-07" zaid="46102"/>
<ace_table alias="Pd-104.74c" awr="103.0114" location="1" name="46104.74c" path="1500K/Pd_104_1500K.ace" temperature="1.293e-07" zaid="46104"/>
<ace_table alias="Pd-105.74c" awr="104.004" location="1" name="46105.74c" path="1500K/Pd_105_1500K.ace" temperature="1.293e-07" zaid="46105"/>
<ace_table alias="Pd-106.74c" awr="104.9937" location="1" name="46106.74c" path="1500K/Pd_106_1500K.ace" temperature="1.293e-07" zaid="46106"/>
<ace_table alias="Pd-107.74c" awr="105.987" location="1" name="46107.74c" path="1500K/Pd_107_1500K.ace" temperature="1.293e-07" zaid="46107"/>
<ace_table alias="Pd-108.74c" awr="106.9769" location="1" name="46108.74c" path="1500K/Pd_108_1500K.ace" temperature="1.293e-07" zaid="46108"/>
<ace_table alias="Pd-110.74c" awr="108.961" location="1" name="46110.74c" path="1500K/Pd_110_1500K.ace" temperature="1.293e-07" zaid="46110"/>
<ace_table alias="Ag-107.74c" awr="105.987" location="1" name="47107.74c" path="1500K/Ag_107_1500K.ace" temperature="1.293e-07" zaid="47107"/>
<ace_table alias="Ag-109.74c" awr="107.969" location="1" name="47109.74c" path="1500K/Ag_109_1500K.ace" temperature="1.293e-07" zaid="47109"/>
<ace_table alias="Ag-119.74c" awr="108.962" location="1" name="47119.74c" path="1500K/Ag_110m1_1500K.ace" temperature="1.293e-07" zaid="47119"/>
<ace_table alias="Ag-111.74c" awr="109.953" location="1" name="47111.74c" path="1500K/Ag_111_1500K.ace" temperature="1.293e-07" zaid="47111"/>
<ace_table alias="Cd-106.74c" awr="104.996" location="1" name="48106.74c" path="1500K/Cd_106_1500K.ace" temperature="1.293e-07" zaid="48106"/>
<ace_table alias="Cd-108.74c" awr="106.977" location="1" name="48108.74c" path="1500K/Cd_108_1500K.ace" temperature="1.293e-07" zaid="48108"/>
<ace_table alias="Cd-110.74c" awr="108.959" location="1" name="48110.74c" path="1500K/Cd_110_1500K.ace" temperature="1.293e-07" zaid="48110"/>
<ace_table alias="Cd-111.74c" awr="109.951" location="1" name="48111.74c" path="1500K/Cd_111_1500K.ace" temperature="1.293e-07" zaid="48111"/>
<ace_table alias="Cd-112.74c" awr="110.942" location="1" name="48112.74c" path="1500K/Cd_112_1500K.ace" temperature="1.293e-07" zaid="48112"/>
<ace_table alias="Cd-113.74c" awr="111.93" location="1" name="48113.74c" path="1500K/Cd_113_1500K.ace" temperature="1.293e-07" zaid="48113"/>
<ace_table alias="Cd-114.74c" awr="112.925" location="1" name="48114.74c" path="1500K/Cd_114_1500K.ace" temperature="1.293e-07" zaid="48114"/>
<ace_table alias="Cd-119.74c" awr="113.918" location="1" name="48119.74c" path="1500K/Cd_115m1_1500K.ace" temperature="1.293e-07" zaid="48119"/>
<ace_table alias="Cd-116.74c" awr="114.909" location="1" name="48116.74c" path="1500K/Cd_116_1500K.ace" temperature="1.293e-07" zaid="48116"/>
<ace_table alias="In-113.74c" awr="111.934" location="1" name="49113.74c" path="1500K/In_113_1500K.ace" temperature="1.293e-07" zaid="49113"/>
<ace_table alias="In-115.74c" awr="113.917" location="1" name="49115.74c" path="1500K/In_115_1500K.ace" temperature="1.293e-07" zaid="49115"/>
<ace_table alias="Sn-112.74c" awr="110.944" location="1" name="50112.74c" path="1500K/Sn_112_1500K.ace" temperature="1.293e-07" zaid="50112"/>
<ace_table alias="Sn-113.74c" awr="111.935" location="1" name="50113.74c" path="1500K/Sn_113_1500K.ace" temperature="1.293e-07" zaid="50113"/>
<ace_table alias="Sn-114.74c" awr="112.925" location="1" name="50114.74c" path="1500K/Sn_114_1500K.ace" temperature="1.293e-07" zaid="50114"/>
<ace_table alias="Sn-115.74c" awr="113.916" location="1" name="50115.74c" path="1500K/Sn_115_1500K.ace" temperature="1.293e-07" zaid="50115"/>
<ace_table alias="Sn-116.74c" awr="114.906" location="1" name="50116.74c" path="1500K/Sn_116_1500K.ace" temperature="1.293e-07" zaid="50116"/>
<ace_table alias="Sn-117.74c" awr="115.899" location="1" name="50117.74c" path="1500K/Sn_117_1500K.ace" temperature="1.293e-07" zaid="50117"/>
<ace_table alias="Sn-118.74c" awr="116.889" location="1" name="50118.74c" path="1500K/Sn_118_1500K.ace" temperature="1.293e-07" zaid="50118"/>
<ace_table alias="Sn-119.74c" awr="117.882" location="1" name="50119.74c" path="1500K/Sn_119_1500K.ace" temperature="1.293e-07" zaid="50119"/>
<ace_table alias="Sn-120.74c" awr="118.872" location="1" name="50120.74c" path="1500K/Sn_120_1500K.ace" temperature="1.293e-07" zaid="50120"/>
<ace_table alias="Sn-122.74c" awr="120.856" location="1" name="50122.74c" path="1500K/Sn_122_1500K.ace" temperature="1.293e-07" zaid="50122"/>
<ace_table alias="Sn-123.74c" awr="121.85" location="1" name="50123.74c" path="1500K/Sn_123_1500K.ace" temperature="1.293e-07" zaid="50123"/>
<ace_table alias="Sn-124.74c" awr="122.841" location="1" name="50124.74c" path="1500K/Sn_124_1500K.ace" temperature="1.293e-07" zaid="50124"/>
<ace_table alias="Sn-125.74c" awr="123.835" location="1" name="50125.74c" path="1500K/Sn_125_1500K.ace" temperature="1.293e-07" zaid="50125"/>
<ace_table alias="Sn-126.74c" awr="124.826" location="1" name="50126.74c" path="1500K/Sn_126_1500K.ace" temperature="1.293e-07" zaid="50126"/>
<ace_table alias="Sb-121.74c" awr="119.87" location="1" name="51121.74c" path="1500K/Sb_121_1500K.ace" temperature="1.293e-07" zaid="51121"/>
<ace_table alias="Sb-123.74c" awr="121.85" location="1" name="51123.74c" path="1500K/Sb_123_1500K.ace" temperature="1.293e-07" zaid="51123"/>
<ace_table alias="Sb-124.74c" awr="122.842" location="1" name="51124.74c" path="1500K/Sb_124_1500K.ace" temperature="1.293e-07" zaid="51124"/>
<ace_table alias="Sb-125.74c" awr="123.832" location="1" name="51125.74c" path="1500K/Sb_125_1500K.ace" temperature="1.293e-07" zaid="51125"/>
<ace_table alias="Sb-126.74c" awr="124.826" location="1" name="51126.74c" path="1500K/Sb_126_1500K.ace" temperature="1.293e-07" zaid="51126"/>
<ace_table alias="Te-120.74c" awr="118.874" location="1" name="52120.74c" path="1500K/Te_120_1500K.ace" temperature="1.293e-07" zaid="52120"/>
<ace_table alias="Te-122.74c" awr="120.856" location="1" name="52122.74c" path="1500K/Te_122_1500K.ace" temperature="1.293e-07" zaid="52122"/>
<ace_table alias="Te-123.74c" awr="121.848" location="1" name="52123.74c" path="1500K/Te_123_1500K.ace" temperature="1.293e-07" zaid="52123"/>
<ace_table alias="Te-124.74c" awr="122.839" location="1" name="52124.74c" path="1500K/Te_124_1500K.ace" temperature="1.293e-07" zaid="52124"/>
<ace_table alias="Te-125.74c" awr="123.831" location="1" name="52125.74c" path="1500K/Te_125_1500K.ace" temperature="1.293e-07" zaid="52125"/>
<ace_table alias="Te-126.74c" awr="124.821" location="1" name="52126.74c" path="1500K/Te_126_1500K.ace" temperature="1.293e-07" zaid="52126"/>
<ace_table alias="Te-129.74c" awr="125.815" location="1" name="52129.74c" path="1500K/Te_127m1_1500K.ace" temperature="1.293e-07" zaid="52129"/>
<ace_table alias="Te-128.74c" awr="126.805" location="1" name="52128.74c" path="1500K/Te_128_1500K.ace" temperature="1.293e-07" zaid="52128"/>
<ace_table alias="Te-129.74c" awr="127.8" location="1" name="52129.74c" path="1500K/Te_129m1_1500K.ace" temperature="1.293e-07" zaid="52129"/>
<ace_table alias="Te-130.74c" awr="128.79" location="1" name="52130.74c" path="1500K/Te_130_1500K.ace" temperature="1.293e-07" zaid="52130"/>
<ace_table alias="Te-132.74c" awr="130.775" location="1" name="52132.74c" path="1500K/Te_132_1500K.ace" temperature="1.293e-07" zaid="52132"/>
<ace_table alias="I-127.74c" awr="125.8143" location="1" name="53127.74c" path="1500K/I_127_1500K.ace" temperature="1.293e-07" zaid="53127"/>
<ace_table alias="I-129.74c" awr="127.798" location="1" name="53129.74c" path="1500K/I_129_1500K.ace" temperature="1.293e-07" zaid="53129"/>
<ace_table alias="I-130.74c" awr="128.791" location="1" name="53130.74c" path="1500K/I_130_1500K.ace" temperature="1.293e-07" zaid="53130"/>
<ace_table alias="I-131.74c" awr="129.781" location="1" name="53131.74c" path="1500K/I_131_1500K.ace" temperature="1.293e-07" zaid="53131"/>
<ace_table alias="I-135.74c" awr="133.75" location="1" name="53135.74c" path="1500K/I_135_1500K.ace" temperature="1.293e-07" zaid="53135"/>
<ace_table alias="Xe-123.74c" awr="121.8526" location="1" name="54123.74c" path="1500K/Xe_123_1500K.ace" temperature="1.293e-07" zaid="54123"/>
<ace_table alias="Xe-124.74c" awr="122.8415" location="1" name="54124.74c" path="1500K/Xe_124_1500K.ace" temperature="1.293e-07" zaid="54124"/>
<ace_table alias="Xe-126.74c" awr="124.822" location="1" name="54126.74c" path="1500K/Xe_126_1500K.ace" temperature="1.293e-07" zaid="54126"/>
<ace_table alias="Xe-128.74c" awr="126.804" location="1" name="54128.74c" path="1500K/Xe_128_1500K.ace" temperature="1.293e-07" zaid="54128"/>
<ace_table alias="Xe-129.74c" awr="127.798" location="1" name="54129.74c" path="1500K/Xe_129_1500K.ace" temperature="1.293e-07" zaid="54129"/>
<ace_table alias="Xe-130.74c" awr="128.788" location="1" name="54130.74c" path="1500K/Xe_130_1500K.ace" temperature="1.293e-07" zaid="54130"/>
<ace_table alias="Xe-131.74c" awr="129.781" location="1" name="54131.74c" path="1500K/Xe_131_1500K.ace" temperature="1.293e-07" zaid="54131"/>
<ace_table alias="Xe-132.74c" awr="130.77" location="1" name="54132.74c" path="1500K/Xe_132_1500K.ace" temperature="1.293e-07" zaid="54132"/>
<ace_table alias="Xe-133.74c" awr="131.764" location="1" name="54133.74c" path="1500K/Xe_133_1500K.ace" temperature="1.293e-07" zaid="54133"/>
<ace_table alias="Xe-134.74c" awr="132.76" location="1" name="54134.74c" path="1500K/Xe_134_1500K.ace" temperature="1.293e-07" zaid="54134"/>
<ace_table alias="Xe-135.74c" awr="133.748" location="1" name="54135.74c" path="1500K/Xe_135_1500K.ace" temperature="1.293e-07" zaid="54135"/>
<ace_table alias="Xe-136.74c" awr="134.74" location="1" name="54136.74c" path="1500K/Xe_136_1500K.ace" temperature="1.293e-07" zaid="54136"/>
<ace_table alias="Cs-133.74c" awr="131.764" location="1" name="55133.74c" path="1500K/Cs_133_1500K.ace" temperature="1.293e-07" zaid="55133"/>
<ace_table alias="Cs-134.74c" awr="132.757" location="1" name="55134.74c" path="1500K/Cs_134_1500K.ace" temperature="1.293e-07" zaid="55134"/>
<ace_table alias="Cs-135.74c" awr="133.747" location="1" name="55135.74c" path="1500K/Cs_135_1500K.ace" temperature="1.293e-07" zaid="55135"/>
<ace_table alias="Cs-136.74c" awr="134.739" location="1" name="55136.74c" path="1500K/Cs_136_1500K.ace" temperature="1.293e-07" zaid="55136"/>
<ace_table alias="Cs-137.74c" awr="135.731" location="1" name="55137.74c" path="1500K/Cs_137_1500K.ace" temperature="1.293e-07" zaid="55137"/>
<ace_table alias="Ba-130.74c" awr="128.79" location="1" name="56130.74c" path="1500K/Ba_130_1500K.ace" temperature="1.293e-07" zaid="56130"/>
<ace_table alias="Ba-132.74c" awr="130.772" location="1" name="56132.74c" path="1500K/Ba_132_1500K.ace" temperature="1.293e-07" zaid="56132"/>
<ace_table alias="Ba-133.74c" awr="131.764" location="1" name="56133.74c" path="1500K/Ba_133_1500K.ace" temperature="1.293e-07" zaid="56133"/>
<ace_table alias="Ba-134.74c" awr="132.754" location="1" name="56134.74c" path="1500K/Ba_134_1500K.ace" temperature="1.293e-07" zaid="56134"/>
<ace_table alias="Ba-135.74c" awr="133.747" location="1" name="56135.74c" path="1500K/Ba_135_1500K.ace" temperature="1.293e-07" zaid="56135"/>
<ace_table alias="Ba-136.74c" awr="134.737" location="1" name="56136.74c" path="1500K/Ba_136_1500K.ace" temperature="1.293e-07" zaid="56136"/>
<ace_table alias="Ba-137.74c" awr="135.73" location="1" name="56137.74c" path="1500K/Ba_137_1500K.ace" temperature="1.293e-07" zaid="56137"/>
<ace_table alias="Ba-138.74c" awr="136.72" location="1" name="56138.74c" path="1500K/Ba_138_1500K.ace" temperature="1.293e-07" zaid="56138"/>
<ace_table alias="Ba-140.74c" awr="138.708" location="1" name="56140.74c" path="1500K/Ba_140_1500K.ace" temperature="1.293e-07" zaid="56140"/>
<ace_table alias="La-138.74c" awr="136.722" location="1" name="57138.74c" path="1500K/La_138_1500K.ace" temperature="1.293e-07" zaid="57138"/>
<ace_table alias="La-139.74c" awr="137.71" location="1" name="57139.74c" path="1500K/La_139_1500K.ace" temperature="1.293e-07" zaid="57139"/>
<ace_table alias="La-140.74c" awr="138.708" location="1" name="57140.74c" path="1500K/La_140_1500K.ace" temperature="1.293e-07" zaid="57140"/>
<ace_table alias="Ce-136.74c" awr="134.74" location="1" name="58136.74c" path="1500K/Ce_136_1500K.ace" temperature="1.293e-07" zaid="58136"/>
<ace_table alias="Ce-138.74c" awr="136.721" location="1" name="58138.74c" path="1500K/Ce_138_1500K.ace" temperature="1.293e-07" zaid="58138"/>
<ace_table alias="Ce-139.74c" awr="137.713" location="1" name="58139.74c" path="1500K/Ce_139_1500K.ace" temperature="1.293e-07" zaid="58139"/>
<ace_table alias="Ce-140.74c" awr="138.704" location="1" name="58140.74c" path="1500K/Ce_140_1500K.ace" temperature="1.293e-07" zaid="58140"/>
<ace_table alias="Ce-141.74c" awr="139.7" location="1" name="58141.74c" path="1500K/Ce_141_1500K.ace" temperature="1.293e-07" zaid="58141"/>
<ace_table alias="Ce-142.74c" awr="140.69" location="1" name="58142.74c" path="1500K/Ce_142_1500K.ace" temperature="1.293e-07" zaid="58142"/>
<ace_table alias="Ce-143.74c" awr="141.685" location="1" name="58143.74c" path="1500K/Ce_143_1500K.ace" temperature="1.293e-07" zaid="58143"/>
<ace_table alias="Ce-144.74c" awr="142.678" location="1" name="58144.74c" path="1500K/Ce_144_1500K.ace" temperature="1.293e-07" zaid="58144"/>
<ace_table alias="Pr-141.74c" awr="139.697" location="1" name="59141.74c" path="1500K/Pr_141_1500K.ace" temperature="1.293e-07" zaid="59141"/>
<ace_table alias="Pr-142.74c" awr="140.691" location="1" name="59142.74c" path="1500K/Pr_142_1500K.ace" temperature="1.293e-07" zaid="59142"/>
<ace_table alias="Pr-143.74c" awr="141.683" location="1" name="59143.74c" path="1500K/Pr_143_1500K.ace" temperature="1.293e-07" zaid="59143"/>
<ace_table alias="Nd-142.74c" awr="140.689" location="1" name="60142.74c" path="1500K/Nd_142_1500K.ace" temperature="1.293e-07" zaid="60142"/>
<ace_table alias="Nd-143.74c" awr="141.682" location="1" name="60143.74c" path="1500K/Nd_143_1500K.ace" temperature="1.293e-07" zaid="60143"/>
<ace_table alias="Nd-144.74c" awr="142.674" location="1" name="60144.74c" path="1500K/Nd_144_1500K.ace" temperature="1.293e-07" zaid="60144"/>
<ace_table alias="Nd-145.74c" awr="143.668" location="1" name="60145.74c" path="1500K/Nd_145_1500K.ace" temperature="1.293e-07" zaid="60145"/>
<ace_table alias="Nd-146.74c" awr="144.66" location="1" name="60146.74c" path="1500K/Nd_146_1500K.ace" temperature="1.293e-07" zaid="60146"/>
<ace_table alias="Nd-147.74c" awr="145.654" location="1" name="60147.74c" path="1500K/Nd_147_1500K.ace" temperature="1.293e-07" zaid="60147"/>
<ace_table alias="Nd-148.74c" awr="146.646" location="1" name="60148.74c" path="1500K/Nd_148_1500K.ace" temperature="1.293e-07" zaid="60148"/>
<ace_table alias="Nd-150.74c" awr="148.633" location="1" name="60150.74c" path="1500K/Nd_150_1500K.ace" temperature="1.293e-07" zaid="60150"/>
<ace_table alias="Pm-147.74c" awr="145.653" location="1" name="61147.74c" path="1500K/Pm_147_1500K.ace" temperature="1.293e-07" zaid="61147"/>
<ace_table alias="Pm-148.74c" awr="146.646" location="1" name="61148.74c" path="1500K/Pm_148_1500K.ace" temperature="1.293e-07" zaid="61148"/>
<ace_table alias="Pm-149.74c" awr="146.65" location="1" name="61149.74c" path="1500K/Pm_148m1_1500K.ace" temperature="1.293e-07" zaid="61149"/>
<ace_table alias="Pm-149.74c" awr="147.639" location="1" name="61149.74c" path="1500K/Pm_149_1500K.ace" temperature="1.293e-07" zaid="61149"/>
<ace_table alias="Pm-151.74c" awr="149.625" location="1" name="61151.74c" path="1500K/Pm_151_1500K.ace" temperature="1.293e-07" zaid="61151"/>
<ace_table alias="Sm-144.74c" awr="142.676" location="1" name="62144.74c" path="1500K/Sm_144_1500K.ace" temperature="1.293e-07" zaid="62144"/>
<ace_table alias="Sm-147.74c" awr="145.653" location="1" name="62147.74c" path="1500K/Sm_147_1500K.ace" temperature="1.293e-07" zaid="62147"/>
<ace_table alias="Sm-148.74c" awr="146.644" location="1" name="62148.74c" path="1500K/Sm_148_1500K.ace" temperature="1.293e-07" zaid="62148"/>
<ace_table alias="Sm-149.74c" awr="147.638" location="1" name="62149.74c" path="1500K/Sm_149_1500K.ace" temperature="1.293e-07" zaid="62149"/>
<ace_table alias="Sm-150.74c" awr="148.629" location="1" name="62150.74c" path="1500K/Sm_150_1500K.ace" temperature="1.293e-07" zaid="62150"/>
<ace_table alias="Sm-151.74c" awr="149.623" location="1" name="62151.74c" path="1500K/Sm_151_1500K.ace" temperature="1.293e-07" zaid="62151"/>
<ace_table alias="Sm-152.74c" awr="150.615" location="1" name="62152.74c" path="1500K/Sm_152_1500K.ace" temperature="1.293e-07" zaid="62152"/>
<ace_table alias="Sm-153.74c" awr="151.608" location="1" name="62153.74c" path="1500K/Sm_153_1500K.ace" temperature="1.293e-07" zaid="62153"/>
<ace_table alias="Sm-154.74c" awr="152.6" location="1" name="62154.74c" path="1500K/Sm_154_1500K.ace" temperature="1.293e-07" zaid="62154"/>
<ace_table alias="Eu-151.74c" awr="149.62" location="1" name="63151.74c" path="1500K/Eu_151_1500K.ace" temperature="1.293e-07" zaid="63151"/>
<ace_table alias="Eu-152.74c" awr="150.617" location="1" name="63152.74c" path="1500K/Eu_152_1500K.ace" temperature="1.293e-07" zaid="63152"/>
<ace_table alias="Eu-153.74c" awr="151.608" location="1" name="63153.74c" path="1500K/Eu_153_1500K.ace" temperature="1.293e-07" zaid="63153"/>
<ace_table alias="Eu-154.74c" awr="152.6" location="1" name="63154.74c" path="1500K/Eu_154_1500K.ace" temperature="1.293e-07" zaid="63154"/>
<ace_table alias="Eu-155.74c" awr="153.59" location="1" name="63155.74c" path="1500K/Eu_155_1500K.ace" temperature="1.293e-07" zaid="63155"/>
<ace_table alias="Eu-156.74c" awr="154.586" location="1" name="63156.74c" path="1500K/Eu_156_1500K.ace" temperature="1.293e-07" zaid="63156"/>
<ace_table alias="Eu-157.74c" awr="155.577" location="1" name="63157.74c" path="1500K/Eu_157_1500K.ace" temperature="1.293e-07" zaid="63157"/>
<ace_table alias="Gd-152.74c" awr="150.615" location="1" name="64152.74c" path="1500K/Gd_152_1500K.ace" temperature="1.293e-07" zaid="64152"/>
<ace_table alias="Gd-153.74c" awr="151.608" location="1" name="64153.74c" path="1500K/Gd_153_1500K.ace" temperature="1.293e-07" zaid="64153"/>
<ace_table alias="Gd-154.74c" awr="152.599" location="1" name="64154.74c" path="1500K/Gd_154_1500K.ace" temperature="1.293e-07" zaid="64154"/>
<ace_table alias="Gd-155.74c" awr="153.592" location="1" name="64155.74c" path="1500K/Gd_155_1500K.ace" temperature="1.293e-07" zaid="64155"/>
<ace_table alias="Gd-156.74c" awr="154.583" location="1" name="64156.74c" path="1500K/Gd_156_1500K.ace" temperature="1.293e-07" zaid="64156"/>
<ace_table alias="Gd-157.74c" awr="155.576" location="1" name="64157.74c" path="1500K/Gd_157_1500K.ace" temperature="1.293e-07" zaid="64157"/>
<ace_table alias="Gd-158.74c" awr="156.567" location="1" name="64158.74c" path="1500K/Gd_158_1500K.ace" temperature="1.293e-07" zaid="64158"/>
<ace_table alias="Gd-160.74c" awr="158.553" location="1" name="64160.74c" path="1500K/Gd_160_1500K.ace" temperature="1.293e-07" zaid="64160"/>
<ace_table alias="Tb-159.74c" awr="157.56" location="1" name="65159.74c" path="1500K/Tb_159_1500K.ace" temperature="1.293e-07" zaid="65159"/>
<ace_table alias="Tb-160.74c" awr="158.553" location="1" name="65160.74c" path="1500K/Tb_160_1500K.ace" temperature="1.293e-07" zaid="65160"/>
<ace_table alias="Dy-156.74c" awr="154.585" location="1" name="66156.74c" path="1500K/Dy_156_1500K.ace" temperature="1.293e-07" zaid="66156"/>
<ace_table alias="Dy-158.74c" awr="156.568" location="1" name="66158.74c" path="1500K/Dy_158_1500K.ace" temperature="1.293e-07" zaid="66158"/>
<ace_table alias="Dy-160.74c" awr="158.551" location="1" name="66160.74c" path="1500K/Dy_160_1500K.ace" temperature="1.293e-07" zaid="66160"/>
<ace_table alias="Dy-161.74c" awr="159.544" location="1" name="66161.74c" path="1500K/Dy_161_1500K.ace" temperature="1.293e-07" zaid="66161"/>
<ace_table alias="Dy-162.74c" awr="160.536" location="1" name="66162.74c" path="1500K/Dy_162_1500K.ace" temperature="1.293e-07" zaid="66162"/>
<ace_table alias="Dy-163.74c" awr="161.529" location="1" name="66163.74c" path="1500K/Dy_163_1500K.ace" temperature="1.293e-07" zaid="66163"/>
<ace_table alias="Dy-164.74c" awr="162.521" location="1" name="66164.74c" path="1500K/Dy_164_1500K.ace" temperature="1.293e-07" zaid="66164"/>
<ace_table alias="Ho-165.74c" awr="163.513" location="1" name="67165.74c" path="1500K/Ho_165_1500K.ace" temperature="1.293e-07" zaid="67165"/>
<ace_table alias="Ho-169.74c" awr="164.507" location="1" name="67169.74c" path="1500K/Ho_166m1_1500K.ace" temperature="1.293e-07" zaid="67169"/>
<ace_table alias="Er-162.74c" awr="160.538" location="1" name="68162.74c" path="1500K/Er_162_1500K.ace" temperature="1.293e-07" zaid="68162"/>
<ace_table alias="Er-164.74c" awr="162.521" location="1" name="68164.74c" path="1500K/Er_164_1500K.ace" temperature="1.293e-07" zaid="68164"/>
<ace_table alias="Er-166.74c" awr="164.505" location="1" name="68166.74c" path="1500K/Er_166_1500K.ace" temperature="1.293e-07" zaid="68166"/>
<ace_table alias="Er-167.74c" awr="165.498" location="1" name="68167.74c" path="1500K/Er_167_1500K.ace" temperature="1.293e-07" zaid="68167"/>
<ace_table alias="Er-168.74c" awr="166.487" location="1" name="68168.74c" path="1500K/Er_168_1500K.ace" temperature="1.293e-07" zaid="68168"/>
<ace_table alias="Er-170.74c" awr="168.476" location="1" name="68170.74c" path="1500K/Er_170_1500K.ace" temperature="1.293e-07" zaid="68170"/>
<ace_table alias="Tm-168.74c" awr="166.492" location="1" name="69168.74c" path="1500K/Tm_168_1500K.ace" temperature="1.293e-07" zaid="69168"/>
<ace_table alias="Tm-169.74c" awr="167.483" location="1" name="69169.74c" path="1500K/Tm_169_1500K.ace" temperature="1.293e-07" zaid="69169"/>
<ace_table alias="Tm-170.74c" awr="168.476" location="1" name="69170.74c" path="1500K/Tm_170_1500K.ace" temperature="1.293e-07" zaid="69170"/>
<ace_table alias="Lu-175.74c" awr="173.438" location="1" name="71175.74c" path="1500K/Lu_175_1500K.ace" temperature="1.293e-07" zaid="71175"/>
<ace_table alias="Lu-176.74c" awr="174.43" location="1" name="71176.74c" path="1500K/Lu_176_1500K.ace" temperature="1.293e-07" zaid="71176"/>
<ace_table alias="Hf-174.74c" awr="172.446" location="1" name="72174.74c" path="1500K/Hf_174_1500K.ace" temperature="1.293e-07" zaid="72174"/>
<ace_table alias="Hf-176.74c" awr="174.429" location="1" name="72176.74c" path="1500K/Hf_176_1500K.ace" temperature="1.293e-07" zaid="72176"/>
<ace_table alias="Hf-177.74c" awr="175.42" location="1" name="72177.74c" path="1500K/Hf_177_1500K.ace" temperature="1.293e-07" zaid="72177"/>
<ace_table alias="Hf-178.74c" awr="176.411" location="1" name="72178.74c" path="1500K/Hf_178_1500K.ace" temperature="1.293e-07" zaid="72178"/>
<ace_table alias="Hf-179.74c" awr="177.413" location="1" name="72179.74c" path="1500K/Hf_179_1500K.ace" temperature="1.293e-07" zaid="72179"/>
<ace_table alias="Hf-180.74c" awr="178.404" location="1" name="72180.74c" path="1500K/Hf_180_1500K.ace" temperature="1.293e-07" zaid="72180"/>
<ace_table alias="Ta-180.74c" awr="178.4016" location="1" name="73180.74c" path="1500K/Ta_180_1500K.ace" temperature="1.293e-07" zaid="73180"/>
<ace_table alias="Ta-181.74c" awr="179.3936" location="1" name="73181.74c" path="1500K/Ta_181_1500K.ace" temperature="1.293e-07" zaid="73181"/>
<ace_table alias="Ta-182.74c" awr="180.387" location="1" name="73182.74c" path="1500K/Ta_182_1500K.ace" temperature="1.293e-07" zaid="73182"/>
<ace_table alias="W-180.74c" awr="178.401" location="1" name="74180.74c" path="1500K/W_180_1500K.ace" temperature="1.293e-07" zaid="74180"/>
<ace_table alias="W-182.74c" awr="180.385" location="1" name="74182.74c" path="1500K/W_182_1500K.ace" temperature="1.293e-07" zaid="74182"/>
<ace_table alias="W-183.74c" awr="181.379" location="1" name="74183.74c" path="1500K/W_183_1500K.ace" temperature="1.293e-07" zaid="74183"/>
<ace_table alias="W-184.74c" awr="182.371" location="1" name="74184.74c" path="1500K/W_184_1500K.ace" temperature="1.293e-07" zaid="74184"/>
<ace_table alias="W-186.74c" awr="184.357" location="1" name="74186.74c" path="1500K/W_186_1500K.ace" temperature="1.293e-07" zaid="74186"/>
<ace_table alias="Re-185.74c" awr="183.3641" location="1" name="75185.74c" path="1500K/Re_185_1500K.ace" temperature="1.293e-07" zaid="75185"/>
<ace_table alias="Re-187.74c" awr="185.3497" location="1" name="75187.74c" path="1500K/Re_187_1500K.ace" temperature="1.293e-07" zaid="75187"/>
<ace_table alias="Ir-191.74c" awr="189.32" location="1" name="77191.74c" path="1500K/Ir_191_1500K.ace" temperature="1.293e-07" zaid="77191"/>
<ace_table alias="Ir-193.74c" awr="191.305" location="1" name="77193.74c" path="1500K/Ir_193_1500K.ace" temperature="1.293e-07" zaid="77193"/>
<ace_table alias="Au-197.74c" awr="195.274" location="1" name="79197.74c" path="1500K/Au_197_1500K.ace" temperature="1.293e-07" zaid="79197"/>
<ace_table alias="Hg-196.74c" awr="194.282" location="1" name="80196.74c" path="1500K/Hg_196_1500K.ace" temperature="1.293e-07" zaid="80196"/>
<ace_table alias="Hg-198.74c" awr="196.266" location="1" name="80198.74c" path="1500K/Hg_198_1500K.ace" temperature="1.293e-07" zaid="80198"/>
<ace_table alias="Hg-199.74c" awr="197.259" location="1" name="80199.74c" path="1500K/Hg_199_1500K.ace" temperature="1.293e-07" zaid="80199"/>
<ace_table alias="Hg-200.74c" awr="198.25" location="1" name="80200.74c" path="1500K/Hg_200_1500K.ace" temperature="1.293e-07" zaid="80200"/>
<ace_table alias="Hg-201.74c" awr="199.244" location="1" name="80201.74c" path="1500K/Hg_201_1500K.ace" temperature="1.293e-07" zaid="80201"/>
<ace_table alias="Hg-202.74c" awr="200.236" location="1" name="80202.74c" path="1500K/Hg_202_1500K.ace" temperature="1.293e-07" zaid="80202"/>
<ace_table alias="Hg-204.74c" awr="202.221" location="1" name="80204.74c" path="1500K/Hg_204_1500K.ace" temperature="1.293e-07" zaid="80204"/>
<ace_table alias="Tl-203.74c" awr="201.229" location="1" name="81203.74c" path="1500K/Tl_203_1500K.ace" temperature="1.293e-07" zaid="81203"/>
<ace_table alias="Tl-205.74c" awr="203.214" location="1" name="81205.74c" path="1500K/Tl_205_1500K.ace" temperature="1.293e-07" zaid="81205"/>
<ace_table alias="Pb-204.74c" awr="202.2208" location="1" name="82204.74c" path="1500K/Pb_204_1500K.ace" temperature="1.293e-07" zaid="82204"/>
<ace_table alias="Pb-206.74c" awr="204.205" location="1" name="82206.74c" path="1500K/Pb_206_1500K.ace" temperature="1.293e-07" zaid="82206"/>
<ace_table alias="Pb-207.74c" awr="205.1979" location="1" name="82207.74c" path="1500K/Pb_207_1500K.ace" temperature="1.293e-07" zaid="82207"/>
<ace_table alias="Pb-208.74c" awr="206.19" location="1" name="82208.74c" path="1500K/Pb_208_1500K.ace" temperature="1.293e-07" zaid="82208"/>
<ace_table alias="Bi-209.74c" awr="207.185" location="1" name="83209.74c" path="1500K/Bi_209_1500K.ace" temperature="1.293e-07" zaid="83209"/>
<ace_table alias="Ra-223.74c" awr="221.103" location="1" name="88223.74c" path="1500K/Ra_223_1500K.ace" temperature="1.293e-07" zaid="88223"/>
<ace_table alias="Ra-224.74c" awr="222.096" location="1" name="88224.74c" path="1500K/Ra_224_1500K.ace" temperature="1.293e-07" zaid="88224"/>
<ace_table alias="Ra-225.74c" awr="223.091" location="1" name="88225.74c" path="1500K/Ra_225_1500K.ace" temperature="1.293e-07" zaid="88225"/>
<ace_table alias="Ra-226.74c" awr="224.084" location="1" name="88226.74c" path="1500K/Ra_226_1500K.ace" temperature="1.293e-07" zaid="88226"/>
<ace_table alias="Ac-225.74c" awr="223.09" location="1" name="89225.74c" path="1500K/Ac_225_1500K.ace" temperature="1.293e-07" zaid="89225"/>
<ace_table alias="Ac-226.74c" awr="224.084" location="1" name="89226.74c" path="1500K/Ac_226_1500K.ace" temperature="1.293e-07" zaid="89226"/>
<ace_table alias="Ac-227.74c" awr="225.077" location="1" name="89227.74c" path="1500K/Ac_227_1500K.ace" temperature="1.293e-07" zaid="89227"/>
<ace_table alias="Th-227.74c" awr="225.077" location="1" name="90227.74c" path="1500K/Th_227_1500K.ace" temperature="1.293e-07" zaid="90227"/>
<ace_table alias="Th-228.74c" awr="226.07" location="1" name="90228.74c" path="1500K/Th_228_1500K.ace" temperature="1.293e-07" zaid="90228"/>
<ace_table alias="Th-229.74c" awr="227.064" location="1" name="90229.74c" path="1500K/Th_229_1500K.ace" temperature="1.293e-07" zaid="90229"/>
<ace_table alias="Th-230.74c" awr="228.057" location="1" name="90230.74c" path="1500K/Th_230_1500K.ace" temperature="1.293e-07" zaid="90230"/>
<ace_table alias="Th-231.74c" awr="229.052" location="1" name="90231.74c" path="1500K/Th_231_1500K.ace" temperature="1.293e-07" zaid="90231"/>
<ace_table alias="Th-232.74c" awr="230.045" location="1" name="90232.74c" path="1500K/Th_232_1500K.ace" temperature="1.293e-07" zaid="90232"/>
<ace_table alias="Th-233.74c" awr="231.04" location="1" name="90233.74c" path="1500K/Th_233_1500K.ace" temperature="1.293e-07" zaid="90233"/>
<ace_table alias="Th-234.74c" awr="232.033" location="1" name="90234.74c" path="1500K/Th_234_1500K.ace" temperature="1.293e-07" zaid="90234"/>
<ace_table alias="Pa-229.74c" awr="227.065" location="1" name="91229.74c" path="1500K/Pa_229_1500K.ace" temperature="1.293e-07" zaid="91229"/>
<ace_table alias="Pa-230.74c" awr="228.058" location="1" name="91230.74c" path="1500K/Pa_230_1500K.ace" temperature="1.293e-07" zaid="91230"/>
<ace_table alias="Pa-231.74c" awr="229.051" location="1" name="91231.74c" path="1500K/Pa_231_1500K.ace" temperature="1.293e-07" zaid="91231"/>
<ace_table alias="Pa-232.74c" awr="230.045" location="1" name="91232.74c" path="1500K/Pa_232_1500K.ace" temperature="1.293e-07" zaid="91232"/>
<ace_table alias="Pa-233.74c" awr="231.038" location="1" name="91233.74c" path="1500K/Pa_233_1500K.ace" temperature="1.293e-07" zaid="91233"/>
<ace_table alias="U-230.74c" awr="228.058" location="1" name="92230.74c" path="1500K/U_230_1500K.ace" temperature="1.293e-07" zaid="92230"/>
<ace_table alias="U-231.74c" awr="229.052" location="1" name="92231.74c" path="1500K/U_231_1500K.ace" temperature="1.293e-07" zaid="92231"/>
<ace_table alias="U-232.74c" awr="230.044" location="1" name="92232.74c" path="1500K/U_232_1500K.ace" temperature="1.293e-07" zaid="92232"/>
<ace_table alias="U-233.74c" awr="231.0377" location="1" name="92233.74c" path="1500K/U_233_1500K.ace" temperature="1.293e-07" zaid="92233"/>
<ace_table alias="U-234.74c" awr="232.0304" location="1" name="92234.74c" path="1500K/U_234_1500K.ace" temperature="1.293e-07" zaid="92234"/>
<ace_table alias="U-235.74c" awr="233.0248" location="1" name="92235.74c" path="1500K/U_235_1500K.ace" temperature="1.293e-07" zaid="92235"/>
<ace_table alias="U-236.74c" awr="234.0178" location="1" name="92236.74c" path="1500K/U_236_1500K.ace" temperature="1.293e-07" zaid="92236"/>
<ace_table alias="U-237.74c" awr="235.0124" location="1" name="92237.74c" path="1500K/U_237_1500K.ace" temperature="1.293e-07" zaid="92237"/>
<ace_table alias="U-238.74c" awr="236.0058" location="1" name="92238.74c" path="1500K/U_238_1500K.ace" temperature="1.293e-07" zaid="92238"/>
<ace_table alias="U-239.74c" awr="237.0007" location="1" name="92239.74c" path="1500K/U_239_1500K.ace" temperature="1.293e-07" zaid="92239"/>
<ace_table alias="U-240.74c" awr="237.9944" location="1" name="92240.74c" path="1500K/U_240_1500K.ace" temperature="1.293e-07" zaid="92240"/>
<ace_table alias="U-241.74c" awr="238.9895" location="1" name="92241.74c" path="1500K/U_241_1500K.ace" temperature="1.293e-07" zaid="92241"/>
<ace_table alias="Np-234.74c" awr="232.032" location="1" name="93234.74c" path="1500K/Np_234_1500K.ace" temperature="1.293e-07" zaid="93234"/>
<ace_table alias="Np-235.74c" awr="233.025" location="1" name="93235.74c" path="1500K/Np_235_1500K.ace" temperature="1.293e-07" zaid="93235"/>
<ace_table alias="Np-236.74c" awr="234.019" location="1" name="93236.74c" path="1500K/Np_236_1500K.ace" temperature="1.293e-07" zaid="93236"/>
<ace_table alias="Np-237.74c" awr="235.0118" location="1" name="93237.74c" path="1500K/Np_237_1500K.ace" temperature="1.293e-07" zaid="93237"/>
<ace_table alias="Np-238.74c" awr="236.006" location="1" name="93238.74c" path="1500K/Np_238_1500K.ace" temperature="1.293e-07" zaid="93238"/>
<ace_table alias="Np-239.74c" awr="236.999" location="1" name="93239.74c" path="1500K/Np_239_1500K.ace" temperature="1.293e-07" zaid="93239"/>
<ace_table alias="Pu-236.74c" awr="234.018" location="1" name="94236.74c" path="1500K/Pu_236_1500K.ace" temperature="1.293e-07" zaid="94236"/>
<ace_table alias="Pu-237.74c" awr="235.012" location="1" name="94237.74c" path="1500K/Pu_237_1500K.ace" temperature="1.293e-07" zaid="94237"/>
<ace_table alias="Pu-238.74c" awr="236.0046" location="1" name="94238.74c" path="1500K/Pu_238_1500K.ace" temperature="1.293e-07" zaid="94238"/>
<ace_table alias="Pu-239.74c" awr="236.9986" location="1" name="94239.74c" path="1500K/Pu_239_1500K.ace" temperature="1.293e-07" zaid="94239"/>
<ace_table alias="Pu-240.74c" awr="237.9916" location="1" name="94240.74c" path="1500K/Pu_240_1500K.ace" temperature="1.293e-07" zaid="94240"/>
<ace_table alias="Pu-241.74c" awr="238.978" location="1" name="94241.74c" path="1500K/Pu_241_1500K.ace" temperature="1.293e-07" zaid="94241"/>
<ace_table alias="Pu-242.74c" awr="239.979" location="1" name="94242.74c" path="1500K/Pu_242_1500K.ace" temperature="1.293e-07" zaid="94242"/>
<ace_table alias="Pu-243.74c" awr="240.974" location="1" name="94243.74c" path="1500K/Pu_243_1500K.ace" temperature="1.293e-07" zaid="94243"/>
<ace_table alias="Pu-244.74c" awr="241.967" location="1" name="94244.74c" path="1500K/Pu_244_1500K.ace" temperature="1.293e-07" zaid="94244"/>
<ace_table alias="Pu-246.74c" awr="243.956" location="1" name="94246.74c" path="1500K/Pu_246_1500K.ace" temperature="1.293e-07" zaid="94246"/>
<ace_table alias="Am-240.74c" awr="237.993" location="1" name="95240.74c" path="1500K/Am_240_1500K.ace" temperature="1.293e-07" zaid="95240"/>
<ace_table alias="Am-241.74c" awr="238.986" location="1" name="95241.74c" path="1500K/Am_241_1500K.ace" temperature="1.293e-07" zaid="95241"/>
<ace_table alias="Am-242m.74c" awr="239.9801" location="1" metastable="1" name="95242.74c" path="1500K/Am_242_1500K.ace" temperature="1.293e-07" zaid="95242"/>
<ace_table alias="Am-249.74c" awr="239.9801" location="1" name="95249.74c" path="1500K/Am_242m1_1500K.ace" temperature="1.293e-07" zaid="95249"/>
<ace_table alias="Am-243.74c" awr="240.9734" location="1" name="95243.74c" path="1500K/Am_243_1500K.ace" temperature="1.293e-07" zaid="95243"/>
<ace_table alias="Am-244.74c" awr="241.968" location="1" name="95244.74c" path="1500K/Am_244_1500K.ace" temperature="1.293e-07" zaid="95244"/>
<ace_table alias="Am-249.74c" awr="241.968" location="1" name="95249.74c" path="1500K/Am_244m1_1500K.ace" temperature="1.293e-07" zaid="95249"/>
<ace_table alias="Cm-240.74c" awr="237.993" location="1" name="96240.74c" path="1500K/Cm_240_1500K.ace" temperature="1.293e-07" zaid="96240"/>
<ace_table alias="Cm-241.74c" awr="238.987" location="1" name="96241.74c" path="1500K/Cm_241_1500K.ace" temperature="1.293e-07" zaid="96241"/>
<ace_table alias="Cm-242.74c" awr="239.979" location="1" name="96242.74c" path="1500K/Cm_242_1500K.ace" temperature="1.293e-07" zaid="96242"/>
<ace_table alias="Cm-243.74c" awr="240.973" location="1" name="96243.74c" path="1500K/Cm_243_1500K.ace" temperature="1.293e-07" zaid="96243"/>
<ace_table alias="Cm-244.74c" awr="241.966" location="1" name="96244.74c" path="1500K/Cm_244_1500K.ace" temperature="1.293e-07" zaid="96244"/>
<ace_table alias="Cm-245.74c" awr="242.96" location="1" name="96245.74c" path="1500K/Cm_245_1500K.ace" temperature="1.293e-07" zaid="96245"/>
<ace_table alias="Cm-246.74c" awr="243.953" location="1" name="96246.74c" path="1500K/Cm_246_1500K.ace" temperature="1.293e-07" zaid="96246"/>
<ace_table alias="Cm-247.74c" awr="244.948" location="1" name="96247.74c" path="1500K/Cm_247_1500K.ace" temperature="1.293e-07" zaid="96247"/>
<ace_table alias="Cm-248.74c" awr="245.941" location="1" name="96248.74c" path="1500K/Cm_248_1500K.ace" temperature="1.293e-07" zaid="96248"/>
<ace_table alias="Cm-249.74c" awr="246.936" location="1" name="96249.74c" path="1500K/Cm_249_1500K.ace" temperature="1.293e-07" zaid="96249"/>
<ace_table alias="Cm-250.74c" awr="247.93" location="1" name="96250.74c" path="1500K/Cm_250_1500K.ace" temperature="1.293e-07" zaid="96250"/>
<ace_table alias="Bk-245.74c" awr="242.961" location="1" name="97245.74c" path="1500K/Bk_245_1500K.ace" temperature="1.293e-07" zaid="97245"/>
<ace_table alias="Bk-246.74c" awr="243.955" location="1" name="97246.74c" path="1500K/Bk_246_1500K.ace" temperature="1.293e-07" zaid="97246"/>
<ace_table alias="Bk-247.74c" awr="244.948" location="1" name="97247.74c" path="1500K/Bk_247_1500K.ace" temperature="1.293e-07" zaid="97247"/>
<ace_table alias="Bk-248.74c" awr="245.942" location="1" name="97248.74c" path="1500K/Bk_248_1500K.ace" temperature="1.293e-07" zaid="97248"/>
<ace_table alias="Bk-249.74c" awr="246.935" location="1" name="97249.74c" path="1500K/Bk_249_1500K.ace" temperature="1.293e-07" zaid="97249"/>
<ace_table alias="Bk-250.74c" awr="247.93" location="1" name="97250.74c" path="1500K/Bk_250_1500K.ace" temperature="1.293e-07" zaid="97250"/>
<ace_table alias="Cf-246.74c" awr="243.955" location="1" name="98246.74c" path="1500K/Cf_246_1500K.ace" temperature="1.293e-07" zaid="98246"/>
<ace_table alias="Cf-248.74c" awr="245.941" location="1" name="98248.74c" path="1500K/Cf_248_1500K.ace" temperature="1.293e-07" zaid="98248"/>
<ace_table alias="Cf-249.74c" awr="246.935" location="1" name="98249.74c" path="1500K/Cf_249_1500K.ace" temperature="1.293e-07" zaid="98249"/>
<ace_table alias="Cf-250.74c" awr="247.928" location="1" name="98250.74c" path="1500K/Cf_250_1500K.ace" temperature="1.293e-07" zaid="98250"/>
<ace_table alias="Cf-251.74c" awr="248.923" location="1" name="98251.74c" path="1500K/Cf_251_1500K.ace" temperature="1.293e-07" zaid="98251"/>
<ace_table alias="Cf-252.74c" awr="249.916" location="1" name="98252.74c" path="1500K/Cf_252_1500K.ace" temperature="1.293e-07" zaid="98252"/>
<ace_table alias="Cf-253.74c" awr="250.911" location="1" name="98253.74c" path="1500K/Cf_253_1500K.ace" temperature="1.293e-07" zaid="98253"/>
<ace_table alias="Cf-254.74c" awr="251.905" location="1" name="98254.74c" path="1500K/Cf_254_1500K.ace" temperature="1.293e-07" zaid="98254"/>
<ace_table alias="Es-251.74c" awr="248.923" location="1" name="99251.74c" path="1500K/Es_251_1500K.ace" temperature="1.293e-07" zaid="99251"/>
<ace_table alias="Es-252.74c" awr="249.917" location="1" name="99252.74c" path="1500K/Es_252_1500K.ace" temperature="1.293e-07" zaid="99252"/>
<ace_table alias="Es-253.74c" awr="250.911" location="1" name="99253.74c" path="1500K/Es_253_1500K.ace" temperature="1.293e-07" zaid="99253"/>
<ace_table alias="Es-254.74c" awr="251.905" location="1" name="99254.74c" path="1500K/Es_254_1500K.ace" temperature="1.293e-07" zaid="99254"/>
<ace_table alias="Es-259.74c" awr="251.905" location="1" name="99259.74c" path="1500K/Es_254m1_1500K.ace" temperature="1.293e-07" zaid="99259"/>
<ace_table alias="Es-255.74c" awr="252.899" location="1" name="99255.74c" path="1500K/Es_255_1500K.ace" temperature="1.293e-07" zaid="99255"/>
<ace_table alias="Fm-255.74c" awr="252.899" location="1" name="100255.74c" path="1500K/Fm_255_1500K.ace" temperature="1.293e-07" 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"/>

View file

@ -453,12 +453,12 @@
<ace_table alias="Co-59.12c" awr="58.426899" location="1" name="27059.12c" path="27059ENDF7.ace" temperature="1.034e-07" zaid="27059"/>
<ace_table alias="Co-59.15c" awr="58.426899" location="47907" name="27059.15c" path="27059ENDF7.ace" temperature="1.293e-07" zaid="27059"/>
<ace_table alias="Co-59.18c" awr="58.426899" location="95695" name="27059.18c" path="27059ENDF7.ace" temperature="1.551e-07" zaid="27059"/>
<ace_table alias="Co-158m.03c" awr="57.438099" location="9465" metastable="1" name="27358.03c" path="27358ENDF7.ace" temperature="2.585e-08" zaid="27358"/>
<ace_table alias="Co-158m.06c" awr="57.438099" location="12631" metastable="1" name="27358.06c" path="27358ENDF7.ace" temperature="5.17e-08" zaid="27358"/>
<ace_table alias="Co-158m.09c" awr="57.438099" location="15789" metastable="1" name="27358.09c" path="27358ENDF7.ace" temperature="7.756e-08" zaid="27358"/>
<ace_table alias="Co-158m.12c" awr="57.438099" location="1" metastable="1" name="27358.12c" path="27358ENDF7.ace" temperature="1.034e-07" zaid="27358"/>
<ace_table alias="Co-158m.15c" awr="57.438099" location="3152" metastable="1" name="27358.15c" path="27358ENDF7.ace" temperature="1.293e-07" zaid="27358"/>
<ace_table alias="Co-158m.18c" awr="57.438099" location="6305" metastable="1" name="27358.18c" path="27358ENDF7.ace" temperature="1.551e-07" zaid="27358"/>
<ace_table alias="Co-58m.03c" awr="57.438099" location="9465" metastable="1" name="27358.03c" path="27358ENDF7.ace" temperature="2.585e-08" zaid="27358"/>
<ace_table alias="Co-58m.06c" awr="57.438099" location="12631" metastable="1" name="27358.06c" path="27358ENDF7.ace" temperature="5.17e-08" zaid="27358"/>
<ace_table alias="Co-58m.09c" awr="57.438099" location="15789" metastable="1" name="27358.09c" path="27358ENDF7.ace" temperature="7.756e-08" zaid="27358"/>
<ace_table alias="Co-58m.12c" awr="57.438099" location="1" metastable="1" name="27358.12c" path="27358ENDF7.ace" temperature="1.034e-07" zaid="27358"/>
<ace_table alias="Co-58m.15c" awr="57.438099" location="3152" metastable="1" name="27358.15c" path="27358ENDF7.ace" temperature="1.293e-07" zaid="27358"/>
<ace_table alias="Co-58m.18c" awr="57.438099" location="6305" metastable="1" name="27358.18c" path="27358ENDF7.ace" temperature="1.551e-07" zaid="27358"/>
<ace_table alias="Ni-Nat.03c" awr="58.1838" location="309404" name="28000.03c" path="28000JNDL32.ace" temperature="2.585e-08" zaid="28000"/>
<ace_table alias="Ni-Nat.06c" awr="58.1838" location="413232" name="28000.06c" path="28000JNDL32.ace" temperature="5.17e-08" zaid="28000"/>
<ace_table alias="Ni-Nat.09c" awr="58.1838" location="516809" name="28000.09c" path="28000JNDL32.ace" temperature="7.756e-08" zaid="28000"/>
@ -2422,12 +2422,12 @@
<ace_table alias="Am-241.12c" awr="238.985992" location="1" name="95241.12c" path="95241ENDF7.ace" temperature="1.034e-07" zaid="95241"/>
<ace_table alias="Am-241.15c" awr="238.985992" location="31077" name="95241.15c" path="95241ENDF7.ace" temperature="1.293e-07" zaid="95241"/>
<ace_table alias="Am-241.18c" awr="238.985992" location="61491" name="95241.18c" path="95241ENDF7.ace" temperature="1.551e-07" zaid="95241"/>
<ace_table alias="Am-242.03c" awr="239.980103" location="94457" metastable="1" name="95242.03c" path="95242ENDF7.ace" temperature="2.585e-08" zaid="95242"/>
<ace_table alias="Am-242.06c" awr="239.980103" location="126665" metastable="1" name="95242.06c" path="95242ENDF7.ace" temperature="5.17e-08" zaid="95242"/>
<ace_table alias="Am-242.09c" awr="239.980103" location="158587" metastable="1" name="95242.09c" path="95242ENDF7.ace" temperature="7.756e-08" zaid="95242"/>
<ace_table alias="Am-242.12c" awr="239.980103" location="1" metastable="1" name="95242.12c" path="95242ENDF7.ace" temperature="1.034e-07" zaid="95242"/>
<ace_table alias="Am-242.15c" awr="239.980103" location="31580" metastable="1" name="95242.15c" path="95242ENDF7.ace" temperature="1.293e-07" zaid="95242"/>
<ace_table alias="Am-242.18c" awr="239.980103" location="63058" metastable="1" name="95242.18c" path="95242ENDF7.ace" temperature="1.551e-07" zaid="95242"/>
<ace_table alias="Am-242.03c" awr="239.980103" location="94457" name="95242.03c" path="95242ENDF7.ace" temperature="2.585e-08" zaid="95242"/>
<ace_table alias="Am-242.06c" awr="239.980103" location="126665" name="95242.06c" path="95242ENDF7.ace" temperature="5.17e-08" zaid="95242"/>
<ace_table alias="Am-242.09c" awr="239.980103" location="158587" name="95242.09c" path="95242ENDF7.ace" temperature="7.756e-08" zaid="95242"/>
<ace_table alias="Am-242.12c" awr="239.980103" location="1" name="95242.12c" path="95242ENDF7.ace" temperature="1.034e-07" zaid="95242"/>
<ace_table alias="Am-242.15c" awr="239.980103" location="31580" name="95242.15c" path="95242ENDF7.ace" temperature="1.293e-07" zaid="95242"/>
<ace_table alias="Am-242.18c" awr="239.980103" location="63058" name="95242.18c" path="95242ENDF7.ace" temperature="1.551e-07" zaid="95242"/>
<ace_table alias="Am-243.03c" awr="240.973404" location="101763" name="95243.03c" path="95243ENDF7.ace" temperature="2.585e-08" zaid="95243"/>
<ace_table alias="Am-243.06c" awr="240.973404" location="142713" name="95243.06c" path="95243ENDF7.ace" temperature="5.17e-08" zaid="95243"/>
<ace_table alias="Am-243.09c" awr="240.973404" location="180357" name="95243.09c" path="95243ENDF7.ace" temperature="7.756e-08" zaid="95243"/>

View file

@ -32,7 +32,10 @@ for f in files:
req = urlopen(url)
# Get file size from header
file_size = int(req.info().getheaders('Content-Length')[0])
if sys.version_info[0] < 3:
file_size = int(req.info().getheaders('Content-Length')[0])
else:
file_size = req.length
downloaded = 0
# Check if file already downloaded
@ -126,14 +129,14 @@ if not response or response.lower().startswith('y'):
# loop around ace directories
for d in ace_dirs:
print('Coverting {0}...'.format(d))
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(' Coverting {0}...'.format(os.path.split(f)[1]))
print(' Converting {0}...'.format(os.path.split(f)[1]))
ascii_to_binary(f, f)
# Change cross_sections.xml file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View file

@ -23,7 +23,7 @@ sys.path.insert(0, os.path.abspath('../sphinxext'))
# Add any Sphinx extension module names here, as strings. They can be extensions
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
extensions = ['sphinx.ext.pngmath']
extensions = ['sphinx.ext.pngmath', 'sphinxcontrib.tikz']
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
@ -48,7 +48,7 @@ copyright = u'2011-2014, Massachusetts Institute of Technology'
# The short X.Y version.
version = "0.6"
# The full version, including alpha/beta/rc tags.
release = "0.6.0"
release = "0.6.1"
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
@ -188,7 +188,14 @@ latex_documents = [
u'Massachusetts Institute of Technology', 'manual'),
]
latex_elements = {'preamble': '\\usepackage{enumitem}\\setlistdepth{9}'}
latex_elements = {
'preamble': '''
\usepackage{enumitem}
\setlistdepth{9}
\usepackage{tikz}
\usetikzlibrary{shapes,snakes,shadows,arrows,calc,decorations.markings,patterns,fit,matrix,spy}
'''
}
# The name of an image file (relative to this directory) to place at the top of
# the title page.

View file

@ -4,6 +4,13 @@
State Point Binary File Specifications
======================================
-----------
Revision 12
-----------
Same as revision 11, except **tallies(i) % scatt_order(j)** is now **tallies(i)
% moment_order(j)**.
-----------
Revision 11
-----------
@ -218,13 +225,13 @@ if (run_mode == MODE_EIGENVALUE)
**integer(4) tallies(i) % score_bins(j)**
Values of specified scoring bins (e.g. SCORE_FLUX).
*do j = 1, tallies(i) % n_score_bins*
**integer(4) tallies(i) % scatt_order(j)**
Scattering Order specified scoring bins.
**integer(4) tallies(i) % n_score_bins**
Number of scoring bins without accounting for those added by
@ -265,7 +272,7 @@ if (tallies_on > 0)
*do j = 1, size(tallies(i) % scores, 1)*
**real(8) tallies(i) % scores(j,k) % sum**
Accumulated sum for the j-th score and k-th filter of the
i-th tally
@ -295,7 +302,7 @@ if (run_mode == MODE_EIGENVALUE and source_present)
Energy of the i-th source particle.
-----------
Revision 10
Revision 10
-----------
**integer(4) FILETYPE_STATEPOINT**
@ -508,13 +515,13 @@ if (run_mode == MODE_EIGENVALUE)
**integer(4) tallies(i) % score_bins(j)**
Values of specified scoring bins (e.g. SCORE_FLUX).
*do j = 1, tallies(i) % n_score_bins*
**integer(4) tallies(i) % scatt_order(j)**
Scattering Order specified scoring bins.
**integer(4) tallies(i) % n_score_bins**
Number of scoring bins without accounting for those added by
@ -551,7 +558,7 @@ if (tallies_on > 0)
*do j = 1, size(tallies(i) % scores, 1)*
**real(8) tallies(i) % scores(j,k) % sum**
Accumulated sum for the j-th score and k-th filter of the
i-th tally
@ -760,13 +767,13 @@ if (run_mode == MODE_EIGENVALUE)
**integer(4) tallies(i) % score_bins(j)**
Values of specified scoring bins (e.g. SCORE_FLUX).
*do j = 1, tallies(i) % n_score_bins*
**integer(4) tallies(i) % scatt_order(j)**
Scattering Order specified scoring bins.
**integer(4) tallies(i) % n_score_bins**
Number of scoring bins without accounting for those added by
@ -803,7 +810,7 @@ if (tallies_on > 0)
*do j = 1, size(tallies(i) % scores, 1)*
**real(8) tallies(i) % scores(j,k) % sum**
Accumulated sum for the j-th score and k-th filter of the
i-th tally
@ -1008,13 +1015,13 @@ if (run_mode == MODE_EIGENVALUE)
**integer(4) tallies(i) % score_bins(j)**
Values of specified scoring bins (e.g. SCORE_FLUX).
*do j = 1, tallies(i) % n_score_bins*
**integer(4) tallies(i) % scatt_order(j)**
Scattering Order specified scoring bins.
**integer(4) tallies(i) % n_score_bins**
Number of scoring bins without accounting for those added by
@ -1051,7 +1058,7 @@ if (tallies_on > 0)
*do j = 1, size(tallies(i) % scores, 1)*
**real(8) tallies(i) % scores(j,k) % sum**
Accumulated sum for the j-th score and k-th filter of the
i-th tally
@ -1240,13 +1247,13 @@ if (run_mode == MODE_EIGENVALUE)
**integer(4) tallies(i) % score_bins(j)**
Values of specified scoring bins (e.g. SCORE_FLUX).
*do j = 1, tallies(i) % n_score_bins*
**integer(4) tallies(i) % scatt_order(j)**
Scattering Order specified scoring bins.
**integer(4) tallies(i) % n_score_bins**
Number of scoring bins without accounting for those added by
@ -1283,7 +1290,7 @@ if (tallies_on > 0)
*do j = 1, size(tallies(i) % scores, 1)*
**real(8) tallies(i) % scores(j,k) % sum**
Accumulated sum for the j-th score and k-th filter of the
i-th tally
@ -1504,7 +1511,7 @@ if (tallies_on > 0)
*do j = 1, size(tallies(i) % scores, 1)*
**real(8) tallies(i) % scores(j,k) % sum**
Accumulated sum for the j-th score and k-th filter of the
i-th tally
@ -1713,7 +1720,7 @@ if (tallies_on > 0)
*do j = 1, size(tallies(i) % scores, 1)*
**real(8) tallies(i) % scores(j,k) % sum**
Accumulated sum for the j-th score and k-th filter of the
i-th tally
@ -1918,7 +1925,7 @@ if (tallies_on > 0)
*do j = 1, size(tallies(i) % scores, 1)*
**real(8) tallies(i) % scores(j,k) % sum**
Accumulated sum for the j-th score and k-th filter of the
i-th tally
@ -2119,7 +2126,7 @@ if (tallies_on > 0)
*do j = 1, size(tallies(i) % scores, 1)*
**real(8) tallies(i) % scores(j,k) % sum**
Accumulated sum for the j-th score and k-th filter of the
i-th tally
@ -2240,7 +2247,7 @@ Revision 2
*do j = 1, size(tallies(i) % scores, 1)*
**real(8) tallies(i) % scores(j,k) % sum**
Accumulated sum for the j-th score and k-th filter of the i-th
tally
@ -2339,7 +2346,7 @@ Revision 1
*do j = 1, size(tallies(i) % scores, 1)*
**real(8) tallies(i) % scores(j,k) % sum**
Accumulated sum for the j-th score and k-th filter of the i-th
tally

View file

@ -0,0 +1,561 @@
.. _methods_cmfd:
================================================================
Nonlinear Diffusion Acceleration - Coarse Mesh Finite Difference
================================================================
This page section discusses how nonlinear diffusion acceleration (NDA) using
coarse mesh finite difference (CMFD) is implemented into OpenMC. Before we get
into the theory, general notation for this section is discussed.
--------
Notation
--------
Before deriving NDA relationships, notation is explained. If a parameter has a
:math:`\overline{\cdot}`, it is surface area-averaged and if it has a
:math:`\overline{\overline\cdot}`, it is volume-averaged. When describing a
specific cell in the geometry, indices :math:`(i,j,k)` are used which correspond
to directions :math:`(x,y,z)`. In most cases, the same operation is performed in
all three directions. To compactly write this, an arbitrary direction set
:math:`(u,v,w)` that corresponds to cell indices :math:`(l,m,n)` is used. Note
that :math:`u` and :math:`l` do not have to correspond to :math:`x` and
:math:`i`. However, if :math:`u` and :math:`l` correspond to :math:`y` and
:math:`j`, :math:`v` and :math:`w` correspond to :math:`x` and :math:`z`
directions. An example of this is shown in the following expression:
.. math::
:label: not1
\sum\limits_{u\in(x,y,z)}\left\langle\overline{J}^{u,g}_{l+1/2,m,n}
\Delta_m^v\Delta_n^w\right\rangle
Here, :math:`u` takes on each direction one at a time. The parameter :math:`J`
is surface area-averaged over the transverse indices :math:`m` and :math:`n`
located at :math:`l+1/2`. Usually, spatial indices are listed as subscripts and
the direction as a superscript. Energy group indices represented by :math:`g`
and :math:`h` are also listed as superscripts here. The group :math:`g` is the
group of interest and, if present, :math:`h` is all groups. Finally, any
parameter surrounded by :math:`\left\langle\cdot\right\rangle` represents a
tally quantity that can be edited from a Monte Carlo (MC) solution.
------
Theory
------
NDA is a diffusion model that has equivalent physics to a transport model. There
are many different methods that can be classified as NDA. The CMFD method is a
type of NDA that represents second order multigroup diffusion equations on a
coarse spatial mesh. Whether a transport model or diffusion model is used to
represent the distribution of neutrons, these models must satisfy the *neutron
balance equation*. This balance is represented by the following formula for a
specific energy group :math:`g` in cell :math:`(l,m,n)`:
.. math::
:label: eq_neut_bal
\sum\limits_{u\in(x,y,z)}\left(\left\langle\overline{J}^{u,g}_{l+1/2,m,n}
\Delta_m^v\Delta_n^w\right\rangle -
\left\langle\overline{J}^{u,g}_{l-1/2,m,n}
\Delta_m^v\Delta_n^w\right\rangle\right)
+
\left\langle\overline{\overline\Sigma}_{t_{l,m,n}}^g
\overline{\overline\phi}_{l,m,n}^g\Delta_l^u\Delta_m^v\Delta_n^w\right\rangle
= \\
\sum\limits_{h=1}^G\left\langle
\overline{\overline{\nu_s\Sigma}}_{s_{l,m,n}}^{h\rightarrow
g}\overline{\overline\phi}_{l,m,n}^h\Delta_l^u\Delta_m^v\Delta_n^w
\right\rangle
+
\frac{1}{k_{eff}}\sum\limits_{h=1}^G
\left\langle\overline{\overline{\nu_f\Sigma}}_{f_{l,m,n}}^{h\rightarrow
g}\overline{\overline\phi}_{l,m,n}^h
\Delta_l^u\Delta_m^v\Delta_n^w\right\rangle.
In eq. :eq:`eq_neut_bal` the parameters are defined as:
* :math:`\left\langle\overline{J}^{u,g}_{l\pm
1/2,m,n}\Delta_m^v\Delta_n^w\right\rangle` --- surface area-integrated net
current over surface :math:`(l\pm 1/2,m,n)` with surface normal in direction
:math:`u` in energy group :math:`g`. By dividing this quantity by the transverse
area, :math:`\Delta_m^v\Delta_n^w`, the surface area-averaged net current can
be computed.
* :math:`\left\langle\overline{\overline\Sigma}_{t_{l,m,n}}^g
\overline{\overline\phi}_{l,m,n}^g\Delta_l^u\Delta_m^v\Delta_n^w\right\rangle`
--- volume-integrated total reaction rate over energy group :math:`g`.
* :math:`\left\langle\overline{\overline{\nu_s\Sigma}}_{s_{l,m,n}}^{h\rightarrow
g}
\overline{\overline\phi}_{l,m,n}^h\Delta_l^u\Delta_m^v\Delta_n^w\right\rangle`
--- volume-integrated scattering production rate of neutrons that begin with
energy in group :math:`h` and exit reaction in group :math:`g`. This reaction
rate also includes the energy transfer of reactions (except fission) that
produce multiple neutrons such as (n, 2n); hence, the need for :math:`\nu_s`
to represent neutron multiplicity.
* :math:`k_{eff}` --- core multiplication factor.
* :math:`\left\langle\overline{\overline{\nu_f\Sigma}}_{f_{l,m,n}}^{h\rightarrow
g}\overline{\overline\phi}_{l,m,n}^h\Delta_l^u\Delta_m^v\Delta_n^w\right\rangle`
--- volume-integrated fission production rate of neutrons from fissions in
group :math:`h` that exit in group :math:`g`.
Each quantity in :math:`\left\langle\cdot\right\rangle` represents a scalar value that
is obtained from an MC tally. A good verification step when using an MC code is
to make sure that tallies satisfy this balance equation within statistics. No
NDA acceleration can be performed if the balance equation is not satisfied.
There are three major steps to consider when performing NDA: (1) calculation of
macroscopic cross sections and nonlinear parameters, (2) solving an eigenvalue
problem with a system of linear equations, and (3) modifying MC source
distribution to align with the NDA solution on a chosen mesh. This process is
illustrated as a flow chart below. After a batch of neutrons
is simulated, NDA can take place. Each of the steps described above is described
in detail in the following sections.
.. tikz:: Flow chart of NDA process. Note "XS" is used for cross section and
"DC" is used for diffusion coefficient.
:libs: shapes, snakes, shadows, arrows, calc, decorations.markings, patterns, fit, matrix, spy
:include: cmfd_tikz/cmfd_flow.tikz
Calculation of Macroscopic Cross Sections
-----------------------------------------
A diffusion model needs macroscopic cross sections and diffusion coefficients to
solve for multigroup fluxes. Cross sections are derived by conserving reaction
rates predicted by MC tallies. From Eq. :eq:`eq_neut_bal`, total, scattering
production and fission production macroscopic cross sections are needed. They are
defined from MC tallies as follows:
.. math::
:label: xs1
\overline{\overline\Sigma}_{t_{l,m,n}}^g \equiv
\frac{\left\langle\overline{\overline\Sigma}_{t_{l,m,n}}^g
\overline{\overline\phi}_{l,m,n}^g\Delta_l^u\Delta_m^v\Delta_n^w\right\rangle}
{\left\langle\overline{\overline\phi}_{l,m,n}^g
\Delta_l^u\Delta_m^v\Delta_n^w\right\rangle},
.. math::
:label: xs2
\overline{\overline{\nu_s\Sigma}}_{s_{l,m,n}}^{h\rightarrow g} \equiv
\frac{\left\langle\overline{\overline{\nu_s\Sigma}}_{s_{l,m,n}}^{h\rightarrow
g}\overline{\overline\phi}_{l,m,n}^h\Delta_l^u\Delta_m^v\Delta_n^w\right\rangle}
{\left\langle\overline{\overline\phi}_{l,m,n}^h
\Delta_l^u\Delta_m^v\Delta_n^w\right\rangle}
and
.. math::
:label: xs3
\overline{\overline{\nu_f\Sigma}}_{f_{l,m,n}}^{h\rightarrow g} \equiv
\frac{\left\langle\overline{\overline{\nu_f\Sigma}}_{f_{l,m,n}}^{h\rightarrow
g}\overline{\overline\phi}_{l,m,n}^h\Delta_l^u\Delta_m^v\Delta_n^w\right\rangle}
{\left\langle\overline{\overline\phi}_{l,m,n}^h\Delta_l^u\Delta_m^v\Delta_n^w\right\rangle}.
In order to fully conserve neutron balance, leakage rates also need to be
preserved. In standard diffusion theory, leakage rates are represented by
diffusion coefficients. Unfortunately, it is not easy in MC to calculate a
single diffusion coefficient for a cell that describes leakage out of each
surface. Luckily, it does not matter what definition of diffusion coefficient is
used because nonlinear equivalence parameters will correct for this
inconsistency. However, depending on the diffusion coefficient definition
chosen, different convergence properties of NDA equations are observed.
Here, we introduce a diffusion coefficient that is derived for a coarse energy
transport reaction rate. This definition can easily be constructed from
MC tallies provided that angular moments of scattering reaction rates can
be obtained. The diffusion coefficient is defined as follows:
.. math::
:label: eq_transD
\overline{\overline D}_{l,m,n}^g =
\frac{\left\langle\overline{\overline\phi}_{l,m,n}^g
\Delta_l^u\Delta_m^v\Delta_n^w\right\rangle}{3
\left\langle\overline{\overline\Sigma}_{tr_{l,m,n}}^g
\overline{\overline\phi}_{l,m,n}^g
\Delta_l^u\Delta_m^v\Delta_n^w\right\rangle},
where
.. math::
:label: xs4
\left\langle\overline{\overline\Sigma}_{tr_{l,m,n}}^g
\overline{\overline\phi}_{l,m,n}^g\Delta_l^u\Delta_m^v\Delta_n^w\right\rangle
=
\left\langle\overline{\overline\Sigma}_{t_{l,m,n}}^g
\overline{\overline\phi}_{l,m,n}^g\Delta_l^u\Delta_m^v\Delta_n^w\right\rangle
\\ -
\left\langle\overline{\overline{\nu_s\Sigma}}_{s1_{l,m,n}}^g
\overline{\overline\phi}_{l,m,n}^g\Delta_l^u\Delta_m^v\Delta_n^w\right\rangle.
Note that the transport reaction rate is calculated from the total reaction rate
reduced by the :math:`P_1` scattering production reaction rate. Equation :eq:`eq_transD`
does not represent the best definition of diffusion coefficients from MC;
however, it is very simple and usually fits into MC tally frameworks
easily. Different methods to calculate more accurate diffusion coefficients can
found in [Herman]_.
CMFD Equations
--------------
The first part of this section is devoted to discussing second-order finite
volume discretization of multigroup diffusion equations. This will be followed
up by the formulation of CMFD equations that are used in this NDA
scheme. When performing second-order finite volume discretization of the
diffusion equation, we need information that relates current to flux. In this
numerical scheme, each cell is coupled only to its direct neighbors. Therefore,
only two types of coupling exist: (1) cell-to-cell coupling and (2)
cell-to-boundary coupling. The derivation of this procedure is referred to as
finite difference diffusion equations and can be found in literature such
as [Hebert]_. These current/flux relationships are as follows:
* cell-to-cell coupling
.. math::
:label: eq_cell_cell
\overline{J}^{u,g}_{l\pm1/2,m,n} = -\frac{2\overline{\overline
D}_{l\pm1,m,n}^g\overline{\overline
D}_{l,m,n}^g}{\overline{\overline D}_{l\pm1,m,n}^g\Delta_l^u +
\overline{\overline
D}_{l,m,n}^g\Delta_{l\pm1}^u}
\left(\pm\overline{\overline{\phi}}_{l\pm1,m,n}^g\mp
\overline{\overline{\phi}}_{l,m,n}^g\right),
* cell-to-boundary coupling
.. math::
:label: eq_cell_bound
\overline{J}^{u,g}_{l\pm1/2,m,n} = \pm\frac{2\overline{\overline
D}_{l,m,n}^g\left(1 -
\beta_{l\pm1/2,m,n}^{u,g}\right)}{4\overline{\overline
D}_{l,m,n}^g\left(1 + \beta_{l\pm1/2,m,n}^{u,g}\right) + \left(1 -
\beta_{l\pm1/2,m,n}^{u,g}\right)\Delta_l^u}\overline{\overline{\phi}}_{l,m,n}^{g}.
In Eqs. :eq:`eq_cell_cell` and :eq:`eq_cell_bound`, the :math:`\pm` refers to
left (:math:`-x`) or right (:math:`+x`) surface in the :math:`x` direction,
back (:math:`-y`) or front (:math:`+y`) surface in the :math:`y` direction and
bottom (:math:`-z`) or top (:math:`+z`) surface in the :math:`z` direction. For
cell-to-boundary coupling, a general albedo, :math:`\beta_{l\pm1/2,m,n}^{u,g}`,
is used. The albedo is defined as the ratio of incoming (:math:`-` superscript)
to outgoing (:math:`+` superscript) partial current on any surface represented
as
.. math::
:label: eq_albedo
\beta_{l\pm1/2,m,n}^{u,g} =
\frac{\overline{J}^{u,g-}_{l\pm1/2,m,n}}{\overline{J}^{u,g+}_{l\pm1/2,m,n}}.
Common boundary conditions are: vacuum (:math:`\beta=0`), reflective
(:math:`\beta=1`) and zero flux (:math:`\beta=-1`). Both eq. :eq:`eq_cell_cell`
and eq. :eq:`eq_cell_bound` can be written in this generic form,
.. math::
:label: eq_dtilde
\overline{J}^{u,g}_{l\pm1/2,m,n} = \widetilde{D}_{l,m,n}^{u,g} \left(\dots\right).
The parameter :math:`\widetilde{D}_{l,m,n}^{u,g}` represents the linear
coupling term between current and flux. These current relationships can be
sustituted into eq. :eq:`eq_neut_bal` to produce a linear system of multigroup
diffusion equations for each spatial cell and energy group. However, a solution
to these equations is not consistent with a higher order transport solution
unless equivalence factors are present. This is because both the diffusion
approximation, governed by Fick's Law, and spatial trunction error will produce
differences. Therefore, a nonlinear parameter,
:math:`\widehat{D}_{l,m,n}^{u,g}`, is added to eqs. :eq:`eq_cell_cell` and
:eq:`eq_cell_bound`. These equations are, respectively,
.. math::
:label: eq_dhat_cell
\overline{J}^{u,g}_{l\pm1/2,m,n} = -\widetilde{D}_{l,m,n}^{u,g}
\left(\pm\overline{\overline{\phi}}_{l\pm1,m,n}^g\mp
\overline{\overline{\phi}}_{l,m,n}^g\right) + \widehat{D}_{l,m,n}^{u,g}
\left(\overline{\overline{\phi}}_{l\pm1,m,n}^g +
\overline{\overline{\phi}}_{l,m,n}^g\right)
and
.. math::
:label: eq_dhat_bound
\overline{J}^{u,g}_{l\pm1/2,m,n} = \pm\widetilde{D}_{l,m,n}^{u,g}
\overline{\overline{\phi}}_{l,m,n}^{g} + \widehat{D}_{l,m,n}^{u,g}
\overline{\overline{\phi}}_{l,m,n}^{g}.
The only unknown in each of these equations is the equivalence parameter. The
current, linear coupling term and flux can either be obtained or derived from
MC tallies. Thus, it is called nonlinear because it is dependent on the flux
which is updated on the next iteration.
Equations :eq:`eq_dhat_cell` and :eq:`eq_dhat_bound` can be substituted into
eq. :eq:`eq_neut_bal` to create a linear system of equations that is consistent
with transport physics. One example of this equation is written for an
interior cell,
.. math::
:label: eq_cmfd_sys
\sum_{u\in
x,y,x}\frac{1}{\Delta_l^u}\left[\left(-\tilde{D}_{l-1/2,m,n}^{u,g} -
\hat{D}_{l-1/2,m,n}^{u,g}\right)\overline{\overline{\phi}}_{l-1,m,n}^g\right.
+ \left(\tilde{D}_{l-1/2,m,n}^{u,g} +
\tilde{D}_{l+1/2,m,n}^{u,g} - \hat{D}_{l-1/2,m,n}^{u,g} +
\hat{D}_{l+1/2,m,n}^{u,g}\right)\overline{\overline{\phi}}_{l,m,n}^g
\\ +
\left. \left(-\tilde{D}_{l+1/2,m,n}^{u,g} +
\hat{D}_{l+1/2,m,n}^{u,g}\right)\overline{\overline{\phi}}_{l+1,m,n}^g
\right] +
\overline{\overline\Sigma}_{t_{l,m,n}}^g\overline{\overline{\phi}}_{l,m,n}^g
- \sum\limits_{h=1}^G\overline{\overline{\nu_s\Sigma}}^{h\rightarrow
g}_{s_{l,m,n}}\overline{\overline{\phi}}_{l,m,n}^h =
\frac{1}{k}\sum\limits_{h=1}^G\overline{\overline{\nu_f\Sigma}}^{h\rightarrow
g}_{f_{l,m,n}}\overline{\overline{\phi}}_{l,m,n}^h.
It should be noted that before substitution, eq. :eq:`eq_neut_bal` was divided
by the volume of the cell, :math:`\Delta_l^u\Delta_m^v\Delta_n^w`. Equation
:eq:`eq_cmfd_sys` can be represented in operator form as
.. math::
:label: eq_CMFDopers
\mathbb{M}\mathbf{\Phi} = \frac{1}{k}\mathbb{F}\mathbf{\Phi},
where :math:`\mathbb{M}` is the neutron loss matrix operator,
:math:`\mathbb{F}` is the neutron production matrix operator,
:math:`\mathbf{\Phi}` is the multigroup flux vector and :math:`k` is the
eigenvalue. This generalized eigenvalue problem is solved to obtain fundamental
mode multigroup fluxes and eigenvalue. In order to produce consistent results
with transport theory from these equations, the neutron balance equation must
have been satisfied by MC tallies. The desire is that CMFD equations will
produce a more accurate source than MC after each fission source generation.
CMFD Feedback
-------------
Now that a more accurate representation of the expected source distribution is
estimated from CMFD, it needs to be communicated back to MC. The first step
in this process is to generate a probability mass function that provides
information about how probable it is for a neutron to be born in a given cell
and energy group. This is represented as
.. math::
:label: eq_cmfd_psrc
p_{l,m,n}^g =
\frac{\sum_{h=1}^{G}\overline{\overline{\nu_f\Sigma}}^{h\rightarrow
g}_{f_{l,m,n}}\overline{\overline{\phi}}_{l,m,n}^h\Delta_l^u\Delta_m^v
\Delta_n^w}{\sum_n\sum_m\sum_l\sum_{h=1}^{G}\overline{
\overline{\nu_f\Sigma}}^{h\rightarrow
g}_{f_{l,m,n}}\overline{\overline{\phi}}_{l,m,n}^h\Delta_l^u\Delta_m^v
\Delta_n^w}.
This equation can be multiplied by the number of source neutrons to obtain an
estimate of the expected number of neutrons to be born in a given cell and
energy group. This distribution can be compared to the MC source distribution
to generate weight adjusted factors defined as
.. math::
:label: eq_waf
f_{l,m,n}^g = \frac{Np_{l,m,n}^g}{\sum\limits_s w_s};\quad s\in
\left(g,l,m,n\right).
The MC source distribution is represented on the same coarse mesh as
CMFD by summing all neutrons' weights, :math:`w_s`, in a given cell and
energy group. MC source weights can then be modified by this weight
adjustment factor so that it matches the CMFD solution on the coarse
mesh,
.. math::
:label: src_mod
w^\prime_s = w_s\times f_{l,m,n}^g;\quad s\in \left(g,l,m,n\right).
It should be noted that heterogeneous information about local coordinates and
energy remain constant throughout this modification process.
------------------------
Implementation in OpenMC
------------------------
The section describes how CMFD was implemented in OpenMC. Before the simulation
begins, a user sets up a CMFD input file that contains the following basic
information:
* CMFD mesh (space and energy),
* boundary conditions at edge of mesh (albedos),
* acceleration region (subset of mesh, optional),
* fission source generation (FSG)/batch that CMFD should begin, and
* whether CMFD feedback should be applied.
It should be noted that for more difficult simulations (e.g., light water
reactors), there are other options available to users such as tally resetting
parameters, effective down-scatter usage, tally estimator, etc. For more
information please see :ref:`usersguide_cmfd`.
Of the options described above, the optional acceleration subset region is an
uncommon feature. Because OpenMC only has a structured Cartesian mesh, mesh
cells may overlay regions that don't contain fissionable material and may be so
far from the core that the neutron flux is very low. If these regions were
included in the CMFD solution, bad estimates of diffusion parameters may result
and affect CMFD feedback. To deal with this, a user can carve out an active
acceleration region from their structured Cartesian mesh. This is illustrated
in diagram below. When placing a CMFD mesh over a geometry, the boundary
conditions must be known at the global edges of the mesh. If the geometry is
complex like the one below, one may have to cover the whole geometry including
the reactor pressure vessel because we know that there is a zero incoming
current boundary condition at the outer edge of the pressure vessel. This is
not viable in practice because neutrons in simulations may not reach mesh cells
that are near the pressure vessel. To circumvent this, one can shrink the mesh
to cover just the core region as shown in the diagram. However, one must still
estimate the boundary conditions at the global boundaries, but at these
locations, they are not readily known. In OpenMC, one can carve out the active
core region from the entire structured Cartesian mesh. This is shown in the
diagram below by the darkened region over the core. The albedo boundary
conditions at the active core/reflector boundary can be tallied indirectly
during the MC simulation with incoming and outgoing partial currents. This
allows the user to not have to worry about neutrons producing adequate tallies
in mesh cells far away from the core.
.. tikz:: Diagram of CMFD acceleration mesh
:libs: shapes, snakes, shadows, arrows, calc, decorations.markings, patterns, fit, matrix, spy
:include: cmfd_tikz/meshfig.tikz
During an MC simulation, CMFD tallies are accumulated. The basic tallies needed
are listed in Table :ref:`tab_tally`. Each tally is performed on a spatial and
energy mesh basis. The surface area-integrated net current is tallied on every
surface of the mesh. OpenMC tally objects are created by the CMFD code
internally, and cross sections are calculated at each CMFD feedback iteration.
The first CMFD iteration, controlled by the user, occurs just after tallies are
communicated to the master processor. Once tallies are collapsed, cross
sections, diffusion coefficients and equivalence parameters are calculated. This
is performed only on the acceleration region if that option has been activated
by the user. Once all diffusion parameters are calculated, CMFD matrices are
formed where energy groups are the inner most iteration index. In OpenMC,
compressed row storage sparse matrices are used due to the sparsity of CMFD
operators. An example of this sparsity is shown for the 3-D BEAVRS model in
figures :ref:`fig_loss` and :ref:`fig_prod` [BEAVRS]_. These matrices represent
an assembly radial mesh, 24 cell mesh in the axial direction and two energy
groups. The loss matrix is 99.92% sparse and the production matrix is 99.99%
sparse. Although the loss matrix looks like it is tridiagonal, it is really a
seven banded matrix with a block diagonal matrix for scattering. The production
matrix is a :math:`2\times 2` block diagonal; however, zeros are present because
no fission neutrons appear with energies in the thermal group.
.. _tab_tally:
.. table:: OpenMC CMFD tally list
+--------------------------------------------------------------------------------------------+----------------+---------------------------+
+--------------------------------------------------------------------------------------------+----------------+---------------------------+
| tally | score | filter |
+============================================================================================+================+===========================+
| \ :math:`\left\langle\overline{\overline\phi}_{l,m,n}^g | flux | mesh, energy |
| \Delta_l^u\Delta_m^v\Delta_n^w\right\rangle` | | |
+--------------------------------------------------------------------------------------------+----------------+---------------------------+
| \ :math:`\left\langle\overline{\overline\Sigma}_{t_{l,m,n}}^g | total | mesh, energy |
| \overline{\overline\phi}_{l,m,n}^g\Delta_l^u\Delta_m^v\Delta_n^w\right\rangle` | | |
+--------------------------------------------------------------------------------------------+----------------+---------------------------+
| \ :math:`\left\langle\overline{\overline{\nu_s\Sigma}}_{s1_{l,m,n}}^g | nu-scatter-1 | mesh, energy |
| \overline{\overline\phi}_{l,m,n}^g\Delta_l^u\Delta_m^v\Delta_n^w\right\rangle` | | |
+--------------------------------------------------------------------------------------------+----------------+---------------------------+
| \ :math:`\left\langle\overline{\overline{\nu_s\Sigma}}_{s_{l,m,n}}^{h\rightarrow g} | nu-scatter | mesh, energy, energyout |
| \overline{\overline\phi}_{l,m,n}^h\Delta_l^u\Delta_m^v\Delta_n^w\right\rangle` | | |
+--------------------------------------------------------------------------------------------+----------------+---------------------------+
| \ :math:`\left\langle\overline{\overline{\nu_f\Sigma}}_{f_{l,m,n}}^{h\rightarrow g} | nu-fission | mesh, energy, energyout |
| \overline{\overline\phi}_{l,m,n}^h\Delta_l^u\Delta_m^v\Delta_n^w\right\rangle` | | |
+--------------------------------------------------------------------------------------------+----------------+---------------------------+
| \ :math:`\left\langle\overline{J}^{u,g}_{l\pm 1/2,m,n}\Delta_m^v\Delta_n^w\right\rangle` | current | mesh, energy |
+--------------------------------------------------------------------------------------------+----------------+---------------------------+
.. _fig_loss:
.. figure:: ../_images/loss.png
:scale: 50
Sparsity of Neutron Loss Operator
.. _fig_prod:
.. figure:: ../_images/prod.png
:scale: 50
Sparsity of Neutron Production Operator
To solve the eigenvalue problem with these matrices, different source iteration
and linear solvers can be used. The most common source iteration solver used is
standard power iteration as described in [Gill]_. To accelerate these source
iterations, a Wielandt shift scheme can be used as discussed in [Park]_. PETSc
solvers were first implemented to perform the linear solution in parallel that
occurs once per source iteration. When using PETSc, different types of parallel
linear solvers and preconditioners can be used. By default, OpenMC uses an
incomplete LU preconditioner and a GMRES Krylov solver. After some initial
studies of parallelization with PETSc, it was observed that because CMFD
matrices are very sparse, solution times do not scale well. An additional
Gauss-Seidel linear solver with Chebyshev acceleration was added that is
similar to the one used for CMFD in CASMO [Rhodes]_ and [Smith]_. This solver
was implemented with a custom section for two energy groups. Because energy
group is the inner most index, a block diagonal is formed when using more than
one group. For two groups, it is easy to invert this diagonal analytically
inside the Gauss-Seidel iterative solver. For more than two groups, this
analytic inversion can still be performed, but with more computational effort.
A standard Gauss-Seidel solver is used for more than two groups.
Besides a power iteration, a Jacobian-free Newton-Krylov method was also
implemented to obtain eigenvalue and multigroup fluxes as described in [Gill]_
and [Knoll]_. This method is not the primary one used, but has gotten recent
attention due to its coupling advantages to other physics such as thermal
hydraulics. Once multigroup fluxes are obtained, a normalized fission source is
calculated in the code using eq. :eq:`eq_cmfd_psrc` directly.
The next step in the process is to compute weight adjustment factors. These are
calculated by taking the ratio of the expected number of neutrons from the CMFD
source distribution to the current number of neutrons in each mesh. It is
straightforward to compute the CMFD number of neutrons because it is the
product between the total starting initial weight of neutrons and the CMFD
normalized fission source distribution. To compute the number of neutrons from
the current MC source, OpenMC sums the statistical
weights of neutrons from the source bank on a given spatial and energy mesh.
Once weight adjustment factors were calculated, each neutron's statistical
weight in the source bank was modified according to its location and energy.
Examples of CMFD simulations using OpenMC can be found in [Herman_Thesis]_.
----------
References
----------
.. [BEAVRS] Nick Horelik, Bryan Herman. *Benchmark for Evaluation And Verification of Reactor
Simulations*. Massachusetts Institute of Technology, http://crpg.mit.edu/pub/beavrs
, 2013.
.. [Gill] Daniel F. Gill. *Newton-Krylov methods for the solution of the k-eigenvalue problem in
multigroup neutronics calculations*. Ph.D. thesis, Pennsylvania State University, 2010.
.. [Hebert] Alain Hebert. *Applied reactor physics*. Presses Internationales Polytechnique,
Montreal, 2009.
.. [Herman] Bryan R. Herman, Benoit Forget, Kord Smith, and Brian N. Aviles. Improved
diffusion coefficients generated from Monte Carlo codes. In *Proceedings of M&C
2013*, Sun Valley, ID, USA, May 5 - 9, 2013.
.. [Herman_Thesis] Bryan R. Herman. *Monte Carlo and Thermal Hydraulic Coupling using
Low-Order Nonlinear Diffusion Acceleration*. Sc.D. thesis,
Massachusetts Institute of Technology, 2014.
.. [Knoll] D.A. Knoll, H. Park, and C. Newman. *Acceleration of k-eigenvalue/criticality
calculations using the Jacobian-free Newton-Krylov method*. Nuclear Science and
Engineering, 167:133140, 2011.
.. [Park] H. Park, D.A. Knoll, and C.K. Newman. *Nonlinear acceleration of transport
criticality problems*. Nuclear Science and Engineering, 172:5265, 2012.
.. [Rhodes] Joel Rhodes and Malte Edenius. *CASMO-4 --- A Fuel Assembly Burnup Program.
Users Manual*. Studsvik of America, ssp-09/443-u rev 0, proprietary edition, 2001.
.. [Smith] Kord S Smith and Joel D Rhodes III. *Full-core, 2-D, LWR core calculations with
CASMO-4E*. In Proceedings of PHYSOR 2002, Seoul, Korea, October 7 - 10, 2002.

View file

@ -0,0 +1,19 @@
\begin{tikzpicture}
\matrix[every node/.style={draw, thick, minimum width=3cm, minimum height=1cm, align=center}, column sep=2cm, row sep=1cm] (m) {
\node[draw, fill=red!40] (start) {Batch $i$ \\ tally NDA}; & \\
\node[draw, diamond, aspect=2, fill=green!40] (cmfd) {Run NDA?}; & \node[draw, fill=red!40] (end) {Batch $i + 1$ \\ tally NDA}; \\
\node[draw, fill=blue!40] (xs) {Calculate XS \& DC}; & \node[draw, fill=blue!40] (modify) {Modify MC Source}; \\
\node[draw, fill=blue!40] (nonlinear) {Calculate Equivalence}; & \node[draw, fill=blue!40] (eqs) {Solve NDA eqs.};\\
};
\begin{scope}[every path/.style={->,very thick,draw}]
\draw (start.south) -- (cmfd.north);
\draw (cmfd.east) -- node[above] {no} (end.west);
\draw (cmfd.south) -- node[right] {yes} (xs.north);
\draw (xs.south) -- (nonlinear.north);
\draw (nonlinear.east) -- (eqs.west);
\draw (eqs.north) -- (modify.south);
\draw (modify.north) -- (end.south);
\end{scope}
\end{tikzpicture}

View file

@ -0,0 +1,628 @@
% these dimensions are determined in arrow_dimms.ods
\def\scale{1.0}
\def\latWidth{0.2808363589*\scale}
\def\RPVOR{3*\scale}
\def\rectW{0.75*\scale}
\def\RPVIR{2.8694005485*\scale}
\def\BarrelIR{2.4547472901*\scale}
\def\BarrelOR{2.5293848766*\scale}
\def\ShieldOR{2.6040224631*\scale}
\def\bafCIRx{0.9829272561*\scale}
\def\bafCIRy{2.1062726917*\scale}
\def\bafCORx{1.0119529842*\scale}
\def\bafCORy{2.1352984197*\scale}
\def\bafMIRx{1.8254363328*\scale}
\def\bafMIRy{1.5445999739*\scale}
\def\bafMORx{1.8544620609*\scale}
\def\bafMORy{1.573625702*\scale}
\tikzset{Assembly/.style={
inner sep=0pt,
text width=\latWidth in,
minimum size=\latWidth in,
draw=black,
align=center
}
}
\def\tkzRPV{(0,0) circle (\RPVIR) (0,0) circle (\RPVOR)}
\def\tkzBarrel{(0,0) circle (\BarrelIR) (0,0) circle (\BarrelOR)}
\def\tkzShields{(0,0) circle (\BarrelOR) (0,0) circle (\ShieldOR)}
\def\tkzBaffCOR{(-\bafCORx, -\bafCORy) rectangle (\bafCORx, \bafCORy)}
\def\tkzBaffCIR{(-\bafCIRx, -\bafCIRy) rectangle (\bafCIRx, \bafCIRy)}
\def\tkzBaffMOR{(-\bafMORx, -\bafMORy) rectangle (\bafMORx, \bafMORy)}
\def\tkzBaffMIR{(-\bafMIRx, -\bafMIRy) rectangle (\bafMIRx, \bafMIRy) }
\def\tkzBaffleC{ \tkzBaffCIR \tkzBaffCOR }
\def\tkzBaffleM{ \tkzBaffMIR \tkzBaffMOR }
\def\tkzBaffCClip{\tkzBaffCIR (-\RPVOR, -\RPVOR) rectangle (\RPVOR, \RPVOR)}
\def\tkzBaffMClip{\tkzBaffMIR (-\RPVOR, -\RPVOR) rectangle (\RPVOR, \RPVOR)}
\def\highenr{blue!50}
\def\midenr{yellow!50}
\def\lowenr{red!50}
\def\lightgray{black!25}
\def\darkgray{black!80}
\begin{tikzpicture}[x=1in,y=1in, xshift=3in]
\scalebox{0.6}{
% draw RPV, barrel, and shield panels
\path[fill=black,even odd rule] \tkzRPV;
\path[fill=black,even odd rule] \tkzBarrel;
\begin{scope}
\clip[rotate around={45:(0,0)}] (-\RPVOR, -\rectW) rectangle (\RPVOR, \rectW) (-\rectW, \RPVOR) rectangle (\rectW, -\RPVOR);
\path[fill=black,even odd rule] \tkzShields;
\end{scope}
% draw assembly row/column headers
\draw[red, thick] ($(-7*\latWidth,\RPVOR/\latWidth*\latWidth)$) node[above, anchor=south] {R} -- ($(-7*\latWidth,4*\latWidth)$);
\draw[red, thick] ($(-6*\latWidth,\RPVOR/\latWidth*\latWidth)$) node[above, anchor=south] {P} -- ($(-6*\latWidth,6*\latWidth)$);
\draw[red, thick] ($(-5*\latWidth,\RPVOR/\latWidth*\latWidth)$) node[above, anchor=south] {N} -- ($(-5*\latWidth,7*\latWidth)$);
\draw[red, thick] ($(-4*\latWidth,\RPVOR/\latWidth*\latWidth)$) node[above, anchor=south] {M} -- ($(-4*\latWidth,7*\latWidth)$);
\draw[red, thick] ($(-3*\latWidth,\RPVOR/\latWidth*\latWidth)$) node[above, anchor=south] {L} -- ($(-3*\latWidth,8*\latWidth)$);
\draw[red, thick] ($(-2*\latWidth,\RPVOR/\latWidth*\latWidth)$) node[above, anchor=south] {K} -- ($(-2*\latWidth,8*\latWidth)$);
\draw[red, thick] ($(-1*\latWidth,\RPVOR/\latWidth*\latWidth)$) node[above, anchor=south] {J} -- ($(-1*\latWidth,8*\latWidth)$);
\draw[red, thick] ($(-0*\latWidth,\RPVOR/\latWidth*\latWidth)$) node[above, anchor=south] {H} -- ($(-0*\latWidth,8*\latWidth)$);
\draw[red, thick] ($(1*\latWidth,\RPVOR/\latWidth*\latWidth)$) node[above, anchor=south] {G} -- ($(1*\latWidth,8*\latWidth)$);
\draw[red, thick] ($(2*\latWidth,\RPVOR/\latWidth*\latWidth)$) node[above, anchor=south] {F} -- ($(2*\latWidth,8*\latWidth)$);
\draw[red, thick] ($(3*\latWidth,\RPVOR/\latWidth*\latWidth)$) node[above, anchor=south] {E} -- ($(3*\latWidth,8*\latWidth)$);
\draw[red, thick] ($(4*\latWidth,\RPVOR/\latWidth*\latWidth)$) node[above, anchor=south] {D} -- ($(4*\latWidth,7*\latWidth)$);
\draw[red, thick] ($(5*\latWidth,\RPVOR/\latWidth*\latWidth)$) node[above, anchor=south] {C} -- ($(5*\latWidth,7*\latWidth)$);
\draw[red, thick] ($(6*\latWidth,\RPVOR/\latWidth*\latWidth)$) node[above, anchor=south] {B} -- ($(6*\latWidth,6*\latWidth)$);
\draw[red, thick] ($(7*\latWidth,\RPVOR/\latWidth*\latWidth)$) node[above, anchor=south] {A} -- ($(7*\latWidth,4*\latWidth)$);
\begin{scope}[rotate=90]
\draw[red, thick] ($(-7*\latWidth,\RPVOR/\latWidth*\latWidth)$) node[left, anchor=east] {15} -- ($(-7*\latWidth,4*\latWidth)$);
\draw[red, thick] ($(-6*\latWidth,\RPVOR/\latWidth*\latWidth)$) node[left, anchor=east] {14} -- ($(-6*\latWidth,6*\latWidth)$);
\draw[red, thick] ($(-5*\latWidth,\RPVOR/\latWidth*\latWidth)$) node[left, anchor=east] {13} -- ($(-5*\latWidth,7*\latWidth)$);
\draw[red, thick] ($(-4*\latWidth,\RPVOR/\latWidth*\latWidth)$) node[left, anchor=east] {12} -- ($(-4*\latWidth,7*\latWidth)$);
\draw[red, thick] ($(-3*\latWidth,\RPVOR/\latWidth*\latWidth)$) node[left, anchor=east] {11} -- ($(-3*\latWidth,8*\latWidth)$);
\draw[red, thick] ($(-2*\latWidth,\RPVOR/\latWidth*\latWidth)$) node[left, anchor=east] {10} -- ($(-2*\latWidth,8*\latWidth)$);
\draw[red, thick] ($(-1*\latWidth,\RPVOR/\latWidth*\latWidth)$) node[left, anchor=east] {9} -- ($(-1*\latWidth,8*\latWidth)$);
\draw[red, thick] ($(-0*\latWidth,\RPVOR/\latWidth*\latWidth)$) node[left, anchor=east] {8} -- ($(-0*\latWidth,8*\latWidth)$);
\draw[red, thick] ($(1*\latWidth,\RPVOR/\latWidth*\latWidth)$) node[left, anchor=east] {7} -- ($(1*\latWidth,8*\latWidth)$);
\draw[red, thick] ($(2*\latWidth,\RPVOR/\latWidth*\latWidth)$) node[left, anchor=east] {6} -- ($(2*\latWidth,8*\latWidth)$);
\draw[red, thick] ($(3*\latWidth,\RPVOR/\latWidth*\latWidth)$) node[left, anchor=east] {5} -- ($(3*\latWidth,8*\latWidth)$);
\draw[red, thick] ($(4*\latWidth,\RPVOR/\latWidth*\latWidth)$) node[left, anchor=east] {4} -- ($(4*\latWidth,7*\latWidth)$);
\draw[red, thick] ($(5*\latWidth,\RPVOR/\latWidth*\latWidth)$) node[left, anchor=east] {3} -- ($(5*\latWidth,7*\latWidth)$);
\draw[red, thick] ($(6*\latWidth,\RPVOR/\latWidth*\latWidth)$) node[left, anchor=east] {2} -- ($(6*\latWidth,6*\latWidth)$);
\draw[red, thick] ($(7*\latWidth,\RPVOR/\latWidth*\latWidth)$) node[left, anchor=east] {1} -- ($(7*\latWidth,4*\latWidth)$);
\end{scope}
% draw fuel assembly nodes
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-8*\latWidth,8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-7*\latWidth,8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-6*\latWidth,8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-5*\latWidth,8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-4*\latWidth,8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-3*\latWidth,8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-2*\latWidth,8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-1*\latWidth,8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-0*\latWidth,8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 1*\latWidth,8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 2*\latWidth,8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 3*\latWidth,8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 4*\latWidth,8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 5*\latWidth,8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 6*\latWidth,8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 7*\latWidth,8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 8*\latWidth,8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-8*\latWidth,7*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-7*\latWidth,7*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-6*\latWidth,7*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-5*\latWidth,7*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-4*\latWidth,7*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-3*\latWidth,7*\latWidth)$) {}; % L1
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-3*\latWidth,7*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-2*\latWidth,7*\latWidth)$) {6}; % K1
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-2*\latWidth,7*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-1*\latWidth,7*\latWidth)$) {}; % J1
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-1*\latWidth,7*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-0*\latWidth,7*\latWidth)$) {6}; % H1
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-0*\latWidth,7*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($( 1*\latWidth,7*\latWidth)$) {}; % G1
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 1*\latWidth,7*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($( 2*\latWidth,7*\latWidth)$) {6}; % F1
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 2*\latWidth,7*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($( 3*\latWidth,7*\latWidth)$) {}; % E1
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 3*\latWidth,7*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 4*\latWidth,7*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 5*\latWidth,7*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 6*\latWidth,7*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 7*\latWidth,7*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 8*\latWidth,7*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-8*\latWidth,6*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-7*\latWidth,6*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-6*\latWidth,6*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-5*\latWidth,6*\latWidth)$) {}; % N2
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-5*\latWidth,6*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-4*\latWidth,6*\latWidth)$) {}; % M2
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-4*\latWidth,6*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-3*\latWidth,6*\latWidth)$) {16}; % L2
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-3*\latWidth,6*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-2*\latWidth,6*\latWidth)$) {}; % K2
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-2*\latWidth,6*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-1*\latWidth,6*\latWidth)$) {20}; % J2
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-1*\latWidth,6*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-0*\latWidth,6*\latWidth)$) {}; % H2
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-0*\latWidth,6*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($( 1*\latWidth,6*\latWidth)$) {20}; % G2
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 1*\latWidth,6*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($( 2*\latWidth,6*\latWidth)$) {}; % F2
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 2*\latWidth,6*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($( 3*\latWidth,6*\latWidth)$) {16}; % E2
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 3*\latWidth,6*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($( 4*\latWidth,6*\latWidth)$) {}; % D2
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 4*\latWidth,6*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($( 5*\latWidth,6*\latWidth)$) {}; % C2
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 5*\latWidth,6*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 6*\latWidth,6*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 7*\latWidth,6*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 8*\latWidth,6*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-8*\latWidth,5*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-7*\latWidth,5*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-6*\latWidth,5*\latWidth)$) {}; % P3
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-6*\latWidth,5*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-5*\latWidth,5*\latWidth)$) {15}; % N3
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-5*\latWidth,5*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-4*\latWidth,5*\latWidth)$) {16}; % M3
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-4*\latWidth,5*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-3*\latWidth,5*\latWidth)$) {}; % L3
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-3*\latWidth,5*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-2*\latWidth,5*\latWidth)$) {16}; % K3
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-2*\latWidth,5*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-1*\latWidth,5*\latWidth)$) {}; % J3
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-1*\latWidth,5*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-0*\latWidth,5*\latWidth)$) {16}; % H3
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-0*\latWidth,5*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($( 1*\latWidth,5*\latWidth)$) {}; % G3
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 1*\latWidth,5*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($( 2*\latWidth,5*\latWidth)$) {16}; % F3
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 2*\latWidth,5*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($( 3*\latWidth,5*\latWidth)$) {}; % E3
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 3*\latWidth,5*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($( 4*\latWidth,5*\latWidth)$) {16}; % D3
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 4*\latWidth,5*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($( 5*\latWidth,5*\latWidth)$) {15}; % C3
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 5*\latWidth,5*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($( 6*\latWidth,5*\latWidth)$) {}; % B3
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 6*\latWidth,5*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 7*\latWidth,5*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 8*\latWidth,5*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-8*\latWidth,4*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-7*\latWidth,4*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-6*\latWidth,4*\latWidth)$) {}; % P4
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-6*\latWidth,4*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-5*\latWidth,4*\latWidth)$) {16}; % N4
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-5*\latWidth,4*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-4*\latWidth,4*\latWidth)$) {}; % M4
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-4*\latWidth,4*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-3*\latWidth,4*\latWidth)$) {16}; % L4
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-3*\latWidth,4*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-2*\latWidth,4*\latWidth)$) {}; % K4
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-2*\latWidth,4*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-1*\latWidth,4*\latWidth)$) {12}; % J4
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-1*\latWidth,4*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-0*\latWidth,4*\latWidth)$) {}; % H4
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-0*\latWidth,4*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($( 1*\latWidth,4*\latWidth)$) {12}; % G4
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 1*\latWidth,4*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($( 2*\latWidth,4*\latWidth)$) {}; % F4
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 2*\latWidth,4*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($( 3*\latWidth,4*\latWidth)$) {16}; % E4
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 3*\latWidth,4*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($( 4*\latWidth,4*\latWidth)$) {}; % D4
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 4*\latWidth,4*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($( 5*\latWidth,4*\latWidth)$) {16}; % C4
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 5*\latWidth,4*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($( 6*\latWidth,4*\latWidth)$) {}; % B4
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 6*\latWidth,4*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 7*\latWidth,4*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 8*\latWidth,4*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-8*\latWidth,3*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-7*\latWidth,3*\latWidth)$) {}; % R5
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-7*\latWidth,3*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-6*\latWidth,3*\latWidth)$) {16}; % P5
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-6*\latWidth,3*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-5*\latWidth,3*\latWidth)$) {}; % N5
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-5*\latWidth,3*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-4*\latWidth,3*\latWidth)$) {16}; % M5
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-4*\latWidth,3*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-3*\latWidth,3*\latWidth)$) {}; % L5
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-3*\latWidth,3*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-2*\latWidth,3*\latWidth)$) {12}; % K5
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-2*\latWidth,3*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-1*\latWidth,3*\latWidth)$) {}; % J5
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-1*\latWidth,3*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-0*\latWidth,3*\latWidth)$) {12}; % H5
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-0*\latWidth,3*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($( 1*\latWidth,3*\latWidth)$) {}; % G5
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 1*\latWidth,3*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($( 2*\latWidth,3*\latWidth)$) {12}; % F5
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 2*\latWidth,3*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($( 3*\latWidth,3*\latWidth)$) {}; % E5
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 3*\latWidth,3*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($( 4*\latWidth,3*\latWidth)$) {16}; % D5
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 4*\latWidth,3*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($( 5*\latWidth,3*\latWidth)$) {}; % C5
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 5*\latWidth,3*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($( 6*\latWidth,3*\latWidth)$) {16}; % B5
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 6*\latWidth,3*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($( 7*\latWidth,3*\latWidth)$) {}; % A5
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 7*\latWidth,3*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 8*\latWidth,3*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-8*\latWidth,2*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-7*\latWidth,2*\latWidth)$) {6}; % R6
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-7*\latWidth,2*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-6*\latWidth,2*\latWidth)$) {}; % P6
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-6*\latWidth,2*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-5*\latWidth,2*\latWidth)$) {16}; % N6
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-5*\latWidth,2*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-4*\latWidth,2*\latWidth)$) {}; % M6
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-4*\latWidth,2*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-3*\latWidth,2*\latWidth)$) {12}; % L6
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-3*\latWidth,2*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-2*\latWidth,2*\latWidth)$) {}; % K6
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-2*\latWidth,2*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-1*\latWidth,2*\latWidth)$) {12}; % J6
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-1*\latWidth,2*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-0*\latWidth,2*\latWidth)$) {}; % H6
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-0*\latWidth,2*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($( 1*\latWidth,2*\latWidth)$) {12}; % G6
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 1*\latWidth,2*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($( 2*\latWidth,2*\latWidth)$) {}; % F6
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 2*\latWidth,2*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($( 3*\latWidth,2*\latWidth)$) {12}; % E6
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 3*\latWidth,2*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($( 4*\latWidth,2*\latWidth)$) {}; % D6
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 4*\latWidth,2*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($( 5*\latWidth,2*\latWidth)$) {16}; % C6
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 5*\latWidth,2*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($( 6*\latWidth,2*\latWidth)$) {}; % B6
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 6*\latWidth,2*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($( 7*\latWidth,2*\latWidth)$) {6}; % A6
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 7*\latWidth,2*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 8*\latWidth,2*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-8*\latWidth,1*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-7*\latWidth,1*\latWidth)$) {}; % R7
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-7*\latWidth,1*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-6*\latWidth,1*\latWidth)$) {20}; % P7
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-6*\latWidth,1*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-5*\latWidth,1*\latWidth)$) {}; % N7
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-5*\latWidth,1*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-4*\latWidth,1*\latWidth)$) {12}; % M7
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-4*\latWidth,1*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-3*\latWidth,1*\latWidth)$) {}; % L7
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-3*\latWidth,1*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-2*\latWidth,1*\latWidth)$) {12}; % K7
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-2*\latWidth,1*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-1*\latWidth,1*\latWidth)$) {}; % J7
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-1*\latWidth,1*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-0*\latWidth,1*\latWidth)$) {16}; % H7
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-0*\latWidth,1*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($( 1*\latWidth,1*\latWidth)$) {}; % G7
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 1*\latWidth,1*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($( 2*\latWidth,1*\latWidth)$) {12}; % F7
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 2*\latWidth,1*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($( 3*\latWidth,1*\latWidth)$) {}; % E7
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 3*\latWidth,1*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($( 4*\latWidth,1*\latWidth)$) {12}; % D7
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 4*\latWidth,1*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($( 5*\latWidth,1*\latWidth)$) {}; % C7
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 5*\latWidth,1*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($( 6*\latWidth,1*\latWidth)$) {20}; % B7
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 6*\latWidth,1*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($( 7*\latWidth,1*\latWidth)$) {}; % A7
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 7*\latWidth,1*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 8*\latWidth,1*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-8*\latWidth,0*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-7*\latWidth,0*\latWidth)$) {6}; % R8
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-7*\latWidth,0*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-6*\latWidth,0*\latWidth)$) {}; % P8
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-6*\latWidth,0*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-5*\latWidth,0*\latWidth)$) {16}; % N8
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-5*\latWidth,0*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-4*\latWidth,0*\latWidth)$) {}; % M8
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-4*\latWidth,0*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-3*\latWidth,0*\latWidth)$) {12}; % L8
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-3*\latWidth,0*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-2*\latWidth,0*\latWidth)$) {}; % K8
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-2*\latWidth,0*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-1*\latWidth,0*\latWidth)$) {16}; % J8
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-1*\latWidth,0*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-0*\latWidth,0*\latWidth)$) {}; % H8
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-0*\latWidth,0*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($( 1*\latWidth,0*\latWidth)$) {16}; % G8
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 1*\latWidth,0*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($( 2*\latWidth,0*\latWidth)$) {}; % F8
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 2*\latWidth,0*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($( 3*\latWidth,0*\latWidth)$) {12}; % E8
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 3*\latWidth,0*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($( 4*\latWidth,0*\latWidth)$) {}; % D8
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 4*\latWidth,0*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($( 5*\latWidth,0*\latWidth)$) {16}; % C8
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 5*\latWidth,0*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($( 6*\latWidth,0*\latWidth)$) {}; % B8
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 6*\latWidth,0*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($( 7*\latWidth,0*\latWidth)$) {6}; % A8
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 7*\latWidth,0*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 8*\latWidth,0*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-8*\latWidth,-1*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-7*\latWidth,-1*\latWidth)$) {}; % R9
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-7*\latWidth,-1*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-6*\latWidth,-1*\latWidth)$) {20}; % P9
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-6*\latWidth,-1*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-5*\latWidth,-1*\latWidth)$) {}; % N9
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-5*\latWidth,-1*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-4*\latWidth,-1*\latWidth)$) {12}; % M9
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-4*\latWidth,-1*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-3*\latWidth,-1*\latWidth)$) {}; % L9
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-3*\latWidth,-1*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-2*\latWidth,-1*\latWidth)$) {12}; % K9
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-2*\latWidth,-1*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-1*\latWidth,-1*\latWidth)$) {}; % J9
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-1*\latWidth,-1*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-0*\latWidth,-1*\latWidth)$) {16}; % H9
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-0*\latWidth,-1*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($( 1*\latWidth,-1*\latWidth)$) {}; % G9
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 1*\latWidth,-1*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($( 2*\latWidth,-1*\latWidth)$) {12}; % F9
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 2*\latWidth,-1*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($( 3*\latWidth,-1*\latWidth)$) {}; % E9
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 3*\latWidth,-1*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($( 4*\latWidth,-1*\latWidth)$) {12}; % D9
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 4*\latWidth,-1*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($( 5*\latWidth,-1*\latWidth)$) {}; % C9
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 5*\latWidth,-1*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($( 6*\latWidth,-1*\latWidth)$) {20}; % B9
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 6*\latWidth,-1*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($( 7*\latWidth,-1*\latWidth)$) {}; % A9
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 7*\latWidth,-1*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 8*\latWidth,-1*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-8*\latWidth,-2*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-7*\latWidth,-2*\latWidth)$) {6}; % R10
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-7*\latWidth,-2*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-6*\latWidth,-2*\latWidth)$) {}; % P10
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-6*\latWidth,-2*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-5*\latWidth,-2*\latWidth)$) {16}; % N10
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-5*\latWidth,-2*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-4*\latWidth,-2*\latWidth)$) {}; % M10
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-4*\latWidth,-2*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-3*\latWidth,-2*\latWidth)$) {12}; % L10
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-3*\latWidth,-2*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-2*\latWidth,-2*\latWidth)$) {}; % K10
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-2*\latWidth,-2*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-1*\latWidth,-2*\latWidth)$) {12}; % J10
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-1*\latWidth,-2*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-0*\latWidth,-2*\latWidth)$) {}; % H10
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-0*\latWidth,-2*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($( 1*\latWidth,-2*\latWidth)$) {12}; % G10
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 1*\latWidth,-2*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($( 2*\latWidth,-2*\latWidth)$) {}; % F10
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 2*\latWidth,-2*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($( 3*\latWidth,-2*\latWidth)$) {12}; % E10
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 3*\latWidth,-2*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($( 4*\latWidth,-2*\latWidth)$) {}; % D10
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 4*\latWidth,-2*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($( 5*\latWidth,-2*\latWidth)$) {16}; % C10
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 5*\latWidth,-2*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($( 6*\latWidth,-2*\latWidth)$) {}; % B10
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 6*\latWidth,-2*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($( 7*\latWidth,-2*\latWidth)$) {6}; % A10
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 7*\latWidth,-2*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 8*\latWidth,-2*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-8*\latWidth,-3*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-7*\latWidth,-3*\latWidth)$) {}; % R11
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-7*\latWidth,-3*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-6*\latWidth,-3*\latWidth)$) {16}; % P11
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-6*\latWidth,-3*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-5*\latWidth,-3*\latWidth)$) {}; % N11
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-5*\latWidth,-3*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-4*\latWidth,-3*\latWidth)$) {16}; % M11
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-4*\latWidth,-3*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-3*\latWidth,-3*\latWidth)$) {}; % L11
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-3*\latWidth,-3*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-2*\latWidth,-3*\latWidth)$) {12}; % K11
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-2*\latWidth,-3*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-1*\latWidth,-3*\latWidth)$) {}; % J11
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-1*\latWidth,-3*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-0*\latWidth,-3*\latWidth)$) {12}; % H11
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-0*\latWidth,-3*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($( 1*\latWidth,-3*\latWidth)$) {}; % G11
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 1*\latWidth,-3*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($( 2*\latWidth,-3*\latWidth)$) {12}; % F11
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 2*\latWidth,-3*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($( 3*\latWidth,-3*\latWidth)$) {}; % E11
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 3*\latWidth,-3*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($( 4*\latWidth,-3*\latWidth)$) {16}; % D11
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 4*\latWidth,-3*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($( 5*\latWidth,-3*\latWidth)$) {}; % C11
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 5*\latWidth,-3*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($( 6*\latWidth,-3*\latWidth)$) {16}; % B11
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 6*\latWidth,-3*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($( 7*\latWidth,-3*\latWidth)$) {}; % A11
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 7*\latWidth,-3*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 8*\latWidth,-3*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-8*\latWidth,-4*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-7*\latWidth,-4*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-6*\latWidth,-4*\latWidth)$) {}; % P12
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-6*\latWidth,-4*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-5*\latWidth,-4*\latWidth)$) {16}; % N12
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-5*\latWidth,-4*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-4*\latWidth,-4*\latWidth)$) {}; % M12
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-4*\latWidth,-4*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-3*\latWidth,-4*\latWidth)$) {16}; % L12
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-3*\latWidth,-4*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-2*\latWidth,-4*\latWidth)$) {}; % K12
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-2*\latWidth,-4*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-1*\latWidth,-4*\latWidth)$) {12}; % J12
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-1*\latWidth,-4*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-0*\latWidth,-4*\latWidth)$) {}; % H12
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-0*\latWidth,-4*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($( 1*\latWidth,-4*\latWidth)$) {12}; % G12
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 1*\latWidth,-4*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($( 2*\latWidth,-4*\latWidth)$) {}; % F12
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 2*\latWidth,-4*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($( 3*\latWidth,-4*\latWidth)$) {16}; % E12
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 3*\latWidth,-4*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($( 4*\latWidth,-4*\latWidth)$) {}; % D12
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 4*\latWidth,-4*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($( 5*\latWidth,-4*\latWidth)$) {16}; % C12
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 5*\latWidth,-4*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($( 6*\latWidth,-4*\latWidth)$) {}; % B12
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 6*\latWidth,-4*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 7*\latWidth,-4*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 8*\latWidth,-4*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-8*\latWidth,-5*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-7*\latWidth,-5*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-6*\latWidth,-5*\latWidth)$) {}; % P13
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-6*\latWidth,-5*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-5*\latWidth,-5*\latWidth)$) {15}; % N13
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-5*\latWidth,-5*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-4*\latWidth,-5*\latWidth)$) {16}; % M13
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-4*\latWidth,-5*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-3*\latWidth,-5*\latWidth)$) {}; % L13
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-3*\latWidth,-5*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-2*\latWidth,-5*\latWidth)$) {16}; % K13
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-2*\latWidth,-5*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-1*\latWidth,-5*\latWidth)$) {}; % J13
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-1*\latWidth,-5*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($(-0*\latWidth,-5*\latWidth)$) {16}; % H13
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-0*\latWidth,-5*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($( 1*\latWidth,-5*\latWidth)$) {}; % G13
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 1*\latWidth,-5*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($( 2*\latWidth,-5*\latWidth)$) {16}; % F13
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 2*\latWidth,-5*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($( 3*\latWidth,-5*\latWidth)$) {}; % E13
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 3*\latWidth,-5*\latWidth)$) {};
\node [Assembly, fill=\midenr] at ($( 4*\latWidth,-5*\latWidth)$) {16}; % D13
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 4*\latWidth,-5*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($( 5*\latWidth,-5*\latWidth)$) {15}; % C13
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 5*\latWidth,-5*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($( 6*\latWidth,-5*\latWidth)$) {}; % B13
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 6*\latWidth,-5*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 7*\latWidth,-5*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 8*\latWidth,-5*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-8*\latWidth,-6*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-7*\latWidth,-6*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-6*\latWidth,-6*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-5*\latWidth,-6*\latWidth)$) {}; % N14
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-5*\latWidth,-6*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-4*\latWidth,-6*\latWidth)$) {}; % M14
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-4*\latWidth,-6*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-3*\latWidth,-6*\latWidth)$) {16}; % L14
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-3*\latWidth,-6*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-2*\latWidth,-6*\latWidth)$) {}; % K14
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-2*\latWidth,-6*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-1*\latWidth,-6*\latWidth)$) {20}; % J14
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-1*\latWidth,-6*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($(-0*\latWidth,-6*\latWidth)$) {}; % H14
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-0*\latWidth,-6*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($( 1*\latWidth,-6*\latWidth)$) {20}; % G14
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 1*\latWidth,-6*\latWidth)$) {};
\node [Assembly, fill=\lowenr] at ($( 2*\latWidth,-6*\latWidth)$) {}; % F14
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 2*\latWidth,-6*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($( 3*\latWidth,-6*\latWidth)$) {16}; % E14
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 3*\latWidth,-6*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($( 4*\latWidth,-6*\latWidth)$) {}; % D14
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 4*\latWidth,-6*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($( 5*\latWidth,-6*\latWidth)$) {}; % C14
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 5*\latWidth,-6*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 6*\latWidth,-6*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 7*\latWidth,-6*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 8*\latWidth,-6*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-8*\latWidth,-7*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-7*\latWidth,-7*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-6*\latWidth,-7*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-5*\latWidth,-7*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-4*\latWidth,-7*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-3*\latWidth,-7*\latWidth)$) {}; % L15
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-3*\latWidth,-7*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-2*\latWidth,-7*\latWidth)$) {6}; % K15
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-2*\latWidth,-7*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-1*\latWidth,-7*\latWidth)$) {}; % J15
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-1*\latWidth,-7*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($(-0*\latWidth,-7*\latWidth)$) {6}; % H15
\node [Assembly, fill=\darkgray, opacity=0.7] at ($(-0*\latWidth,-7*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($( 1*\latWidth,-7*\latWidth)$) {}; % G15
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 1*\latWidth,-7*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($( 2*\latWidth,-7*\latWidth)$) {6}; % F15
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 2*\latWidth,-7*\latWidth)$) {};
\node [Assembly, fill=\highenr] at ($( 3*\latWidth,-7*\latWidth)$) {}; % E15
\node [Assembly, fill=\darkgray, opacity=0.7] at ($( 3*\latWidth,-7*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 4*\latWidth,-7*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 5*\latWidth,-7*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 6*\latWidth,-7*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 7*\latWidth,-7*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 8*\latWidth,-7*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-8*\latWidth,-8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-7*\latWidth,-8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-6*\latWidth,-8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-5*\latWidth,-8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-4*\latWidth,-8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-3*\latWidth,-8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-2*\latWidth,-8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-1*\latWidth,-8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($(-0*\latWidth,-8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 1*\latWidth,-8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 2*\latWidth,-8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 3*\latWidth,-8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 4*\latWidth,-8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 5*\latWidth,-8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 6*\latWidth,-8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 7*\latWidth,-8*\latWidth)$) {};
\node [Assembly, fill=\lightgray, opacity=0.3] at ($( 8*\latWidth,-8*\latWidth)$) {};
% draw baffle north/south
\begin{scope}[even odd rule]
\clip[rotate=90] \tkzBaffMClip;
\path[fill=black] \tkzBaffleC;
\end{scope}
\begin{scope}[even odd rule]
\clip \tkzBaffCClip;
\clip \tkzBaffMClip;
\path[fill=black, rotate=90] \tkzBaffleM;
\end{scope}
% draw baffle east/west
\begin{scope}[rotate=90]
\begin{scope}[even odd rule]
\clip[rotate=90] \tkzBaffMClip;
\path[fill=black] \tkzBaffleC;
\end{scope}
\begin{scope}[even odd rule]
\clip \tkzBaffCClip;
\clip \tkzBaffMClip;
\path[fill=black, rotate=90] \tkzBaffleM;
\end{scope}
\end{scope}}
\end{tikzpicture}

View file

@ -16,3 +16,4 @@ Theory and Methodology
tallies
eigenvalue
parallelization
cmfd

View file

@ -4,6 +4,10 @@
Publications
============
- Jonathan A. Walsh, Benoit Forget, and Kord S. Smith, "Accelerated sampling
of the free gas resonance elastic scattering kernel," *Ann. Nucl. Energy*,
**69**, 116--124 (2014). `<http://dx.doi.org/10.1016/j.anucene.2014.01.017>`_
- Benoit Forget, Sheng Xu, and Kord Smith, "Direct Doppler broadening in Monte
Carlo simulations using the multipole representation," *Ann. Nucl. Energy*,
**64**, 78--85 (2014). `<http://dx.doi.org/10.1016/j.anucene.2013.09.043>`_

View file

@ -10,6 +10,7 @@ bugs fixed, and known issues for each successive release.
.. toctree::
:maxdepth: 1
notes_0.6.1
notes_0.6.0
notes_0.5.4
notes_0.5.3

View file

@ -0,0 +1,65 @@
.. _notes_0.6.1:
==============================
Release Notes for OpenMC 0.6.1
==============================
-------------------
System Requirements
-------------------
There are no special requirements for running the OpenMC code. As of this
release, OpenMC has been tested on a variety of Linux distributions, Mac OS X,
and Microsoft Windows 7. Memory requirements will vary depending on the size of
the problem at hand (mostly on the number of nuclides in the problem).
------------
New Features
------------
- Coarse mesh finite difference (CMFD) acceleration no longer requires PETSc
- Statepoint file numbering is now zero-padded
- Python scripts now compatible with Python 2 or 3
- Ability to run particle restarts in fixed source calculations
- Capability to filter box source by fissionable materials
- Nuclide/element names are now case insensitive in input files
- Improved treatment of resonance scattering for heavy nuclides
---------
Bug Fixes
---------
- 03e890_: Check for energy-dependent multiplicities in ACE files
- 4439de_: Fix distance-to-surface calculation for general plane surface
- 5808ed_: Account for differences in URR band probabilities at different energies
- 2e60c0_: Allow zero atom/weight percents in materials
- 3e0870_: Don't use PWD environment variable when setting path to input files
- dc4776_: Handle probability table resampling correctly
- 01178b_: Fix metastables nuclides in NNDC cross_sections.xml file
- 62ec43_: Don't read tallies.xml when OpenMC is run in plotting mode
- 2a95ef_: Prevent segmentation fault on "current" score without mesh filter
- 93e482_: Check for negative values in probability tables
.. _03e890: https://github.com/mit-crpg/openmc/commit/03e890
.. _4439de: https://github.com/mit-crpg/openmc/commit/4439de
.. _5808ed: https://github.com/mit-crpg/openmc/commit/5808ed
.. _2e60c0: https://github.com/mit-crpg/openmc/commit/2e60c0
.. _3e0870: https://github.com/mit-crpg/openmc/commit/3e0870
.. _dc4776: https://github.com/mit-crpg/openmc/commit/dc4776
.. _01178b: https://github.com/mit-crpg/openmc/commit/01178b
.. _62ec43: https://github.com/mit-crpg/openmc/commit/62ec43
.. _2a95ef: https://github.com/mit-crpg/openmc/commit/2a95ef
.. _93e482: https://github.com/mit-crpg/openmc/commit/93e482
------------
Contributors
------------
This release contains new contributions from the following people:
- `Sterling Harper <smharper@mit.edu>`_
- `Bryan Herman <bherman@mit.edu>`_
- `Adam Nelson <nelsonag@umich.edu>`_
- `Paul Romano <paul.k.romano@gmail.com>`_
- `Jon Walsh <walshjon@mit.edu>`_
- `Will Boyd <wbinventor@gmail.com>`_

View file

@ -264,6 +264,65 @@ or sub-elements and can be set to either "false" or "true".
*Default*: true
``<resonance_scattering>`` Element
----------------------------------
The ``resonance_scattering`` element can contain one or more of the following
attributes or sub-elements:
:scatterer:
An element with attributes/sub-elements called ``nuclide``, ``method``,
``xs_label``, ``xs_label_0K``, ``E_min``, and ``E_max``. The ``nuclide``
attribute is the name, as given by the ``name`` attribute within the
``nuclide`` sub-element of the ``material`` element in ``materials.xml``,
of the nuclide to which a resonance scattering treatment is to be applied.
The ``method`` attribute gives the type of resonance scattering treatment
that is to be applied to the ``nuclide``. Acceptable inputs - none of
which are case-sensitive - for the ``method`` attribute are ``ARES``,
``CXS``, ``WCM``, and ``DBRC``. Descriptions of each of these methods
are documented here_. The ``xs_label`` attribute gives the label for the
cross section data of the ``nuclide`` at a given temperature. The
``xs_label_0K`` gives the label for the 0 K cross section data for the
``nuclide``. The ``E_min`` attribute gives the minimum energy above
which the ``method`` is applied. The ``E_max`` attribute gives the
maximum energy below which the ``method`` is applied. One example would
be as follows:
.. _here: http://dx.doi.org/10.1016/j.anucene.2014.01.017
.. code-block:: xml
<resonance_scattering>
<scatterer>
<nuclide>U-238</nuclide>
<method>ARES</method>
<xs_label>92238.72c</xs_label>
<xs_label_0K>92238.00c</xs_label_0K>
<E_min>5.0e-6</E_min>
<E_max>40.0e-6</E_max>
</scatterer>
<scatterer>
<nuclide>Pu-239</nuclide>
<method>dbrc</method>
<xs_label>94239.72c</xs_label>
<xs_label_0K>94239.00c</xs_label_0K>
<E_min>0.01e-6</E_min>
<E_max>210.0e-6</E_max>
</scatterer>
</resonance_scattering>
.. note:: If the ``resonance_scattering`` element is not given, the free gas,
constant cross section (``cxs``) scattering model, which has
historically been used by Monte Carlo codes to sample target
velocities, is used to treat the target motion of all nuclides. If
``resonance_scattering`` is present, the ``cxs`` method is applied
below ``E_min`` and the target-at-rest (asymptotic) kernel is used
above ``E_max``. An arbitrary number of ``scatterer`` elements may
be specified, each corresponding to a single nuclide at a single
temperature.
*Defaults*: None (scatterer), ARES (method), 0.01 eV (E_min), 1.0 keV (E_max)
``<run_cmfd>`` Element
----------------------
@ -315,6 +374,12 @@ attributes/sub-elements:
parallelepiped and the last three of which specify the upper-right
corner. Source sites are sampled uniformly through that parallelepiped.
To filter a "box" spatial distribution by fissionable material, specify
"fission" tag instead of "box". The ``parameters`` should be given as six
real numbers, the first three of which specify the lower-left corner of a
parallelepiped and the last three of which specify the upper-right
corner. Source sites are sampled uniformly through that parallelepiped.
For a "point" spatial distribution, ``parameters`` should be given as
three real numbers which specify the (x,y,z) location of an isotropic
point source
@ -372,6 +437,13 @@ attributes/sub-elements:
*Default*: 0.988 2.249
:write_initial:
An element specifying whether to write out the initial source bank used at
the beginning of the first batch. The output file is named
"initial_source.binary(h5)"
*Default*: false
``<state_point>`` Element
-------------------------
@ -1024,10 +1096,10 @@ The ``<tally>`` element accepts the following sub-elements:
all of the harmonic moments of order 0 to N. N must be between 0 and 10.
:total-YN:
Spherical harmonic expansion of the incoming particle's direction of
motion :math:`\left(\Omega\right)` of the total flux. This score will
tally all of the harmonic moments of order 0 to N. N must be between 0
and 10.
The total reaction rate expanded via spherical harmonics about the
direction of motion of the neutron, :math:`\Omega`.
This score will tally all of the harmonic moments of order 0 to N. N must
be between 0 and 10.
:current:
Partial currents on the boundaries of each cell in a mesh.
@ -1193,7 +1265,7 @@ attributes or sub-elements. These are not used in "voxel" plots:
Specifies the RGB color of the regions where no OpenMC cell can be found.
Should be three integers separated by spaces.
*Default*: 0 0 0 (white)
*Default*: 0 0 0 (black)
:col_spec:
Any number of this optional tag may be included in each ``<plot>`` element,
@ -1233,6 +1305,37 @@ attributes or sub-elements. These are not used in "voxel" plots:
*Default*: None
:meshlines:
The ``meshlines`` sub-element allows for plotting the boundaries of
a tally mesh on top of a plot. Only one ``meshlines`` element is allowed per
``plot`` element, and it must contain as attributes or sub-elements a mesh
type and a linewidth. Optionally, a color may be specified for the overlay:
:meshtype:
The type of the mesh to be plotted. Valid options are "tally", "entropy",
"ufs", and "cmfd". If plotting "tally" meshes, the id of the mesh to plot
must be specified with the ``id`` sub-element.
:id:
A single integer id number for the mesh specified on ``tallies.xml`` that
should be plotted. This element is only required for ``meshtype="tally"``.
:linewidth:
A single integer number of pixels of linewidth to specify for the mesh
boundaries. Specifying this as 0 indicates that lines will be 1 pixel
thick, specifying 1 indicates 3 pixels thick, specifying 2 indicates
5 pixels thick, etc.
:color:
Specifies the custom color for the meshlines boundaries. Should be 3
integers separated by whitespace. This element is optional.
*Default*: 0 0 0 (black)
*Default*: None
.. _usersguide_cmfd:
------------------------------
CMFD Specification -- cmfd.xml
------------------------------
@ -1242,15 +1345,6 @@ Currently, it allows users to accelerate fission source convergence during
inactive neutron batches. To run CMFD, the ``<run_cmfd>`` element in
``settings.xml`` should be set to "true".
``<active_flush>`` Element
--------------------------
The ``<active_flush>`` element controls the batch where CMFD tallies should be
reset. CMFD tallies should be reset before active batches so they are accumulated
without bias.
*Default*: 0
``<begin>`` Element
-------------------
@ -1272,7 +1366,25 @@ The ``<display>`` element sets one additional CMFD output column. Options are:
* "source" - prints the RMS [%] between the OpenMC fission source and CMFD
fission source.
*Default*: None
*Default*: balance
``<dhat_reset>`` Element
------------------------
The ``<dhat_reset>`` element controls whether :math:`\widehat{D}` nonlinear
CMFD parameters should be reset to zero before solving CMFD eigenproblem.
It can be turned on with "true" and off with "false".
*Default*: false
``<downscatter>`` Element
-------------------------
The ``<downscatter>`` element controls whether an effective downscatter cross
section should be used when using 2-group CMFD. It can be turned on with "true"
and off with "false".
*Default*: false
``<feedback>`` Element
----------------------
@ -1283,24 +1395,16 @@ It can be turned on with "true" and off with "false".
*Default*: false
``<inactive>`` Element
----------------------
``<gauss_seidel_tolerance>`` Element
------------------------------------
The ``<inactive>`` element controls if cmfd tallies should be accumulated
during inactive batches. For some applications, CMFD tallies may not be
needed until the start of active batches. This option can be turned on
with "true" and off with "false"
The ``<gauss_seidel_tolerance>`` element specifies two parameters. The first is
the absolute inner tolerance for Gauss-Seidel iterations when performing CMFD
and the second is the relative inner tolerance for Gauss-Seidel iterations
for CMFD calculations. It is only used in the standalone CMFD power iteration
solver and not when PETSc is active.
*Default*: true
``<inactive_flush>`` Element
----------------------------
The ``<inactive_flush>`` element controls when CMFD tallies are reset during
inactive batches. The integer set here is the interval at which this reset
occurs. The amout of resets is controlled with the ``<num_flushes>`` element.
*Defualt*: 9999
*Default*: 1.e-10 1.e-5
``<ksp_monitor>`` Element
-------------------------
@ -1309,9 +1413,16 @@ The ``<ksp_monitor>`` element is used to view the convergence of linear GMRES
iterations in PETSc. This option can be turned on with "true" and turned off
with "false".
*Default*: false
``<ktol>`` Element
--------------------
The ``<ktol>`` element specifies the tolerance on the eigenvalue when performing
CMFD power iteration.
*Default*: 1.e-8
``<mesh>`` Element
------------------
@ -1380,14 +1491,6 @@ not impact the calculation.
*Default*: 1.0
``<num_flushes>`` Element
-------------------------
The ``<num_flushes>`` element controls the number of CMFD tally resets that
occur during inactive CMFD batches.
*Default*: 9999
``<power_monitor>`` Element
---------------------------
@ -1400,16 +1503,8 @@ This option can be turned on with "true" and turned off with "false".
-------------------------
The ``<run_adjoint>`` element can be turned on with "true" to have an adjoint
calculation be performed on the last batch when CMFD is active.
*Default*: false
``<snes_monitor>`` Element
--------------------------
The ``<snes_monitor>`` element is used to view the convergence of the nonlinear SNES
function in PETSc. This option can be turned on with "true" and turned off with "false".
calculation be performed on the last batch when CMFD is active. OpenMC should be
compiled with PETSc when using this option.
*Default*: false
@ -1422,6 +1517,41 @@ By setting "power", power iteration is used and by setting "jfnk", JFNK is used.
*Default*: power
``<shift>`` Element
--------------------
The ``<shfit>`` element specifies an optional Wielandt shift parameter for
accelerating power iterations. It can only be used when PETSc is not active.
It is by default very large so the impact of the shift is effectively zero.
*Default*: 1e6
``<spectral>`` Element
----------------------
The ``<spectral>`` element specifies an optional spectral radius that can be set to
accelerate the convergence of Gauss-Seidel iterations during CMFD power iteration
solve. Note this is only used in the standalone CMFD solver and does not affect
the calculation when PETSc is active.
*Default*: power
``<stol>`` Element
------------------
The ``<stol>`` element specifies the tolerance on the fission source when performing
CMFD power iteration.
*Default*: 1.e-8
``<tally_reset>`` Element
-------------------------
The ``<tally_reset>`` element contains a list of batch numbers in which CMFD tallies
should be reset.
*Default*: None
``<write_matrices>`` Element
----------------------------

View file

@ -239,20 +239,22 @@ the root directory of the source code:
.. code-block:: sh
cd src
mkdir src/build
cd src/build
cmake ..
make
sudo make install
make install
This will build an executable named ``openmc`` and install it (by default in
/usr/local/bin). If you do not have administrative privileges, you can install
OpenMC locally by replacing the last command with:
OpenMC locally by specifying an install prefix when running cmake:
.. code-block:: sh
make install -e prefix=$HOME/.local
cmake -DCMAKE_INSTALL_PREFIX=$HOME/.local ..
The ``prefix`` variable can be changed to any path for which you have
write-access.
The ``CMAKE_INSTALL_PREFIX`` variable can be changed to any path for which you
have write-access.
Compiling on Windows
--------------------
@ -326,7 +328,7 @@ Testing Build
-------------
If you have ENDF/B-VII.1 cross sections from NNDC_ you can test your build.
Make sure the **CROSS_SECTIONS** environmental variable is set to the
Make sure the **CROSS_SECTIONS** environmental variable is set to the
*cross_sections.xml* file in the *data/nndc* directory.
There are two ways to run tests. The first is to use the Makefile present in
the source directory and run the following:

View file

@ -5,6 +5,7 @@
<origin>0. 0. 0.</origin>
<width>4.0 4.0</width>
<pixels>400 400</pixels>
<!-- <meshlines mesh="1" linewidth="2" color="0 255 0"/> -->
</plot>
</plots>

View file

@ -167,28 +167,28 @@ if(petsc)
list(INSERT PETSC_PACKAGE_LIBS 0 ${PETSC_FLAPACK_LIB})
endif()
# If libdl wasn't found, search /usr/lib64
# If libdl wasn't found, search /usr/lib64
if(PETSC_DL_LIB STREQUAL "PETSC_DL_LIB-NOTFOUND")
find_library(PETSC_DL_LIB libdl.so /usr/lib64)
list(REMOVE_ITEM PETSC_PACKAGE_LIBS PETSC_DL_LIB-NOTFOUND)
list(INSERT PETSC_PACKAGE_LIBS 0 ${PETSC_DL_LIB})
endif()
# If libm wasn't found, search /usr/lib64
# If libm wasn't found, search /usr/lib64
if(PETSC_M_LIB STREQUAL "PETSC_M_LIB-NOTFOUND")
find_library(PETSC_M_LIB libm.so /usr/lib64)
list(REMOVE_ITEM PETSC_PACKAGE_LIBS PETSC_M_LIB-NOTFOUND)
list(INSERT PETSC_PACKAGE_LIBS 0 ${PETSC_M_LIB})
endif()
# If libpthread wasn't found, search /usr/lib64
# If libpthread wasn't found, search /usr/lib64
if(PETSC_PTHREAD_LIB STREQUAL "PETSC_PTHREAD_LIB-NOTFOUND")
find_library(PETSC_PTHREAD_LIB libpthread.so /usr/lib64)
list(REMOVE_ITEM PETSC_PACKAGE_LIBS PETSC_PTHREAD_LIB-NOTFOUND)
list(INSERT PETSC_PACKAGE_LIBS 0 ${PETSC_PTHREAD_LIB})
endif()
# If librt wasn't found, search /usr/lib64
# If librt wasn't found, search /usr/lib64
if(PETSC_RT_LIB STREQUAL "PETSC_RT_LIB-NOTFOUND")
find_library(PETSC_RT_LIB librt.so /usr/lib64)
list(REMOVE_ITEM PETSC_PACKAGE_LIBS PETSC_RT_LIB-NOTFOUND)
@ -213,7 +213,7 @@ execute_process(COMMAND git rev-parse HEAD
if(GIT_SHA1_SUCCESS EQUAL 0)
add_definitions(-DGIT_SHA1="${GIT_SHA1}")
endif()
#===============================================================================
# FoX Fortran XML Library
#===============================================================================
@ -261,7 +261,8 @@ install(FILES ../LICENSE DESTINATION "share/doc/${program}/copyright")
find_package(PythonInterp)
if(PYTHONINTERP_FOUND)
install(CODE "execute_process(
COMMAND ${PYTHON_EXECUTABLE} setup.py install --user
COMMAND ${PYTHON_EXECUTABLE} setup.py install
--prefix=${CMAKE_INSTALL_PREFIX}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/utils)")
endif()
@ -277,7 +278,7 @@ file(GLOB_RECURSE TESTS ${CMAKE_CURRENT_SOURCE_DIR}/../tests/test_*.py)
# Check to see if PETSC is compiled for CMFD tests
if (NOT ${PETSC_ENABLED})
file(GLOB_RECURSE CMFD_TESTS ${CMAKE_CURRENT_SOURCE_DIR}/../tests/test_cmfd*.py)
file(GLOB_RECURSE CMFD_TESTS ${CMAKE_CURRENT_SOURCE_DIR}/../tests/test_cmfd_jfnk.py)
foreach(cmfd_test in ${CMFD_TESTS})
list(REMOVE_ITEM TESTS ${cmfd_test})
endforeach(cmfd_test)
@ -300,7 +301,7 @@ foreach(test ${TESTS})
# Get test information
get_filename_component(TEST_NAME ${test} NAME)
get_filename_component(TEST_PATH ${test} PATH)
get_filename_component(TEST_PATH ${test} PATH)
# Check for running standard tests (no valgrind, no gcov)
if(NOT ${MEM_CHECK} AND NOT ${COVERAGE})
@ -309,15 +310,15 @@ foreach(test ${TESTS})
if (${MPI_ENABLED})
# Preform a parallel test
add_test(NAME ${TEST_NAME}
WORKING_DIRECTORY ${TEST_PATH}
add_test(NAME ${TEST_NAME}
WORKING_DIRECTORY ${TEST_PATH}
COMMAND ${PYTHON_EXECUTABLE} ${TEST_NAME} --exe $<TARGET_FILE:openmc>
--mpi_exec $ENV{MPI_DIR}/bin/mpiexec)
else(${MPI_ENABLED})
# Perform a serial test
add_test(NAME ${TEST_NAME}
add_test(NAME ${TEST_NAME}
WORKING_DIRECTORY ${TEST_PATH}
COMMAND ${PYTHON_EXECUTABLE} ${TEST_NAME} --exe $<TARGET_FILE:openmc>)
@ -342,11 +343,13 @@ foreach(test ${TESTS})
# Handle restart tests separately
if(${test} MATCHES "test_statepoint_restart")
set(RESTART_FILE statepoint.7.h5)
set(RESTART_FILE statepoint.07.h5)
elseif(${test} MATCHES "test_sourcepoint_restart")
set(RESTART_FILE statepoint.7.h5 source.7.h5)
elseif(${test} MATCHES "test_particle_restart")
set(RESTART_FILE particle_12_192.h5)
set(RESTART_FILE statepoint.07.h5 source.07.h5)
elseif(${test} MATCHES "test_particle_restart_eigval")
set(RESTART_FILE particle_12_842.h5)
elseif(${test} MATCHES "test_particle_restart_fixed")
set(RESTART_FILE particle_7_6144.h5)
else(${test} MATCHES "test_statepoint_restart")
message(FATAL_ERROR "Restart test ${test} not recognized")
endif(${test} MATCHES "test_statepoint_restart")
@ -355,11 +358,13 @@ foreach(test ${TESTS})
# Handle restart tests separately
if(${test} MATCHES "test_statepoint_restart")
set(RESTART_FILE statepoint.7.binary)
set(RESTART_FILE statepoint.07.binary)
elseif(${test} MATCHES "test_sourcepoint_restart")
set(RESTART_FILE statepoint.7.binary source.7.binary)
elseif(${test} MATCHES "test_particle_restart")
set(RESTART_FILE particle_12_192.binary)
set(RESTART_FILE statepoint.07.binary source.07.binary)
elseif(${test} MATCHES "test_particle_restart_eigval")
set(RESTART_FILE particle_12_842.binary)
elseif(${test} MATCHES "test_particle_restart_fixed")
set(RESTART_FILE particle_7_6144.binary)
else(${test} MATCHES "test_statepoint_restart")
message(FATAL_ERROR "Restart test ${test} not recognized")
endif(${test} MATCHES "test_statepoint_restart")

View file

@ -3,14 +3,15 @@ module ace
use ace_header, only: Nuclide, Reaction, SAlphaBeta, XsListing, &
DistEnergy
use constants
use endf, only: reaction_name
use endf, only: reaction_name, is_fission, is_disappearance
use error, only: fatal_error, warning
use fission, only: nu_total
use global
use list_header, only: ListInt
use material_header, only: Material
use output, only: write_message
use set_header, only: SetChar
use string, only: to_str
use string, only: to_str, to_lower
implicit none
@ -35,6 +36,7 @@ contains
integer :: i ! index in materials array
integer :: j ! index over nuclides in material
integer :: k ! index over S(a,b) tables in material
integer :: n ! index over resonant scatterers
integer :: i_listing ! index in xs_listings array
integer :: i_nuclide ! index in nuclides
integer :: i_sab ! index in sab_tables
@ -66,8 +68,8 @@ contains
name = mat % names(j)
if (.not. already_read % contains(name)) then
i_listing = xs_listing_dict % get_key(name)
i_nuclide = nuclide_dict % get_key(name)
i_listing = xs_listing_dict % get_key(to_lower(name))
i_nuclide = nuclide_dict % get_key(to_lower(name))
name = xs_listings(i_listing) % name
alias = xs_listings(i_listing) % alias
@ -79,6 +81,30 @@ contains
! array
call read_ace_table(i_nuclide, i_listing)
! 0K resonant scatterer information, if treating resonance scattering
if (treat_res_scat) then
do n = 1, n_res_scatterers_total
if (name == nuclides_0K(n) % name) then
nuclides(i_nuclide) % resonant = .true.
nuclides(i_nuclide) % name_0K = nuclides_0K(n) % name_0K
nuclides(i_nuclide) % name_0K = trim(nuclides(i_nuclide) % &
& name_0K)
nuclides(i_nuclide) % scheme = nuclides_0K(n) % scheme
nuclides(i_nuclide) % scheme = trim(nuclides(i_nuclide) % &
& scheme)
nuclides(i_nuclide) % E_min = nuclides_0K(n) % E_min
nuclides(i_nuclide) % E_max = nuclides_0K(n) % E_max
if (.not. already_read % contains(nuclides(i_nuclide) % &
& name_0K)) then
i_listing = xs_listing_dict % get_key(nuclides(i_nuclide) % &
& name_0K)
call read_ace_table(i_nuclide, i_listing)
end if
exit
end if
end do
end if
! Add name and alias to dictionary
call already_read % add(name)
call already_read % add(alias)
@ -90,8 +116,8 @@ contains
name = mat % sab_names(k)
if (.not. already_read % contains(name)) then
i_listing = xs_listing_dict % get_key(name)
i_sab = sab_dict % get_key(name)
i_listing = xs_listing_dict % get_key(to_lower(name))
i_sab = sab_dict % get_key(to_lower(name))
! Read the ACE table into the appropriate entry on the sab_tables
! array
@ -171,6 +197,25 @@ contains
! Avoid some valgrind leak errors
call already_read % clear()
! Loop around material
MATERIAL_LOOP3: do i = 1, n_materials
! Get material
mat => materials(i)
! Loop around nuclides in material
NUCLIDE_LOOP2: do j = 1, mat % n_nuclides
! Check for fission in nuclide
if (nuclides(mat % nuclide(j)) % fissionable) then
mat % fissionable = .true.
exit NUCLIDE_LOOP2
end if
end do NUCLIDE_LOOP2
end do MATERIAL_LOOP3
end subroutine read_xs
!===============================================================================
@ -197,6 +242,7 @@ contains
real(8) :: awrs(16) ! list of atomic weight ratios (not used)
real(8) :: awr ! atomic weight ratio for table
logical :: file_exists ! does ACE library exist?
logical :: data_0K ! are we reading 0K data?
character(7) :: readable ! is ACE library readable?
character(10) :: name ! name of ACE table
character(10) :: date_ ! date ACE library was processed
@ -300,19 +346,32 @@ contains
select case(listing % type)
case (ACE_NEUTRON)
! only read in a resonant scatterers info once
nuc => nuclides(i_table)
nuc % name = name
nuc % awr = awr
nuc % kT = kT
nuc % zaid = NXS(2)
data_0K = .false.
if (trim(adjustl(name)) == nuc % name_0K) then
data_0K = .true.
else
nuc % name = name
nuc % awr = awr
nuc % kT = kT
nuc % zaid = NXS(2)
end if
! read all blocks
call read_esz(nuc)
call read_nu_data(nuc)
call read_reactions(nuc)
call read_angular_dist(nuc)
call read_energy_dist(nuc)
call read_unr_res(nuc)
call read_esz(nuc, data_0K)
! don't read unnecessary 0K data for resonant scatterers
if (data_0K) then
continue
else
call read_nu_data(nuc)
call read_reactions(nuc)
call read_angular_dist(nuc)
call read_energy_dist(nuc)
call read_unr_res(nuc)
end if
! Currently subcritical fixed source calculations are not allowed. Thus,
! if any fissionable material is found in a fixed source calculation,
@ -324,9 +383,12 @@ contains
! for fissionable nuclides, precalculate microscopic nu-fission cross
! sections so that we don't need to call the nu_total function during
! cross section lookups
! cross section lookups (except if we're dealing w/ 0K data for resonant
! scatterers)
if (nuc % fissionable) call generate_nu_fission(nuc)
if (nuc % fissionable .and. .not. data_0K) then
call generate_nu_fission(nuc)
end if
case (ACE_THERMAL)
sab => sab_tables(i_table)
@ -357,43 +419,82 @@ contains
! total xs, absorption xs, elastic scattering xs, and heating numbers.
!===============================================================================
subroutine read_esz(nuc)
subroutine read_esz(nuc, data_0K)
type(Nuclide), pointer :: nuc
logical :: data_0K ! are we reading 0K data?
integer :: NE ! number of energy points for total and elastic cross sections
integer :: i ! index in 0K elastic xs array for this nuclide
real(8) :: xs_cdf_sum = ZERO ! xs cdf value
! determine number of energy points
NE = NXS(3)
nuc % n_grid = NE
! allocate storage for energy grid and cross section arrays
allocate(nuc % energy(NE))
allocate(nuc % total(NE))
allocate(nuc % elastic(NE))
allocate(nuc % fission(NE))
allocate(nuc % nu_fission(NE))
allocate(nuc % absorption(NE))
! initialize cross sections
nuc % total = ZERO
nuc % elastic = ZERO
nuc % fission = ZERO
nuc % nu_fission = ZERO
nuc % absorption = ZERO
! read in 0K data if we've already read in non-0K data
if (data_0K) then
nuc % n_grid_0K = NE
allocate(nuc % energy_0K(NE))
allocate(nuc % elastic_0K(NE))
allocate(nuc % xs_cdf(NE))
nuc % elastic_0K = ZERO
nuc % xs_cdf = ZERO
XSS_index = 1
nuc % energy_0K = get_real(NE)
! Read data from XSS -- only the energy grid, elastic scattering and heating
! cross section values are actually read from here. The total and absorption
! cross sections are reconstructed from the partial reaction data.
! Skip total and absorption
XSS_index = XSS_index + 2*NE
! Continue reading elastic scattering and heating
nuc % elastic_0K = get_real(NE)
XSS_index = 1
nuc % energy = get_real(NE)
do i = 1, nuc % n_grid_0K - 1
! Skip total and absorption
XSS_index = XSS_index + 2*NE
! Negative cross sections result in a CDF that is not monotonically
! increasing. Set all negative xs values to ZERO.
if (nuc % elastic_0K(i) < ZERO) nuc % elastic_0K(i) = ZERO
! Continue reading elastic scattering and heating
nuc % elastic = get_real(NE)
! build xs cdf
xs_cdf_sum = xs_cdf_sum + (sqrt(nuc % energy_0K(i)) * nuc % elastic_0K(i) &
& + sqrt(nuc % energy_0K(i+1)) * nuc % elastic_0K(i+1)) / TWO &
& * (nuc % energy_0K(i+1) - nuc % energy_0K(i))
nuc % xs_cdf(i) = xs_cdf_sum
end do
else ! read in non-0K data
nuc % n_grid = NE
allocate(nuc % energy(NE))
allocate(nuc % total(NE))
allocate(nuc % elastic(NE))
allocate(nuc % fission(NE))
allocate(nuc % nu_fission(NE))
allocate(nuc % absorption(NE))
! initialize cross sections
nuc % total = ZERO
nuc % elastic = ZERO
nuc % fission = ZERO
nuc % nu_fission = ZERO
nuc % absorption = ZERO
! Read data from XSS -- only the energy grid, elastic scattering and heating
! cross section values are actually read from here. The total and absorption
! cross sections are reconstructed from the partial reaction data.
XSS_index = 1
nuc % energy = get_real(NE)
! Skip total and absorption
XSS_index = XSS_index + 2*NE
! Continue reading elastic scattering and heating
nuc % elastic = get_real(NE)
end if
end subroutine read_esz
@ -609,6 +710,7 @@ contains
integer :: IE ! reaction's starting index on energy grid
integer :: NE ! number of energies for reaction
type(Reaction), pointer :: rxn => null()
type(ListInt) :: MTs
LMT = JXS(3)
JXS4 = JXS(4)
@ -681,17 +783,37 @@ contains
allocate(rxn % sigma(NE))
XSS_index = JXS7 + LOCA + 1
rxn % sigma = get_real(NE)
end do
! Skip redundant reactions -- this includes total inelastic level
! scattering, gas production cross sections (MT=200+), and (n,p), (n,d),
! etc. reactions leaving the nucleus in an excited state
if (rxn % MT == N_LEVEL .or. rxn % MT > N_DA) cycle
! Create set of MT values
do i = 1, size(nuc % reactions)
call MTs % append(nuc % reactions(i) % MT)
end do
! Create total, absorption, and fission cross sections
do i = 2, size(nuc % reactions)
rxn => nuc % reactions(i)
IE = rxn % threshold
NE = size(rxn % sigma)
! Skip total inelastic level scattering, gas production cross sections
! (MT=200+), etc.
if (rxn % MT == N_LEVEL) cycle
if (rxn % MT > N_5N2P .and. rxn % MT < N_P0) cycle
! Skip level cross sections if total is available
if (rxn % MT >= N_P0 .and. rxn % MT <= N_PC .and. MTs % contains(N_P)) cycle
if (rxn % MT >= N_D0 .and. rxn % MT <= N_DC .and. MTs % contains(N_D)) cycle
if (rxn % MT >= N_T0 .and. rxn % MT <= N_TC .and. MTs % contains(N_T)) cycle
if (rxn % MT >= N_3HE0 .and. rxn % MT <= N_3HEC .and. MTs % contains(N_3HE)) cycle
if (rxn % MT >= N_A0 .and. rxn % MT <= N_AC .and. MTs % contains(N_A)) cycle
if (rxn % MT >= N_2N0 .and. rxn % MT <= N_2NC .and. MTs % contains(N_2N)) cycle
! Add contribution to total cross section
nuc % total(IE:IE+NE-1) = nuc % total(IE:IE+NE-1) + rxn % sigma
! Add contribution to absorption cross section
if (rxn % MT >= N_GAMMA .and. rxn % MT <= N_DA) then
if (is_disappearance(rxn % MT)) then
nuc % absorption(IE:IE+NE-1) = nuc % absorption(IE:IE+NE-1) + rxn % sigma
end if
@ -704,8 +826,7 @@ contains
end if
! Add contribution to fission cross section
if (rxn % MT == N_FISSION .or. rxn % MT == N_F .or. rxn % MT == N_NF &
.or. rxn % MT == N_2NF .or. rxn % MT == N_3NF) then
if (is_fission(rxn % MT)) then
nuc % fissionable = .true.
nuc % fission(IE:IE+NE-1) = nuc % fission(IE:IE+NE-1) + rxn % sigma
@ -718,11 +839,14 @@ contains
! Keep track of this reaction for easy searching later
i_fission = i_fission + 1
nuc % index_fission(i_fission) = i + 1
nuc % index_fission(i_fission) = i
nuc % n_fission = nuc % n_fission + 1
end if
end do
! Clear MTs set
call MTs % clear()
end subroutine read_reactions
!===============================================================================
@ -1428,4 +1552,26 @@ contains
end function get_real
!===============================================================================
! SAME_NUCLIDE_LIST creates a linked list for each nuclide containing the
! indices in the nuclides array of all other instances of that nuclide. For
! example, the same nuclide may exist at multiple temperatures resulting
! in multiple entries in the nuclides array for a single zaid number.
!===============================================================================
subroutine same_nuclide_list()
integer :: i ! index in nuclides array
integer :: j ! index in nuclides array
do i = 1, n_nuclides_total
do j = 1, n_nuclides_total
if (nuclides(i) % zaid == nuclides(j) % zaid) then
call nuclides(i) % nuc_list % append(j)
end if
end do
end do
end subroutine same_nuclide_list
end module ace

View file

@ -2,6 +2,7 @@ module ace_header
use constants, only: MAX_FILE_LEN
use endf_header, only: Tab1
use list_header, only: ListInt
implicit none
@ -95,6 +96,9 @@ module ace_header
real(8) :: awr ! weight of nucleus in neutron masses
real(8) :: kT ! temperature in MeV (k*T)
! Linked list of indices in nuclides array of instances of this same nuclide
type(ListInt) :: nuc_list
! Energy grid information
integer :: n_grid ! # of nuclide grid points
integer, allocatable :: grid_index(:) ! union grid pointers / log grid mapping
@ -108,6 +112,17 @@ module ace_header
real(8), allocatable :: absorption(:) ! absorption (MT > 100)
real(8), allocatable :: heating(:) ! heating
! Resonance scattering info
logical :: resonant = .false. ! resonant scatterer?
character(10) :: name_0K = '' ! name of 0K nuclide, e.g. 92235.00c
character(16) :: scheme ! target velocity sampling scheme
integer :: n_grid_0K ! number of 0K energy grid points
real(8), allocatable :: energy_0K(:) ! energy grid for 0K xs
real(8), allocatable :: elastic_0K(:) ! Microscopic elastic cross section
real(8), allocatable :: xs_cdf(:) ! CDF of v_rel times cross section
real(8) :: E_min ! lower cutoff energy for res scattering
real(8) :: E_max ! upper cutoff energy for res scattering
! Fission information
logical :: fissionable ! nuclide is fissionable?
logical :: has_partial_fission ! nuclide has partial fission reactions?
@ -143,6 +158,22 @@ module ace_header
procedure :: clear => nuclide_clear ! Deallocates Nuclide
end type Nuclide
!===============================================================================
! NUCLIDE0K temporarily contains all 0K cross section data and other parameters
! needed to treat resonance scattering before transferring them to NUCLIDE
!===============================================================================
type Nuclide0K
character(10) :: nuclide ! name of nuclide, e.g. U-238
character(16) :: scheme = 'ares' ! target velocity sampling scheme
character(10) :: name ! name of nuclide, e.g. 92235.03c
character(10) :: name_0K ! name of 0K nuclide, e.g. 92235.00c
real(8) :: E_min = 0.01e-6 ! lower cutoff energy for res scattering
real(8) :: E_max = 1000.0e-6 ! upper cutoff energy for res scattering
end type Nuclide0K
!===============================================================================
! DISTENERGYSAB contains the secondary energy/angle distributions for inelastic
! thermal scattering collisions which utilize a continuous secondary energy
@ -241,6 +272,7 @@ module ace_header
! Information for URR probability table use
logical :: use_ptable ! in URR range with probability tables?
real(8) :: last_prn
end type NuclideMicroXS
!===============================================================================
@ -337,12 +369,24 @@ module ace_header
integer :: i ! Loop counter
if (allocated(this % grid_index)) deallocate(this % grid_index)
if (allocated(this % grid_index)) &
deallocate(this % grid_index)
if (allocated(this % energy)) &
deallocate(this % energy, this % total, this % elastic, &
this % fission, this % nu_fission, this % absorption)
if (allocated(this % heating)) deallocate(this % heating)
& this % fission, this % nu_fission, this % absorption)
if (allocated(this % energy_0K)) &
deallocate(this % energy_0K)
if (allocated(this % elastic_0K)) &
deallocate(this % elastic_0K)
if (allocated(this % xs_cdf)) &
deallocate(this % xs_cdf)
if (allocated(this % heating)) &
deallocate(this % heating)
if (allocated(this % index_fission)) deallocate(this % index_fission)
@ -372,6 +416,8 @@ module ace_header
deallocate(this % reactions)
end if
call this % nuc_list % clear()
end subroutine nuclide_clear
end module ace_header

View file

@ -10,8 +10,6 @@ module cmfd_data
private
public :: set_up_cmfd, neutron_balance
logical :: dhat_reset = .false.
contains
!==============================================================================
@ -103,6 +101,8 @@ contains
cmfd % hxyz(2,:,:,:) = m % width(2) ! set y width
cmfd % hxyz(3,:,:,:) = m % width(3) ! set z width
cmfd % keff_bal = ZERO
! Begin loop around tallies
TAL: do ital = 1, n_cmfd_tallies
@ -211,6 +211,9 @@ contains
! Bank source
cmfd % openmc_src(g,i,j,k) = cmfd % openmc_src(g,i,j,k) + &
t % results(2,score_index) % sum
cmfd % keff_bal = cmfd % keff_bal + &
t % results(2,score_index) % sum / &
dble(t % n_realizations)
end do INGROUP
@ -623,7 +626,9 @@ contains
subroutine compute_dhat()
use constants, only: CMFD_NOACCEL, ZERO
use global, only: cmfd, cmfd_coremap
use global, only: cmfd, cmfd_coremap, message, dhat_reset
use output, only: write_message
use string, only: to_str
integer :: nx ! maximum number of cells in x direction
integer :: ny ! maximum number of cells in y direction
@ -743,7 +748,9 @@ contains
cmfd%dhat(l,g,i,j,k) = dhat
! check for dhat reset
if (dhat_reset) cmfd%dhat(l,g,i,j,k) = ZERO
if (dhat_reset) then
cmfd%dhat(l,g,i,j,k) = ZERO
end if
end do LEAK
@ -755,6 +762,12 @@ contains
end do ZLOOP
! write that dhats are zero
if (dhat_reset) then
message = 'Dhats reset to zero.'
call write_message(1)
end if
end subroutine compute_dhat
!===============================================================================
@ -763,8 +776,8 @@ contains
function get_reflector_albedo(l, g, i, j, k)
use constants, only: ALBEDO_REJECT
use global, only: cmfd, cmfd_hold_weights
use constants, only: ONE
use global, only: cmfd
real(8) :: get_reflector_albedo ! reflector albedo
integer, intent(in) :: i ! iteration counter for x
@ -786,8 +799,7 @@ contains
! Calculate albedo
if ((shift_idx == 1 .and. current(2*l ) < 1.0e-10_8) .or. &
(shift_idx == -1 .and. current(2*l-1) < 1.0e-10_8)) then
albedo = ALBEDO_REJECT
cmfd_hold_weights = .true.
albedo = ONE
else
albedo = (current(2*l-1)/current(2*l))**(shift_idx)
end if
@ -797,137 +809,6 @@ contains
end function get_reflector_albedo
!===============================================================================
! FIX_NEUTRON_BALANCE is a method to adjust parameters to have perfect balance
!===============================================================================
#ifdef DEVELOPMENTAL
subroutine fix_neutron_balance()
use constants, only: ONE, ZERO, CMFD_NOACCEL
use global, only: cmfd, keff
use, intrinsic :: ISO_FORTRAN_ENV
integer :: nx ! number of mesh cells in x direction
integer :: ny ! number of mesh cells in y direction
integer :: nz ! number of mesh cells in z direction
integer :: ng ! number of energy groups
integer :: i ! iteration counter for x
integer :: j ! iteration counter for y
integer :: k ! iteration counter for z
integer :: l ! iteration counter for surface
real(8) :: leak1 ! leakage rate in group 1
real(8) :: leak2 ! leakage rate in group 2
real(8) :: flux1 ! group 1 volume int flux
real(8) :: flux2 ! group 2 volume int flux
real(8) :: sigt1 ! group 1 total xs
real(8) :: sigt2 ! group 2 total xs
real(8) :: sigs11 ! scattering transfer 1 --> 1
real(8) :: sigs21 ! scattering transfer 2 --> 1
real(8) :: sigs12 ! scattering transfer 1 --> 2
real(8) :: sigs22 ! scattering transfer 2 --> 2
real(8) :: nsigf11 ! fission transfer 1 --> 1
real(8) :: nsigf21 ! fission transfer 2 --> 1
real(8) :: nsigf12 ! fission transfer 1 --> 2
real(8) :: nsigf22 ! fission transfer 2 --> 2
real(8) :: siga1 ! group 1 abs xs
real(8) :: siga2 ! group 2 abs xs
real(8) :: sigs12_eff ! effective downscatter xs
! Extract spatial and energy indices from object
nx = cmfd % indices(1)
ny = cmfd % indices(2)
nz = cmfd % indices(3)
ng = cmfd % indices(4)
! Return if not two groups
if (ng /= 2) return
! Begin loop around space and energy groups
ZLOOP: do k = 1, nz
YLOOP: do j = 1, ny
XLOOP: do i = 1, nx
! Check for active mesh
if (allocated(cmfd%coremap)) then
if (cmfd%coremap(i,j,k) == CMFD_NOACCEL) cycle
end if
! Compute leakage in groups 1 and 2
leak1 = ZERO
leak2 = ZERO
LEAK: do l = 1, 3
leak1 = leak1 + ((cmfd % current(4*l,1,i,j,k) - &
cmfd % current(4*l-1,1,i,j,k))) - &
((cmfd % current(4*l-2,1,i,j,k) - &
cmfd % current(4*l-3,1,i,j,k)))
leak2 = leak2 + ((cmfd % current(4*l,2,i,j,k) - &
cmfd % current(4*l-1,2,i,j,k))) - &
((cmfd % current(4*l-2,2,i,j,k) - &
cmfd % current(4*l-3,2,i,j,k)))
end do LEAK
! Extract cross sections and flux from object
flux1 = cmfd % flux(1,i,j,k)
flux2 = cmfd % flux(2,i,j,k)
sigt1 = cmfd % totalxs(1,i,j,k)
sigt2 = cmfd % totalxs(2,i,j,k)
sigs11 = cmfd % scattxs(1,1,i,j,k)
sigs21 = cmfd % scattxs(2,1,i,j,k)
sigs12 = cmfd % scattxs(1,2,i,j,k)
sigs22 = cmfd % scattxs(2,2,i,j,k)
nsigf11 = cmfd % nfissxs(1,1,i,j,k)
nsigf21 = cmfd % nfissxs(2,1,i,j,k)
nsigf12 = cmfd % nfissxs(1,2,i,j,k)
nsigf22 = cmfd % nfissxs(2,2,i,j,k)
! Check for no fission into group 2
if (.not.(nsigf12 < 1e-6_8 .and. nsigf22 < 1e-6_8)) then
write(OUTPUT_UNIT,'(A,1PE11.4,1X,1PE11.4)') 'Fission in G=2', &
nsigf12,nsigf22
end if
! Compute absorption xs
siga1 = sigt1 - sigs11 - sigs12
siga2 = sigt2 - sigs22 - sigs21
! Compute effective downscatter xs
sigs12_eff = (ONE/keff*nsigf11*flux1 - leak1 - siga1*flux1 &
- ONE/keff*nsigf21/siga2*leak2 ) / ( flux1*(ONE &
- ONE/keff*nsigf21/siga2))
! Redefine flux 2
flux2 = (sigs12_eff*flux1 - leak2)/siga2
cmfd % flux(2,i,j,k) = flux2
! Recompute total cross sections (use effective and no upscattering)
sigt1 = siga1 + sigs11 + sigs12_eff
sigt2 = siga2 + sigs22
! Record total xs
cmfd % totalxs(1,i,j,k) = sigt1
cmfd % totalxs(2,i,j,k) = sigt2
! Record effective downscatter xs
cmfd % scattxs(1,2,i,j,k) = sigs12_eff
! Zero out upscatter cross section
cmfd % scattxs(2,1,i,j,k) = ZERO
end do XLOOP
end do YLOOP
end do ZLOOP
end subroutine fix_neutron_balance
#endif
!===============================================================================
! COMPUTE_EFFECTIVE_DOWNSCATTER changes downscatter rate for zero upscatter
!===============================================================================

View file

@ -22,6 +22,7 @@ contains
use cmfd_data, only: set_up_cmfd
use cmfd_power_solver, only: cmfd_power_execute
use cmfd_jfnk_solver, only: cmfd_jfnk_execute
use cmfd_solver, only: cmfd_solver_execute
use error, only: warning, fatal_error
! CMFD single processor on master
@ -37,6 +38,7 @@ contains
call process_cmfd_options()
! Call solver
#ifdef PETSC
if (trim(cmfd_solver_type) == 'power') then
call cmfd_power_execute()
elseif (trim(cmfd_solver_type) == 'jfnk') then
@ -45,6 +47,9 @@ contains
message = 'solver type became invalid after input processing'
call fatal_error()
end if
#else
call cmfd_solver_execute()
#endif
! Save k-effective
cmfd % k_cmfd(current_batch) = cmfd % keff
@ -64,7 +69,7 @@ contains
call calc_fission_source()
! calculate weight factors
if (cmfd_feedback) call cmfd_reweight(.true.)
call cmfd_reweight(.true.)
! stop cmfd timer
if (master) call time_cmfd % stop()
@ -77,36 +82,23 @@ contains
subroutine cmfd_init_batch()
use global, only: cmfd_begin, cmfd_on, cmfd_tally_on, &
cmfd_inact_flush, cmfd_act_flush, cmfd_run, &
current_batch, cmfd_hold_weights
use global, only: cmfd_begin, cmfd_on, &
cmfd_reset, cmfd_run, &
current_batch
! Check to activate CMFD diffusion and possible feedback
! this guarantees that when cmfd begins at least one batch of tallies are
! accumulated
if (cmfd_run .and. cmfd_begin == current_batch) then
cmfd_on = .true.
cmfd_tally_on = .true.
end if
! If this is a restart run and we are just replaying batches leave
if (restart_run .and. current_batch <= restart_batch) return
! Check to flush cmfd tallies for active batches, no more inactive flush
if (cmfd_run .and. cmfd_act_flush == current_batch) then
! Check to reset tallies
if (cmfd_run .and. cmfd_reset % contains(current_batch)) then
call cmfd_tally_reset()
cmfd_tally_on = .true.
cmfd_inact_flush(2) = -1
end if
! Check to flush cmfd tallies during inactive batches (>= on number of
! flushes important as the code will flush on the first batch which we
! dont want to count)
if (cmfd_run .and. mod(current_batch,cmfd_inact_flush(1)) &
== 0 .and. cmfd_inact_flush(2) > 0 .and. cmfd_begin < current_batch) then
cmfd_hold_weights = .true.
call cmfd_tally_reset()
cmfd_inact_flush(2) = cmfd_inact_flush(2) - 1
end if
end subroutine cmfd_init_batch
@ -139,6 +131,7 @@ contains
use constants, only: CMFD_NOACCEL, ZERO, TWO
use global, only: cmfd, cmfd_coremap, master, entropy_on, current_batch
use string, only: to_str
#ifdef MPI
use global, only: mpi_err
@ -267,6 +260,7 @@ contains
use mesh_header, only: StructuredMesh
use mesh, only: count_bank_sites, get_mesh_indices
use search, only: binary_search
use string, only: to_str
#ifdef MPI
use global, only: mpi_err
@ -287,7 +281,6 @@ contains
logical :: in_mesh ! source site is inside mesh
type(StructuredMesh), pointer :: m ! point to mesh
real(8), allocatable :: egrid(:) ! energy grid
! Associate pointer
m => meshes(n_user_meshes + 1)
@ -308,19 +301,16 @@ contains
cmfd % weightfactors = ONE
end if
! Allocate energy grid and reverse cmfd energy grid
if (.not. allocated(egrid)) allocate(egrid(ng + 1))
egrid = (/(cmfd % egrid(ng - i + 2), i = 1, ng + 1)/)
! Compute new weight factors
if (new_weights) then
! Zero out weights
cmfd%weightfactors = ZERO
! Set weight factors to a default 1.0
cmfd%weightfactors = ONE
! Count bank sites in mesh
call count_bank_sites(m, source_bank, cmfd%sourcecounts, egrid, &
! Count bank sites in mesh and reverse due to egrid structure
call count_bank_sites(m, source_bank, cmfd%sourcecounts, cmfd % egrid, &
sites_outside=outside, size_bank=work)
cmfd % sourcecounts = cmfd%sourcecounts(ng:1:-1,:,:,:)
! Check for sites outside of the mesh
if (master .and. outside) then
@ -336,12 +326,14 @@ contains
end where
end if
if (.not. cmfd_feedback) return
! Broadcast weight factors to all procs
#ifdef MPI
call MPI_BCAST(cmfd % weightfactors, ng*nx*ny*nz, MPI_REAL8, 0, &
MPI_COMM_WORLD, mpi_err)
#endif
end if
end if
! begin loop over source bank
do i = 1, int(work,4)
@ -378,9 +370,6 @@ contains
end do
! Deallocate all
if (allocated(egrid)) deallocate(egrid)
end subroutine cmfd_reweight
!===============================================================================

View file

@ -83,6 +83,9 @@ module cmfd_header
! List of CMFD k
real(8), allocatable :: k_cmfd(:)
! Balance keff
real(8) :: keff_bal
end type cmfd_type
contains

View file

@ -62,16 +62,20 @@ contains
use error, only: fatal_error, warning
use global
use output, only: write_message
use string, only: lower_case
use string, only: to_lower
use xml_interface
use, intrinsic :: ISO_FORTRAN_ENV
integer :: i
integer :: ng
integer :: n_params
integer, allocatable :: iarray(:)
integer, allocatable :: int_array(:)
logical :: file_exists ! does cmfd.xml exist?
logical :: found
character(MAX_LINE_LEN) :: filename
character(MAX_LINE_LEN) :: temp_str
real(8) :: gs_tol(2)
type(Node), pointer :: doc => null()
type(Node), pointer :: node_mesh => null()
@ -151,91 +155,121 @@ contains
! Set feedback logical
if (check_for_node(doc, "feedback")) then
call get_node_value(doc, "feedback", temp_str)
call lower_case(temp_str)
temp_str = to_lower(temp_str)
if (trim(temp_str) == 'true' .or. trim(temp_str) == '1') &
cmfd_feedback = .true.
cmfd_feedback = .true.
end if
! Set downscatter logical
if (check_for_node(doc, "downscatter")) then
call get_node_value(doc, "downscatter", temp_str)
call lower_case(temp_str)
temp_str = to_lower(temp_str)
if (trim(temp_str) == 'true' .or. trim(temp_str) == '1') &
cmfd_downscatter = .true.
cmfd_downscatter = .true.
end if
! Reset dhat parameters
if (check_for_node(doc, "dhat_reset")) then
call get_node_value(doc, "dhat_reset", temp_str)
temp_str = to_lower(temp_str)
if (trim(temp_str) == 'true' .or. trim(temp_str) == '1') &
dhat_reset = .true.
end if
! Set the solver type
if (check_for_node(doc, "solver")) &
call get_node_value(doc, "solver", cmfd_solver_type)
call get_node_value(doc, "solver", cmfd_solver_type)
! Set monitoring
if (check_for_node(doc, "snes_monitor")) then
call get_node_value(doc, "snes_monitor", temp_str)
call lower_case(temp_str)
temp_str = to_lower(temp_str)
if (trim(temp_str) == 'true' .or. trim(temp_str) == '1') &
cmfd_snes_monitor = .true.
cmfd_snes_monitor = .true.
end if
if (check_for_node(doc, "ksp_monitor")) then
call get_node_value(doc, "ksp_monitor", temp_str)
call lower_case(temp_str)
temp_str = to_lower(temp_str)
if (trim(temp_str) == 'true' .or. trim(temp_str) == '1') &
cmfd_ksp_monitor = .true.
cmfd_ksp_monitor = .true.
end if
if (check_for_node(doc, "power_monitor")) then
call get_node_value(doc, "power_monitor", temp_str)
call lower_case(temp_str)
temp_str = to_lower(temp_str)
if (trim(temp_str) == 'true' .or. trim(temp_str) == '1') &
cmfd_power_monitor = .true.
cmfd_power_monitor = .true.
end if
! Output logicals
if (check_for_node(doc, "write_matrices")) then
call get_node_value(doc, "write_matices", temp_str)
call lower_case(temp_str)
call get_node_value(doc, "write_matrices", temp_str)
temp_str = to_lower(temp_str)
if (trim(temp_str) == 'true' .or. trim(temp_str) == '1') &
cmfd_write_matrices = .true.
cmfd_write_matrices = .true.
end if
! Run an adjoint calc
if (check_for_node(doc, "run_adjoint")) then
call get_node_value(doc, "run_adjoint", temp_str)
call lower_case(temp_str)
temp_str = to_lower(temp_str)
if (trim(temp_str) == 'true' .or. trim(temp_str) == '1') &
#ifndef PETSC
message = 'Must use PETSc when running adjoint option.'
call fatal_error()
#endif
cmfd_run_adjoint = .true.
end if
! Batch to begin cmfd
if (check_for_node(doc, "begin")) &
call get_node_value(doc, "begin", cmfd_begin)
call get_node_value(doc, "begin", cmfd_begin)
! Tally during inactive batches
if (check_for_node(doc, "inactive")) then
call get_node_value(doc, "inactive", temp_str)
call lower_case(temp_str)
if (trim(temp_str) == 'false' .or. trim(temp_str) == '0') &
cmfd_tally_on = .false.
! Check for cmfd tally resets
if (check_for_node(doc, "tally_reset")) then
n_cmfd_resets = get_arraysize_integer(doc, "tally_reset")
else
n_cmfd_resets = 0
end if
if (n_cmfd_resets > 0) then
allocate(int_array(n_cmfd_resets))
call get_node_array(doc, "tally_reset", int_array)
do i = 1, n_cmfd_resets
call cmfd_reset % add(int_array(i))
end do
deallocate(int_array)
end if
! Inactive batch flush window
if (check_for_node(doc, "inactive_flush")) &
call get_node_value(doc, "inactive_flush", cmfd_inact_flush(1))
if (check_for_node(doc, "num_flushes")) &
call get_node_value(doc, "num_flushes", cmfd_inact_flush(2))
! Last flush before active batches
if (check_for_node(doc, "active_flush")) &
call get_node_value(doc, "active_flush", cmfd_act_flush)
! Get display
if (check_for_node(doc, "display")) &
call get_node_value(doc, "display", cmfd_display)
call get_node_value(doc, "display", cmfd_display)
if (trim(cmfd_display) == 'dominance' .and. &
trim(cmfd_solver_type) /= 'power') then
trim(cmfd_solver_type) /= 'power') then
message = 'Dominance Ratio only aviable with power iteration solver'
call warning()
cmfd_display = ''
end if
! Read in spectral radius estimate and tolerances
if (check_for_node(doc, "spectral")) &
call get_node_value(doc, "spectral", cmfd_spectral)
if (check_for_node(doc, "shift")) &
call get_node_value(doc, "shift", cmfd_shift)
if (check_for_node(doc, "ktol")) &
call get_node_value(doc, "ktol", cmfd_ktol)
if (check_for_node(doc, "stol")) &
call get_node_value(doc, "stol", cmfd_stol)
if (check_for_node(doc, "gauss_seidel_tolerance")) then
n_params = get_arraysize_double(doc, "gauss_seidel_tolerance")
if (n_params /= 2) then
message = 'Gauss Seidel tolerance is not 2 parameters &
&(absolute, relative).'
call fatal_error()
end if
call get_node_array(doc, "gauss_seidel_tolerance", gs_tol)
cmfd_atoli = gs_tol(1)
cmfd_rtoli = gs_tol(2)
end if
! Create tally objects
call create_cmfd_tally(doc)
@ -405,9 +439,9 @@ contains
! Set reset property
if (check_for_node(doc, "reset")) then
call get_node_value(doc, "reset", temp_str)
call lower_case(temp_str)
temp_str = to_lower(temp_str)
if (trim(temp_str) == 'true' .or. trim(temp_str) == '1') &
t % reset = .true.
t % reset = .true.
end if
! Set up mesh filter

View file

@ -242,7 +242,7 @@ contains
subroutine convergence(iter)
use constants, only: ONE, TINY_BIT
use constants, only: ONE, ZERO
use global, only: cmfd_power_monitor, master
use, intrinsic :: ISO_FORTRAN_ENV
@ -255,7 +255,7 @@ contains
kerr = abs(k_o - k_n)/k_n
! Calculate max error in source
where (s_n % val > TINY_BIT)
where (s_n % val > ZERO)
serr_v % val = ((s_n % val - s_o % val)/s_n % val)**2
end where
serr = sqrt(ONE/dble(s_n % n) * sum(serr_v % val))

819
src/cmfd_solver.F90 Normal file
View file

@ -0,0 +1,819 @@
module cmfd_solver
! This module contains routines to execute the power iteration solver
use cmfd_loss_operator, only: init_loss_matrix, build_loss_matrix
use cmfd_prod_operator, only: init_prod_matrix, build_prod_matrix
use matrix_header, only: Matrix
use vector_header, only: Vector
implicit none
private
public :: cmfd_solver_execute
real(8) :: k_n ! new k-eigenvalue
real(8) :: k_o ! old k-eigenvalue
real(8) :: k_s ! shift of eigenvalue
real(8) :: k_ln ! new shifted eigenvalue
real(8) :: k_lo ! old shifted eigenvalue
real(8) :: norm_n ! current norm of source vector
real(8) :: norm_o ! old norm of source vector
real(8) :: kerr ! error in keff
real(8) :: serr ! error in source
real(8) :: ktol ! tolerance on keff
real(8) :: stol ! tolerance on source
logical :: adjoint_calc ! run an adjoint calculation
type(Matrix) :: loss ! cmfd loss matrix
type(Matrix) :: prod ! cmfd prod matrix
type(Vector) :: phi_n ! new flux vector
type(Vector) :: phi_o ! old flux vector
type(Vector) :: s_n ! new source vector
type(Vector) :: s_o ! old flux vector
type(Vector) :: serr_v ! error in source
! CMFD linear solver interface
procedure(linsolve), pointer :: cmfd_linsolver => null()
abstract interface
subroutine linsolve(A, b, x, tol, i)
import :: Matrix
import :: Vector
type(Matrix), intent(inout) :: A
type(Vector), intent(inout) :: b
type(Vector), intent(inout) :: x
real(8), intent(in) :: tol
integer, intent(out) :: i
end subroutine linsolve
end interface
contains
!===============================================================================
! CMFD_SOLVER_EXECUTE sets up and runs power iteration solver for CMFD
!===============================================================================
subroutine cmfd_solver_execute(adjoint)
use global, only: cmfd_adjoint_type, time_cmfdbuild, time_cmfdsolve
logical, optional, intent(in) :: adjoint ! adjoint calc
logical :: physical_adjoint = .false.
! Check for adjoint execution
adjoint_calc = .false.
if (present(adjoint)) adjoint_calc = adjoint
! Check for physical adjoint
if (adjoint_calc .and. trim(cmfd_adjoint_type) == 'physical') &
physical_adjoint = .true.
! Start timer for build
call time_cmfdbuild % start()
! Initialize matrices and vectors
call init_data(physical_adjoint)
! Check for mathematical adjoint calculation
if (adjoint_calc .and. trim(cmfd_adjoint_type) == 'math') &
call compute_adjoint()
! Stop timer for build
call time_cmfdbuild % stop()
! Begin power iteration
call time_cmfdsolve % start()
call execute_power_iter()
call time_cmfdsolve % stop()
! Extract results
call extract_results()
! Deallocate data
call finalize()
end subroutine cmfd_solver_execute
!===============================================================================
! INIT_DATA allocates matrices and vectors for CMFD solution
!===============================================================================
subroutine init_data(adjoint)
use constants, only: ONE, ZERO
use error, only: fatal_error
use global, only: cmfd, cmfd_shift, keff, cmfd_ktol, cmfd_stol, &
cmfd_write_matrices
logical, intent(in) :: adjoint
integer :: n ! problem size
real(8) :: guess ! initial guess
real(8) :: dw ! eigenvalue shift
! Set up matrices
call init_loss_matrix(loss)
call init_prod_matrix(prod)
! Get problem size
n = loss % n
! Set up flux vectors
call phi_n % create(n)
call phi_o % create(n)
! Set up source vectors
call s_n % create(n)
call s_o % create(n)
call serr_v % create(n)
! Set initial guess
guess = ONE
phi_n % val = guess
phi_o % val = guess
k_n = keff
k_o = k_n
dw = cmfd_shift
k_s = k_o + dw
k_ln = ONE/(ONE/k_n - ONE/k_s)
k_lo = k_ln
! Fill in loss matrix
call build_loss_matrix(loss, adjoint=adjoint)
! Fill in production matrix
call build_prod_matrix(prod, adjoint=adjoint)
! Finalize setup of CSR matrices
call loss % assemble()
call prod % assemble()
if (cmfd_write_matrices) then
call loss % write('loss.dat')
call prod % write('prod.dat')
end if
! Set norms to 0
norm_n = ZERO
norm_o = ZERO
! Set up solver
select case(cmfd % indices(4))
case(1)
cmfd_linsolver => cmfd_linsolver_1g
case(2)
cmfd_linsolver => cmfd_linsolver_2g
case default
cmfd_linsolver => cmfd_linsolver_ng
end select
! Set tolerances
ktol = cmfd_ktol
stol = cmfd_stol
end subroutine init_data
!===============================================================================
! COMPUTE_ADJOINT computes a mathematical adjoint of CMFD problem
!===============================================================================
subroutine compute_adjoint()
use error, only: fatal_error
#ifdef PETSC
use global, only: cmfd_write_matrices
#else
use global, only: message
#endif
#ifdef PETSC
! Transpose matrices
call loss % transpose()
call prod % transpose()
! Write out matrix in binary file (debugging)
if (cmfd_write_matrices) then
call loss % write_petsc_binary('adj_lossmat.bin')
call prod % write_petsc_binary('adj_prodmat.bin')
end if
#else
message = 'Adjoint calculations only allowed with PETSc'
call fatal_error()
#endif
end subroutine compute_adjoint
!===============================================================================
! EXECUTE_POWER_ITER is the main power iteration routine
! for the cmfd calculation
!===============================================================================
subroutine execute_power_iter()
use constants, only: ONE
use error, only: fatal_error
use global, only: cmfd_atoli, cmfd_rtoli, message
integer :: i ! iteration counter
integer :: innerits ! # of inner iterations
integer :: totalits ! total number of inners
logical :: iconv ! did the problem converged
real(8) :: atoli ! absolute minimum tolerance
real(8) :: rtoli ! relative tolerance based on source conv
real(8) :: toli ! the current tolerance of inners
! Reset convergence flag
iconv = .false.
! Set up tolerances
atoli = cmfd_atoli
rtoli = cmfd_rtoli
toli = rtoli*100._8
! Perform shift
call wielandt_shift()
totalits = 0
! Begin power iteration
do i = 1, 10000
! Check if reached iteration 10000
if (i == 10000) then
message = 'Reached maximum iterations in CMFD power iteration solver.'
call fatal_error()
end if
! Compute source vector
call prod % vector_multiply(phi_o, s_o)
! Normalize source vector
s_o % val = s_o % val / k_lo
! Compute new flux vector
call cmfd_linsolver(loss, s_o, phi_n, toli, innerits)
! Compute new source vector
call prod % vector_multiply(phi_n, s_n)
! Compute new shifted eigenvalue
k_ln = sum(s_n % val) / sum(s_o % val)
! Compute new eigenvalue
k_n = ONE/(ONE/k_ln + ONE/k_s)
! Renormalize the old source
s_o % val = s_o % val * k_lo
! Check convergence
call convergence(i, innerits, iconv)
totalits = totalits + innerits
! Break loop if converged
if (iconv) exit
! Record old values
phi_o % val = phi_n % val
k_o = k_n
k_lo = k_ln
norm_o = norm_n
! Get new tolerance for inners
toli = max(atoli, rtoli*serr)
end do
end subroutine execute_power_iter
!===============================================================================
! WIELANDT SHIFT
!===============================================================================
subroutine wielandt_shift()
use constants, only: ONE
integer :: irow ! row counter
integer :: icol ! col counter
integer :: jcol ! current col index in prod matrix
! perform subtraction
jcol = 1
ROWS: do irow = 1, loss % n
COLS: do icol = loss % get_row(irow), loss % get_row(irow + 1) - 1
if (loss % get_col(icol) == prod % get_col(jcol) .and. &
jcol < prod % get_row(irow + 1)) then
loss % val(icol) = loss % val(icol) - ONE/k_s*prod % val(jcol)
jcol = jcol + 1
end if
end do COLS
end do ROWS
end subroutine wielandt_shift
!===============================================================================
! CONVERGENCE checks the convergence of the CMFD problem
!===============================================================================
subroutine convergence(iter, innerits, iconv)
use constants, only: ONE, ZERO
use global, only: cmfd_power_monitor, master
use, intrinsic :: ISO_FORTRAN_ENV
integer, intent(in) :: iter ! outer iteration number
integer, intent(in) :: innerits ! inner iteration nubmer
logical, intent(out) :: iconv ! convergence logical
! Reset convergence flag
iconv = .false.
! Calculate error in keff
kerr = abs(k_o - k_n)/k_n
! Calculate max error in source
where (s_n % val > ZERO)
serr_v % val = ((s_n % val - s_o % val)/s_n % val)**2
end where
serr = sqrt(ONE/dble(s_n % n) * sum(serr_v % val))
! Check for convergence
if(kerr < ktol .and. serr < stol) iconv = .true.
! Save the L2 norm of the source
norm_n = serr
! Print out to user
if (cmfd_power_monitor .and. master) then
write(OUTPUT_UNIT,FMT='(I0,":",T10,"k-eff: ",F0.8,T30,"k-error: ", &
&1PE12.5,T55, "src-error: ",1PE12.5,T80,I0)') iter, k_n, kerr, &
serr, innerits
end if
end subroutine convergence
!===============================================================================
! CMFD_LINSOLVER_1g solves the CMFD linear system
!===============================================================================
subroutine cmfd_linsolver_1g(A, b, x, tol, its)
use constants, only: ONE, ZERO
use error, only: fatal_error
use global, only: cmfd, cmfd_spectral, message
type(Matrix), intent(inout) :: A ! coefficient matrix
type(Vector), intent(inout) :: b ! right hand side vector
type(Vector), intent(inout) :: x ! unknown vector
real(8), intent(in) :: tol ! tolerance on final error
integer, intent(out) :: its ! number of inner iterations
integer :: g ! group index
integer :: i ! loop counter for x
integer :: j ! loop counter for y
integer :: k ! loop counter for z
integer :: n ! total size of vector
integer :: nx ! maximum dimension in x direction
integer :: ny ! maximum dimension in y direction
integer :: nz ! maximum dimension in z direction
integer :: ng ! number of energy groups
integer :: igs ! Gauss-Seidel iteration counter
integer :: irb ! Red/Black iteration switch
integer :: irow ! row iteration
integer :: icol ! iteration counter over columns
integer :: didx ! index for diagonal component
logical :: found ! did we find col
real(8) :: tmp1 ! temporary sum g1
real(8) :: x1 ! new g1 value of x
real(8) :: err ! error in convergence of solution
real(8) :: w ! overrelaxation parameter
type(Vector) :: tmpx ! temporary solution vector
! Set overrelaxation parameter
w = ONE
! Dimensions
ng = 1
nx = cmfd % indices(1)
ny = cmfd % indices(2)
nz = cmfd % indices(3)
n = A % n
! Perform Gauss Seidel iterations
GS: do igs = 1, 10000
! Check for max iterations met
if (igs == 10000) then
message = 'Maximum Gauss-Seidel iterations encountered.'
call fatal_error()
endif
! Copy over x vector
call tmpx % copy(x)
! Perform red/black gs iterations
REDBLACK: do irb = 0,1
! Begin loop around matrix rows
ROWS: do irow = 1, n
! Get spatial location
call matrix_to_indices(irow, g, i, j, k, ng, nx, ny, nz)
! Filter out black cells (even)
if (mod(i+j+k,2) == irb) cycle
! Get the index of the diagonals for both rows
call A % search_indices(irow, irow, didx, found)
! Perform temporary sums, first do left of diag block, then right of diag block
tmp1 = ZERO
do icol = A % get_row(irow), didx - 1
tmp1 = tmp1 + A % val(icol)*x % val(A % get_col(icol))
end do
do icol = didx + 1, A % get_row(irow + 1) - 1
tmp1 = tmp1 + A % val(icol)*x % val(A % get_col(icol))
end do
! Solve for new x
x1 = (b % val(irow) - tmp1)/A % val(didx)
! Perform overrelaxation
x % val(irow) = (ONE - w)*x % val(irow) + w*x1
end do ROWS
end do REDBLACK
! Check convergence
err = sqrt(sum(((tmpx % val - x % val)/tmpx % val)**2)/n)
its = igs
if (err < tol) exit
! Calculation new overrelaxation parameter
w = ONE/(ONE - 0.25_8*cmfd_spectral*w)
end do GS
call tmpx % destroy()
end subroutine cmfd_linsolver_1g
!===============================================================================
! CMFD_LINSOLVER_2G solves the CMFD linear system
!===============================================================================
subroutine cmfd_linsolver_2g(A, b, x, tol, its)
use constants, only: ONE, ZERO
use error, only: fatal_error
use global, only: cmfd, cmfd_spectral, message
type(Matrix), intent(inout) :: A ! coefficient matrix
type(Vector), intent(inout) :: b ! right hand side vector
type(Vector), intent(inout) :: x ! unknown vector
real(8), intent(in) :: tol ! tolerance on final error
integer, intent(out) :: its ! number of inner iterations
integer :: g ! group index
integer :: i ! loop counter for x
integer :: j ! loop counter for y
integer :: k ! loop counter for z
integer :: n ! total size of vector
integer :: nx ! maximum dimension in x direction
integer :: ny ! maximum dimension in y direction
integer :: nz ! maximum dimension in z direction
integer :: ng ! number of energy groups
integer :: d1idx ! index of row "1" diagonal
integer :: d2idx ! index of row "2" diagonal
integer :: igs ! Gauss-Seidel iteration counter
integer :: irb ! Red/Black iteration switch
integer :: irow ! row iteration
integer :: icol ! iteration counter over columns
logical :: found ! did we find col
real(8) :: m11 ! block diagonal component 1,1
real(8) :: m12 ! block diagonal component 1,2
real(8) :: m21 ! block diagonal component 2,1
real(8) :: m22 ! block diagonal component 2,2
real(8) :: dm ! determinant of block diagonal
real(8) :: d11 ! inverse component 1,1
real(8) :: d12 ! inverse component 1,2
real(8) :: d21 ! inverse component 2,1
real(8) :: d22 ! inverse component 2,2
real(8) :: tmp1 ! temporary sum g1
real(8) :: tmp2 ! temporary sum g2
real(8) :: x1 ! new g1 value of x
real(8) :: x2 ! new g2 value of x
real(8) :: err ! error in convergence of solution
real(8) :: w ! overrelaxation parameter
type(Vector) :: tmpx ! temporary solution vector
! Set tolerance and overrelaxation parameter
w = ONE
! Dimensions
ng = 2
nx = cmfd % indices(1)
ny = cmfd % indices(2)
nz = cmfd % indices(3)
n = A % n
! Perform Gauss Seidel iterations
GS: do igs = 1, 10000
! Check for max iterations met
if (igs == 10000) then
message = 'Maximum Gauss-Seidel iterations encountered.'
call fatal_error()
endif
! Copy over x vector
call tmpx % copy(x)
! Perform red/black gs iterations
REDBLACK: do irb = 0,1
! Begin loop around matrix rows
ROWS: do irow = 1, n, 2
! Get spatial location
call matrix_to_indices(irow, g, i, j, k, ng, nx, ny, nz)
! Filter out black cells (even)
if (mod(i+j+k,2) == irb) cycle
! Get the index of the diagonals for both rows
call A % search_indices(irow, irow, d1idx, found)
call A % search_indices(irow + 1, irow + 1, d2idx, found)
! Get block diagonal
m11 = A % val(d1idx) ! group 1 diagonal
m12 = A % val(d1idx + 1) ! group 1 right of diagonal (sorted by col)
m21 = A % val(d2idx - 1) ! group 2 left of diagonal (sorted by col)
m22 = A % val(d2idx) ! group 2 diagonal
! Analytically invert the diagonal
dm = m11*m22 - m12*m21
d11 = m22/dm
d12 = -m12/dm
d21 = -m21/dm
d22 = m11/dm
! Perform temporary sums, first do left of diag block, then right of diag block
tmp1 = ZERO
tmp2 = ZERO
do icol = A % get_row(irow), d1idx - 1
tmp1 = tmp1 + A % val(icol)*x % val(A % get_col(icol))
end do
do icol = A % get_row(irow + 1), d2idx - 2
tmp2 = tmp2 + A % val(icol)*x % val(A % get_col(icol))
end do
do icol = d1idx + 2, A % get_row(irow + 1) - 1
tmp1 = tmp1 + A % val(icol)*x % val(A % get_col(icol))
end do
do icol = d2idx + 1, A % get_row(irow + 2) - 1
tmp2 = tmp2 + A % val(icol)*x % val(A % get_col(icol))
end do
! Adjust with RHS vector
tmp1 = b % val(irow) - tmp1
tmp2 = b % val(irow + 1) - tmp2
! Solve for new x
x1 = d11*tmp1 + d12*tmp2
x2 = d21*tmp1 + d22*tmp2
! Perform overrelaxation
x % val(irow) = (ONE - w)*x % val(irow) + w*x1
x % val(irow + 1) = (ONE - w)*x % val(irow + 1) + w*x2
end do ROWS
end do REDBLACK
! Check convergence
err = sqrt(sum(((tmpx % val - x % val)/tmpx % val)**2)/n)
its = igs
if (err < tol) exit
! Calculation new overrelaxation parameter
w = ONE/(ONE - 0.25_8*cmfd_spectral*w)
end do GS
call tmpx % destroy()
end subroutine cmfd_linsolver_2g
!===============================================================================
! CMFD_LINSOLVER_ng solves the CMFD linear system
!===============================================================================
subroutine cmfd_linsolver_ng(A, b, x, tol, its)
use constants, only: ONE, ZERO
use error, only: fatal_error
use global, only: cmfd, cmfd_spectral, message
type(Matrix), intent(inout) :: A ! coefficient matrix
type(Vector), intent(inout) :: b ! right hand side vector
type(Vector), intent(inout) :: x ! unknown vector
real(8), intent(in) :: tol ! tolerance on final error
integer, intent(out) :: its ! number of inner iterations
integer :: g ! group index
integer :: i ! loop counter for x
integer :: j ! loop counter for y
integer :: k ! loop counter for z
integer :: n ! total size of vector
integer :: nx ! maximum dimension in x direction
integer :: ny ! maximum dimension in y direction
integer :: nz ! maximum dimension in z direction
integer :: ng ! number of energy groups
integer :: igs ! Gauss-Seidel iteration counter
integer :: irow ! row iteration
integer :: icol ! iteration counter over columns
integer :: didx ! index for diagonal component
logical :: found ! did we find col
real(8) :: tmp1 ! temporary sum g1
real(8) :: x1 ! new g1 value of x
real(8) :: err ! error in convergence of solution
real(8) :: w ! overrelaxation parameter
type(Vector) :: tmpx ! temporary solution vector
! Set overrelaxation parameter
w = ONE
! Dimensions
ng = 1
nx = cmfd % indices(1)
ny = cmfd % indices(2)
nz = cmfd % indices(3)
n = A % n
! Perform Gauss Seidel iterations
GS: do igs = 1, 10000
! Check for max iterations met
if (igs == 10000) then
message = 'Maximum Gauss-Seidel iterations encountered.'
call fatal_error()
endif
! Copy over x vector
call tmpx % copy(x)
! Begin loop around matrix rows
ROWS: do irow = 1, n
! Get spatial location
call matrix_to_indices(irow, g, i, j, k, ng, nx, ny, nz)
! Get the index of the diagonals for both rows
call A % search_indices(irow, irow, didx, found)
! Perform temporary sums, first do left of diag block, then right of diag block
tmp1 = ZERO
do icol = A % get_row(irow), didx - 1
tmp1 = tmp1 + A % val(icol)*x % val(A % get_col(icol))
end do
do icol = didx + 1, A % get_row(irow + 1) - 1
tmp1 = tmp1 + A % val(icol)*x % val(A % get_col(icol))
end do
! Solve for new x
x1 = (b % val(irow) - tmp1)/A % val(didx)
! Perform overrelaxation
x % val(irow) = (ONE - w)*x % val(irow) + w*x1
end do ROWS
! Check convergence
err = sqrt(sum(((tmpx % val - x % val)/tmpx % val)**2)/n)
its = igs
if (err < tol) exit
! Calculation new overrelaxation parameter
w = ONE/(ONE - 0.25_8*cmfd_spectral*w)
end do GS
call tmpx % destroy()
end subroutine cmfd_linsolver_ng
!===============================================================================
! EXTRACT_RESULTS takes results and puts them in CMFD global data object
!===============================================================================
subroutine extract_results()
use global, only: cmfd, cmfd_write_matrices, current_batch
character(len=25) :: filename ! name of file to write data
integer :: n ! problem size
! Get problem size
n = loss % n
! Allocate in cmfd object if not already allocated
if (adjoint_calc) then
if (.not. allocated(cmfd%adj_phi)) allocate(cmfd%adj_phi(n))
else
if (.not. allocated(cmfd%phi)) allocate(cmfd%phi(n))
end if
! Save values
if (adjoint_calc) then
cmfd % adj_phi = phi_n % val
else
cmfd % phi = phi_n % val
end if
! Save eigenvalue
if(adjoint_calc) then
cmfd%adj_keff = k_n
else
cmfd%keff = k_n
end if
! Normalize phi to 1
if (adjoint_calc) then
cmfd%adj_phi = cmfd%adj_phi/sqrt(sum(cmfd%adj_phi*cmfd%adj_phi))
else
cmfd%phi = cmfd%phi/sqrt(sum(cmfd%phi*cmfd%phi))
end if
! Save dominance ratio
cmfd % dom(current_batch) = norm_n/norm_o
! Write out results
if (cmfd_write_matrices) then
if (adjoint_calc) then
filename = 'adj_fluxvec.bin'
else
filename = 'fluxvec.bin'
end if
#ifdef PETSC
call phi_n % write_petsc_binary(filename)
#endif
end if
end subroutine extract_results
!===============================================================================
! MATRIX_TO_INDICES converts a matrix index to spatial and group indicies
!===============================================================================
subroutine matrix_to_indices(irow, g, i, j, k, ng, nx, ny, nz)
use global, only: cmfd, cmfd_coremap
integer, intent(out) :: i ! iteration counter for x
integer, intent(out) :: j ! iteration counter for y
integer, intent(out) :: k ! iteration counter for z
integer, intent(out) :: g ! iteration counter for groups
integer, intent(in) :: irow ! iteration counter over row (0 reference)
integer, intent(in) :: nx ! maximum number of x cells
integer, intent(in) :: ny ! maximum number of y cells
integer, intent(in) :: nz ! maximum number of z cells
integer, intent(in) :: ng ! maximum number of groups
! Check for core map
if (cmfd_coremap) then
! Get indices from indexmap
g = mod(irow-1, ng) + 1
i = cmfd % indexmap((irow-1)/ng+1,1)
j = cmfd % indexmap((irow-1)/ng+1,2)
k = cmfd % indexmap((irow-1)/ng+1,3)
else
! Compute indices
g = mod(irow-1, ng) + 1
i = mod(irow-1, ng*nx)/ng + 1
j = mod(irow-1, ng*nx*ny)/(ng*nx)+ 1
k = mod(irow-1, ng*nx*ny*nz)/(ng*nx*ny) + 1
end if
end subroutine matrix_to_indices
!===============================================================================
! FINALIZE frees all memory associated with power iteration
!===============================================================================
subroutine finalize()
! Destroy all objects
call loss % destroy()
call prod % destroy()
call phi_n % destroy()
call phi_o % destroy()
call s_n % destroy()
call s_o % destroy()
call serr_v % destroy
end subroutine finalize
end module cmfd_solver

View file

@ -8,7 +8,7 @@ module constants
! OpenMC major, minor, and release numbers
integer, parameter :: VERSION_MAJOR = 0
integer, parameter :: VERSION_MINOR = 6
integer, parameter :: VERSION_RELEASE = 0
integer, parameter :: VERSION_RELEASE = 1
! Revision numbers for binary files
integer, parameter :: REVISION_STATEPOINT = 12
@ -166,54 +166,28 @@ module constants
! Reaction types
integer, parameter :: &
TOTAL_XS = 1, &
ELASTIC = 2, &
N_LEVEL = 4, &
MISC = 5, &
N_2ND = 11, &
N_2N = 16, &
N_3N = 17, &
N_FISSION = 18, &
N_F = 19, &
N_NF = 20, &
N_2NF = 21, &
N_NA = 22, &
N_N3A = 23, &
N_2NA = 24, &
N_3NA = 25, &
N_NP = 28, &
N_N2A = 29, &
N_2N2A = 30, &
N_ND = 32, &
N_NT = 33, &
N_N3HE = 34, &
N_ND2A = 35, &
N_NT2A = 36, &
N_4N = 37, &
N_3NF = 38, &
N_2NP = 41, &
N_3NP = 42, &
N_N2P = 44, &
N_NPA = 45, &
N_N1 = 51, &
N_N40 = 90, &
N_NC = 91, &
N_DISAPPEAR = 101, &
N_GAMMA = 102, &
N_P = 103, &
N_D = 104, &
N_T = 105, &
N_3HE = 106, &
N_A = 107, &
N_2A = 108, &
N_3A = 109, &
N_2P = 111, &
N_PA = 112, &
N_T2A = 113, &
N_D2A = 114, &
N_PD = 115, &
N_PT = 116, &
N_DA = 117
TOTAL_XS = 1, ELASTIC = 2, N_LEVEL = 4, MISC = 5, N_2ND = 11, &
N_2N = 16, N_3N = 17, N_FISSION = 18, N_F = 19, N_NF = 20, &
N_2NF = 21, N_NA = 22, N_N3A = 23, N_2NA = 24, N_3NA = 25, &
N_NP = 28, N_N2A = 29, N_2N2A = 30, N_ND = 32, N_NT = 33, &
N_N3HE = 34, N_ND2A = 35, N_NT2A = 36, N_4N = 37, N_3NF = 38, &
N_2NP = 41, N_3NP = 42, N_N2P = 44, N_NPA = 45, N_N1 = 51, &
N_N40 = 90, N_NC = 91, N_DISAPPEAR = 101, N_GAMMA = 102, N_P = 103, &
N_D = 104, N_T = 105, N_3HE = 106, N_A = 107, N_2A = 108, &
N_3A = 109, N_2P = 111, N_PA = 112, N_T2A = 113, N_D2A = 114, &
N_PD = 115, N_PT = 116, N_DA = 117, N_5N = 152, N_6N = 153, &
N_2NT = 154, N_TA = 155, N_4NP = 156, N_3ND = 157, N_NDA = 158, &
N_2NPA = 159, N_7N = 160, N_8N = 161, N_5NP = 162, N_6NP = 163, &
N_7NP = 164, N_4NA = 165, N_5NA = 166, N_6NA = 167, N_7NA = 168, &
N_4ND = 169, N_5ND = 170, N_6ND = 171, N_3NT = 172, N_4NT = 173, &
N_5NT = 174, N_6NT = 175, N_2N3HE = 176, N_3N3HE = 177, N_4N3HE = 178, &
N_3N2P = 179, N_3N3A = 180, N_3NPA = 181, N_DT = 182, N_NPD = 183, &
N_NPT = 184, N_NDT = 185, N_NP3HE = 186, N_ND3HE = 187, N_NT3HE = 188, &
N_NTA = 189, N_2N2P = 190, N_P3HE = 191, N_D3HE = 192, N_3HEA = 193, &
N_4N2P = 194, N_4N2A = 195, N_4NPA = 196, N_3P = 197, N_N3P = 198, &
N_3N2PA = 199, N_5N2P = 200, N_P0 = 600, N_PC = 649, N_D0 = 650, &
N_DC = 699, N_T0 = 700, N_TC = 749, N_3HE0 = 750, N_3HEC = 799, &
N_A0 = 800, N_AC = 849, N_2N0 = 875, N_2NC = 891
! ACE table types
integer, parameter :: &
@ -348,13 +322,22 @@ module constants
K_TRACKLENGTH = 3, &
LEAKAGE = 4
! ============================================================================
! RANDOM NUMBER STREAM CONSTANTS
integer, parameter :: N_STREAMS = 3
integer, parameter :: STREAM_TRACKING = 1
integer, parameter :: STREAM_TALLIES = 2
integer, parameter :: STREAM_SOURCE = 3
! ============================================================================
! EXTERNAL SOURCE PARAMETERS
! Source spatial distribution types
integer, parameter :: &
SRC_SPACE_BOX = 1, & ! Source in a rectangular prism
SRC_SPACE_POINT = 2 ! Source at a single point
SRC_SPACE_BOX = 1, & ! Source in a rectangular prism
SRC_SPACE_POINT = 2, & ! Source at a single point
SRC_SPACE_FISSION = 3 ! Source in prism filtered by fissionable mats
! Source angular distribution types
integer, parameter :: &
@ -411,9 +394,6 @@ module constants
! constant to represent a zero flux "albedo"
real(8), parameter :: ZERO_FLUX = 999.0_8
! constant to represent albedo rejection
real(8), parameter :: ALBEDO_REJECT = 999.0_8
! constant for writing out no residual
real(8), parameter :: CMFD_NORES = 99999.0_8

View file

@ -5,6 +5,7 @@ module cross_section
use error, only: fatal_error
use fission, only: nu_total
use global
use list_header, only: ListElemInt
use material_header, only: Material
use particle_header, only: Particle
use random_lcg, only: prn
@ -112,7 +113,7 @@ contains
atom_density * micro_xs(i_nuclide) % elastic
! Add contributions to material macroscopic absorption cross section
material_xs % absorption = material_xs % absorption + &
material_xs % absorption = material_xs % absorption + &
atom_density * micro_xs(i_nuclide) % absorption
! Add contributions to material macroscopic fission cross section
@ -122,7 +123,7 @@ contains
! Add contributions to material macroscopic nu-fission cross section
material_xs % nu_fission = material_xs % nu_fission + &
atom_density * micro_xs(i_nuclide) % nu_fission
! Add contributions to material macroscopic energy release from fission
material_xs % kappa_fission = material_xs % kappa_fission + &
atom_density * micro_xs(i_nuclide) % kappa_fission
@ -205,6 +206,8 @@ contains
! Initialize sab treatment to false
micro_xs(i_nuclide) % index_sab = NONE
micro_xs(i_nuclide) % elastic_sab = ZERO
! Initialize URR probability table treatment to false
micro_xs(i_nuclide) % use_ptable = .false.
! Initialize nuclide cross-sections to zero
@ -232,7 +235,7 @@ contains
! Calculate microscopic nuclide nu-fission cross section
micro_xs(i_nuclide) % nu_fission = (ONE - f) * nuc % nu_fission( &
i_grid) + f * nuc % nu_fission(i_grid+1)
! Calculate microscopic nuclide kappa-fission cross section
! The ENDF standard (ENDF-102) states that MT 18 stores
! the fission energy as the Q_value (fission(1))
@ -294,7 +297,7 @@ contains
f = ZERO
else
i_grid = binary_search(sab % inelastic_e_in, sab % n_inelastic_e_in, E)
f = (E - sab%inelastic_e_in(i_grid)) / &
f = (E - sab%inelastic_e_in(i_grid)) / &
(sab%inelastic_e_in(i_grid+1) - sab%inelastic_e_in(i_grid))
end if
@ -360,18 +363,21 @@ contains
integer, intent(in) :: i_nuclide ! index into nuclides array
real(8), intent(in) :: E ! energy
integer :: i_energy ! index for energy
integer :: i_low ! band index at lower bounding energy
integer :: i_up ! band index at upper bounding energy
real(8) :: f ! interpolation factor
real(8) :: r ! pseudo-random number
real(8) :: elastic ! elastic cross section
real(8) :: capture ! (n,gamma) cross section
real(8) :: fission ! fission cross section
real(8) :: inelastic ! inelastic cross section
type(UrrData), pointer, save :: urr => null()
type(Nuclide), pointer, save :: nuc => null()
type(Reaction), pointer, save :: rxn => null()
integer :: i ! loop index
integer :: i_energy ! index for energy
integer :: i_low ! band index at lower bounding energy
integer :: i_up ! band index at upper bounding energy
integer :: same_nuc_idx ! index of same nuclide
real(8) :: f ! interpolation factor
real(8) :: r ! pseudo-random number
real(8) :: elastic ! elastic cross section
real(8) :: capture ! (n,gamma) cross section
real(8) :: fission ! fission cross section
real(8) :: inelastic ! inelastic cross section
logical :: same_nuc ! do we know the xs for this nuclide at this energy?
type(UrrData), pointer, save :: urr => null()
type(Nuclide), pointer, save :: nuc => null()
type(Reaction), pointer, save :: rxn => null()
!$omp threadprivate(urr, nuc, rxn)
micro_xs(i_nuclide) % use_ptable = .true.
@ -392,7 +398,26 @@ contains
(urr % energy(i_energy + 1) - urr % energy(i_energy))
! sample probability table using the cumulative distribution
r = prn()
! if we're dealing with a nuclide that we've previously encountered at
! this energy but a different temperature, use the original random number to
! preserve correlation of temperature in probability tables
same_nuc = .false.
do i = 1, nuc % nuc_list % size()
if (E /= ZERO .and. E == micro_xs(nuc % nuc_list % get_item(i)) % last_E) then
same_nuc = .true.
same_nuc_idx = i
exit
end if
end do
if (same_nuc) then
r = micro_xs(nuc % nuc_list % get_item(same_nuc_idx)) % last_prn
else
r = prn()
micro_xs(i_nuclide) % last_prn = r
end if
i_low = 1
do
if (urr % prob(i_energy, URR_CUM_PROB, i_low) > r) exit
@ -471,6 +496,11 @@ contains
fission = fission * micro_xs(i_nuclide) % fission
end if
! Check for negative values
if (elastic < ZERO) elastic = ZERO
if (fission < ZERO) fission = ZERO
if (capture < ZERO) capture = ZERO
! Set elastic, absorption, fission, and total cross sections. Note that the
! total cross section is calculated as sum of partials rather than using the
! table-provided value
@ -508,4 +538,41 @@ contains
end subroutine find_energy_index
!===============================================================================
! 0K_ELASTIC_XS determines the microscopic 0K elastic cross section
! for a given nuclide at the trial relative energy used in resonance scattering
!===============================================================================
function elastic_xs_0K(E, nuc) result(xs_out)
type(Nuclide), pointer :: nuc ! target nuclide at temperature
integer :: i_grid ! index on nuclide energy grid
real(8) :: f ! interp factor on nuclide energy grid
real(8), intent(inout) :: E ! trial energy
real(8) :: xs_out ! 0K xs at trial energy
! Determine index on nuclide energy grid
if (E < nuc % energy_0K(1)) then
i_grid = 1
elseif (E > nuc % energy_0K(nuc % n_grid_0K)) then
i_grid = nuc % n_grid_0K - 1
else
i_grid = binary_search(nuc % energy_0K, nuc % n_grid_0K, E)
end if
! check for rare case where two energy points are the same
if (nuc % energy_0K(i_grid) == nuc % energy_0K(i_grid+1)) then
i_grid = i_grid + 1
end if
! calculate interpolation factor
f = (E - nuc % energy_0K(i_grid)) &
& / (nuc % energy_0K(i_grid + 1) - nuc % energy_0K(i_grid))
! Calculate microscopic nuclide elastic cross section
xs_out = (ONE - f) * nuc % elastic_0K(i_grid) &
& + f * nuc % elastic_0K(i_grid + 1)
end function elastic_xs_0K
end module cross_section

View file

@ -536,12 +536,12 @@ contains
m % n_dimension = 3
allocate(m % dimension(3))
m % dimension = n
! determine width
m % width = (m % upper_right - m % lower_left) / m % dimension
end if
! allocate and determine width
allocate(m % width(3))
m % width = (m % upper_right - m % lower_left) / m % dimension
! allocate p
allocate(entropy_p(1, m % dimension(1), m % dimension(2), &
m % dimension(3)))

View file

@ -159,7 +159,7 @@ contains
integer, intent(in) :: MT
logical :: fission_event
if (MT == N_FISSION .or. MT == N_F .or. MT == N_NF .or. MT == N_2NF &
if (MT == N_FISSION .or. MT == N_F .or. MT == N_NF .or. MT == N_2NF &
.or. MT == N_3NF) then
fission_event = .true.
else
@ -168,6 +168,28 @@ contains
end function is_fission
!===============================================================================
! IS_DISAPPEARANCE determines if a given MT number is that of a disappearance
! reaction, i.e. a reaction with no neutron in the exit channel
!===============================================================================
function is_disappearance(MT) result(dis)
integer, intent(in) :: MT
logical :: dis
if (MT >= N_GAMMA .and. MT <= N_DA) then
dis = .true.
elseif (MT >= N_P0 .and. MT <= N_AC) then
dis = .true.
elseif (any(MT == [N_TA, N_DT, N_P3HE, N_D3HE, N_3HEA, N_3P])) then
dis = .true.
else
dis = .false.
end if
end function is_disappearance
!===============================================================================
! IS_SCATTER determines if a given MT number is that of a scattering event
!===============================================================================
@ -178,7 +200,7 @@ contains
logical :: scatter_event
if (MT < 100) then
if (MT == N_FISSION .or. MT == N_F .or. MT == N_NF .or. MT == N_2NF &
if (MT == N_FISSION .or. MT == N_F .or. MT == N_NF .or. MT == N_2NF &
.or. MT == N_3NF) then
scatter_event = .false.
else

View file

@ -11,9 +11,6 @@ module fixed_source
use tally, only: synchronize_tallies, setup_active_usertallies
use tracking, only: transport
type(Bank), pointer :: source_site => null()
!$omp threadprivate(source_site)
contains
subroutine run_fixedsource()

View file

@ -1,7 +1,7 @@
module global
use ace_header, only: Nuclide, SAlphaBeta, xsListing, NuclideMicroXS, &
MaterialMacroXS
MaterialMacroXS, Nuclide0K
use bank_header, only: Bank
use cmfd_header
use constants
@ -257,6 +257,10 @@ module global
! Mode to run in (fixed source, eigenvalue, plotting, etc)
integer :: run_mode = NONE
! Fixed source particle bank
type(Bank), pointer :: source_site => null()
!$omp threadprivate(source_site)
! Restart run
logical :: restart_run = .false.
integer :: restart_batch
@ -296,6 +300,9 @@ module global
! Particle restart run
logical :: particle_restart_run = .false.
! Write out initial source
logical :: write_initial_source = .false.
! ============================================================================
! CMFD VARIABLES
@ -326,9 +333,6 @@ module global
integer :: n_cmfd_meshes = 1 ! # of structured meshes
integer :: n_cmfd_tallies = 3 ! # of user-defined tallies
! Flag to hold cmfd weight adjustment factors
logical :: cmfd_hold_weights = .false.
! Eigenvalue solver type
character(len=10) :: cmfd_solver_type = 'power'
@ -341,11 +345,9 @@ module global
! Batch to begin cmfd
integer :: cmfd_begin = 1
! When and how long to flush cmfd tallies during inactive batches
integer :: cmfd_inact_flush(2) = (/9999,1/)
! Batch to last flush before active batches
integer :: cmfd_act_flush = 0
! Tally reset list
integer :: n_cmfd_resets
type(SetInt) :: cmfd_reset
! Compute effective downscatter cross section
logical :: cmfd_downscatter = .false.
@ -363,11 +365,18 @@ module global
! CMFD run logicals
logical :: cmfd_on = .false.
logical :: cmfd_tally_on = .true.
! CMFD display info
character(len=25) :: cmfd_display = 'balance'
! Estimate of spectral radius of CMFD matrices and tolerances
real(8) :: cmfd_spectral = ZERO
real(8) :: cmfd_shift = 1.e6
real(8) :: cmfd_ktol = 1.e-8_8
real(8) :: cmfd_stol = 1.e-8_8
real(8) :: cmfd_atoli = 1.e-10_8
real(8) :: cmfd_rtoli = 1.e-5_8
! Information about state points to be written
integer :: n_state_points = 0
type(SetInt) :: statepoint_batch
@ -381,6 +390,13 @@ module global
logical :: output_xs = .false.
logical :: output_tallies = .true.
! ============================================================================
! RESONANCE SCATTERING VARIABLES
logical :: treat_res_scat = .false. ! is resonance scattering treated?
integer :: n_res_scatterers_total = 0 ! total number of resonant scatterers
type(Nuclide0K), allocatable, target :: nuclides_0K(:) ! 0K nuclides info
!$omp threadprivate(micro_xs, material_xs, fission_bank, n_bank, message, &
!$omp& trace, thread_id, current_work, matching_bins)
@ -414,6 +430,11 @@ contains
end do
deallocate(nuclides)
end if
if (allocated(nuclides_0K)) then
deallocate(nuclides_0K)
end if
if (allocated(sab_tables)) deallocate(sab_tables)
if (allocated(xs_listings)) deallocate(xs_listings)
if (allocated(micro_xs)) deallocate(micro_xs)

View file

@ -1,6 +1,6 @@
module initialize
use ace, only: read_xs
use ace, only: read_xs, same_nuclide_list
use bank_header, only: Bank
use constants
use dict_header, only: DictIntInt, ElemKeyValueII
@ -11,6 +11,7 @@ module initialize
use global
use input_xml, only: read_input_xml, read_cross_sections_xml, &
cells_in_univ_dict, read_plots_xml
use material_header, only: Material
use output, only: title, header, write_summary, print_version, &
print_usage, write_xs_summary, print_plot, &
write_message
@ -104,6 +105,9 @@ contains
call read_xs()
call time_read_xs % stop()
! Create linked lists for multiple instances of the same nuclide
call same_nuclide_list()
! Construct unionized energy grid from cross-sections
if (grid_method == GRID_UNION) then
call time_unionize % start()

View file

@ -11,7 +11,7 @@ module input_xml
use output, only: write_message
use plot_header
use random_lcg, only: prn
use string, only: lower_case, to_str, str_to_int, str_to_real, &
use string, only: to_lower, to_str, str_to_int, str_to_real, &
starts_with, ends_with
use tally_header, only: TallyObject, TallyFilter
use tally_initialize, only: add_tallies
@ -33,7 +33,7 @@ contains
subroutine read_input_xml()
call read_settings_xml()
if ((run_mode /= MODE_PLOTTING)) call read_cross_sections_xml()
if (run_mode /= MODE_PLOTTING) call read_cross_sections_xml()
call read_geometry_xml()
call read_materials_xml()
call read_tallies_xml()
@ -61,16 +61,19 @@ contains
character(MAX_FILE_LEN) :: env_variable
character(MAX_WORD_LEN) :: type
character(MAX_LINE_LEN) :: filename
type(Node), pointer :: doc => null()
type(Node), pointer :: node_mode => null()
type(Node), pointer :: node_source => null()
type(Node), pointer :: node_dist => null()
type(Node), pointer :: node_cutoff => null()
type(Node), pointer :: node_entropy => null()
type(Node), pointer :: node_ufs => null()
type(Node), pointer :: node_sp => null()
type(Node), pointer :: node_output => null()
type(Node), pointer :: node_verb => null()
type(Node), pointer :: doc => null()
type(Node), pointer :: node_mode => null()
type(Node), pointer :: node_source => null()
type(Node), pointer :: node_dist => null()
type(Node), pointer :: node_cutoff => null()
type(Node), pointer :: node_entropy => null()
type(Node), pointer :: node_ufs => null()
type(Node), pointer :: node_sp => null()
type(Node), pointer :: node_output => null()
type(Node), pointer :: node_verb => null()
type(Node), pointer :: node_res_scat => null()
type(Node), pointer :: node_scatterer => null()
type(NodeList), pointer :: node_scat_list => null()
! Display output message
message = "Reading settings XML file..."
@ -261,6 +264,14 @@ contains
call fatal_error()
end if
! Check if we want to write out source
if (check_for_node(node_source, "write_initial")) then
call get_node_value(node_source, "write_initial", temp_str)
temp_str = to_lower(temp_str)
if (trim(temp_str) == 'true' .or. trim(temp_str) == '1') &
write_initial_source = .true.
end if
! Check for external source file
if (check_for_node(node_source, "file")) then
! Copy path of source file
@ -286,11 +297,13 @@ contains
type = ''
if (check_for_node(node_dist, "type")) &
call get_node_value(node_dist, "type", type)
call lower_case(type)
select case (trim(type))
select case (to_lower(type))
case ('box')
external_source % type_space = SRC_SPACE_BOX
coeffs_reqd = 6
case ('fission')
external_source % type_space = SRC_SPACE_FISSION
coeffs_reqd = 6
case ('point')
external_source % type_space = SRC_SPACE_POINT
coeffs_reqd = 3
@ -336,8 +349,7 @@ contains
type = ''
if (check_for_node(node_dist, "type")) &
call get_node_value(node_dist, "type", type)
call lower_case(type)
select case (trim(type))
select case (to_lower(type))
case ('isotropic')
external_source % type_angle = SRC_ANGLE_ISOTROPIC
coeffs_reqd = 0
@ -388,8 +400,7 @@ contains
type = ''
if (check_for_node(node_dist, "type")) &
call get_node_value(node_dist, "type", type)
call lower_case(type)
select case (trim(type))
select case (to_lower(type))
case ('monoenergetic')
external_source % type_energy = SRC_ENERGY_MONO
coeffs_reqd = 1
@ -439,7 +450,7 @@ contains
! Survival biasing
if (check_for_node(doc, "survival_biasing")) then
call get_node_value(doc, "survival_biasing", temp_str)
call lower_case(temp_str)
temp_str = to_lower(temp_str)
if (trim(temp_str) == 'true' .or. trim(temp_str) == '1') &
survival_biasing = .true.
end if
@ -447,7 +458,7 @@ contains
! Probability tables
if (check_for_node(doc, "ptables")) then
call get_node_value(doc, "ptables", temp_str)
call lower_case(temp_str)
temp_str = to_lower(temp_str)
if (trim(temp_str) == 'false' .or. trim(temp_str) == '0') &
urr_ptables_on = .false.
end if
@ -505,6 +516,7 @@ contains
allocate(entropy_mesh)
allocate(entropy_mesh % lower_left(3))
allocate(entropy_mesh % upper_right(3))
allocate(entropy_mesh % width(3))
! Copy values
call get_node_array(node_entropy, "lower_left", &
@ -536,6 +548,11 @@ contains
! Copy dimensions
call get_node_array(node_entropy, "dimension", entropy_mesh % dimension)
! Calculate width
entropy_mesh % width = (entropy_mesh % upper_right - &
entropy_mesh % lower_left) / entropy_mesh % dimension
end if
! Turn on Shannon entropy calculation
@ -678,19 +695,19 @@ contains
! Check if the user has specified to write binary source file
if (check_for_node(node_sp, "separate")) then
call get_node_value(node_sp, "separate", temp_str)
call lower_case(temp_str)
temp_str = to_lower(temp_str)
if (trim(temp_str) == 'true' .or. &
trim(temp_str) == '1') source_separate = .true.
end if
if (check_for_node(node_sp, "write")) then
call get_node_value(node_sp, "write", temp_str)
call lower_case(temp_str)
temp_str = to_lower(temp_str)
if (trim(temp_str) == 'false' .or. &
trim(temp_str) == '0') source_write = .false.
end if
if (check_for_node(node_sp, "overwrite_latest")) then
call get_node_value(node_sp, "overwrite_latest", temp_str)
call lower_case(temp_str)
temp_str = to_lower(temp_str)
if (trim(temp_str) == 'true' .or. &
trim(temp_str) == '1') then
source_latest = .true.
@ -725,7 +742,7 @@ contains
! batch
if (check_for_node(doc, "no_reduce")) then
call get_node_value(doc, "no_reduce", temp_str)
call lower_case(temp_str)
temp_str = to_lower(temp_str)
if (trim(temp_str) == 'true' .or. trim(temp_str) == '1') &
reduce_tallies = .false.
end if
@ -734,7 +751,7 @@ contains
! uncertainties rather than standard deviations
if (check_for_node(doc, "confidence_intervals")) then
call get_node_value(doc, "confidence_intervals", temp_str)
call lower_case(temp_str)
temp_str = to_lower(temp_str)
if (trim(temp_str) == 'true' .or. &
trim(temp_str) == '1') confidence_intervals = .true.
end if
@ -748,7 +765,7 @@ contains
! Check for summary option
if (check_for_node(node_output, "summary")) then
call get_node_value(node_output, "summary", temp_str)
call lower_case(temp_str)
temp_str = to_lower(temp_str)
if (trim(temp_str) == 'true' .or. &
trim(temp_str) == '1') output_summary = .true.
end if
@ -756,7 +773,7 @@ contains
! Check for cross sections option
if (check_for_node(node_output, "cross_sections")) then
call get_node_value(node_output, "cross_sections", temp_str)
call lower_case(temp_str)
temp_str = to_lower(temp_str)
if (trim(temp_str) == 'true' .or. &
trim(temp_str) == '1') output_xs = .true.
end if
@ -764,7 +781,7 @@ contains
! Check for ASCII tallies output option
if (check_for_node(node_output, "tallies")) then
call get_node_value(node_output, "tallies", temp_str)
call lower_case(temp_str)
temp_str = to_lower(temp_str)
if (trim(temp_str) == 'false' .or. &
trim(temp_str) == '0') output_tallies = .false.
end if
@ -773,23 +790,97 @@ contains
! Check for cmfd run
if (check_for_node(doc, "run_cmfd")) then
call get_node_value(doc, "run_cmfd", temp_str)
call lower_case(temp_str)
temp_str = to_lower(temp_str)
if (trim(temp_str) == 'true' .or. trim(temp_str) == '1') then
cmfd_run = .true.
#ifndef PETSC
if (master) then
message = 'CMFD is not available, compile OpenMC with PETSc'
call fatal_error()
end if
#endif
end if
end if
! Resonance scattering parameters
if (check_for_node(doc, "resonance_scattering")) then
call get_node_ptr(doc, "resonance_scattering", node_res_scat)
call get_node_list(node_res_scat, "scatterer", node_scat_list)
! check that a nuclide is specified
if (get_list_size(node_scat_list) >= 1) then
treat_res_scat = .true.
n_res_scatterers_total = get_list_size(node_scat_list)
! store 0K info for resonant scatterers
allocate(nuclides_0K(n_res_scatterers_total))
do i = 1, n_res_scatterers_total
call get_list_item(node_scat_list, i, node_scatterer)
! check to make sure a nuclide is specified
if (.not. check_for_node(node_scatterer, "nuclide")) then
message = "No nuclide specified for scatterer " // trim(to_str(i)) &
// " in settings.xml file!"
call fatal_error()
end if
call get_node_value(node_scatterer, "nuclide", &
nuclides_0K(i) % nuclide)
if (check_for_node(node_scatterer, "method")) then
call get_node_value(node_scatterer, "method", &
nuclides_0K(i) % scheme)
end if
! check to make sure xs name for which method is applied is given
if (.not. check_for_node(node_scatterer, "xs_label")) then
message = "Must specify the temperature dependent name of " // '' &
//"scatterer " // trim(to_str(i)) // " given in cross_sections.xml"
call fatal_error()
end if
call get_node_value(node_scatterer, "xs_label", &
nuclides_0K(i) % name)
! check to make sure 0K xs name for which method is applied is given
if (.not. check_for_node(node_scatterer, "xs_label_0K")) then
message = "Must specify the 0K name of " // '' &
//"scatterer "// trim(to_str(i)) // " given in cross_sections.xml"
call fatal_error()
end if
call get_node_value(node_scatterer, "xs_label_0K", &
nuclides_0K(i) % name_0K)
if (check_for_node(node_scatterer, "E_min")) then
call get_node_value(node_scatterer, "E_min", &
nuclides_0K(i) % E_min)
end if
! check that E_min is non-negative
if (nuclides_0K(i) % E_min < ZERO) then
message = "Lower resonance scattering energy bound is negative"
call fatal_error()
end if
if (check_for_node(node_scatterer, "E_max")) then
call get_node_value(node_scatterer, "E_max", &
nuclides_0K(i) % E_max)
end if
! check that E_max is not less than E_min
if (nuclides_0K(i) % E_max < nuclides_0K(i) % E_min) then
message = "Lower resonance scattering energy bound exceeds upper"
call fatal_error()
end if
nuclides_0K(i) % nuclide = trim(nuclides_0K(i) % nuclide)
nuclides_0K(i) % scheme = to_lower(trim(nuclides_0K(i) % scheme))
nuclides_0K(i) % name = trim(nuclides_0K(i) % name)
nuclides_0K(i) % name_0K = trim(nuclides_0K(i) % name_0K)
end do
else
message = "No resonant scatterers are specified within the " // "" &
// "resonance_scattering element in settings.xml"
call fatal_error()
end if
end if
! Natural element expansion option
if (check_for_node(doc, "natural_elements")) then
call get_node_value(doc, "natural_elements", temp_str)
call lower_case(temp_str)
select case (temp_str)
select case (to_lower(temp_str))
case ('endf/b-vii.0')
default_expand = ENDF_BVII0
case ('endf/b-vii.1')
@ -922,8 +1013,7 @@ contains
word = ''
if (check_for_node(node_cell, "material")) &
call get_node_value(node_cell, "material", word)
call lower_case(word)
select case(word)
select case(to_lower(word))
case ('void')
c % material = MATERIAL_VOID
@ -1092,8 +1182,7 @@ contains
word = ''
if (check_for_node(node_surf, "type")) &
call get_node_value(node_surf, "type", word)
call lower_case(word)
select case(trim(word))
select case(to_lower(word))
case ('x-plane')
s % type = SURF_PX
coeffs_reqd = 1
@ -1154,8 +1243,7 @@ contains
word = ''
if (check_for_node(node_surf, "boundary")) &
call get_node_value(node_surf, "boundary", word)
call lower_case(word)
select case (trim(word))
select case (to_lower(word))
case ('transmission', 'transmit', '')
s % bc = BC_TRANSMIT
case ('vacuum')
@ -1217,8 +1305,7 @@ contains
word = ''
if (check_for_node(node_lat, "type")) &
call get_node_value(node_lat, "type", word)
call lower_case(word)
select case (trim(word))
select case (to_lower(word))
case ('rect', 'rectangle', 'rectangular')
lat % type = LATTICE_RECT
case ('hex', 'hexagon', 'hexagonal')
@ -1449,8 +1536,7 @@ contains
end if
! Adjust material density based on specified units
call lower_case(units)
select case(trim(units))
select case(to_lower(units))
case ('g/cc', 'g/cm3')
mat % density = -val
case ('kg/m3')
@ -1605,7 +1691,7 @@ contains
ALL_NUCLIDES: do j = 1, mat % n_nuclides
! Check that this nuclide is listed in the cross_sections.xml file
name = trim(list_names % get_item(j))
if (.not. xs_listing_dict % has_key(name)) then
if (.not. xs_listing_dict % has_key(to_lower(name))) then
message = "Could not find nuclide " // trim(name) // &
" in cross_sections.xml file!"
call fatal_error()
@ -1620,20 +1706,20 @@ contains
end if
! Find xs_listing and set the name/alias according to the listing
index_list = xs_listing_dict % get_key(name)
index_list = xs_listing_dict % get_key(to_lower(name))
name = xs_listings(index_list) % name
alias = xs_listings(index_list) % alias
! If this nuclide hasn't been encountered yet, we need to add its name
! and alias to the nuclide_dict
if (.not. nuclide_dict % has_key(name)) then
if (.not. nuclide_dict % has_key(to_lower(name))) then
index_nuclide = index_nuclide + 1
mat % nuclide(j) = index_nuclide
call nuclide_dict % add_key(name, index_nuclide)
call nuclide_dict % add_key(alias, index_nuclide)
call nuclide_dict % add_key(to_lower(name), index_nuclide)
call nuclide_dict % add_key(to_lower(alias), index_nuclide)
else
mat % nuclide(j) = nuclide_dict % get_key(name)
mat % nuclide(j) = nuclide_dict % get_key(to_lower(name))
end if
! Copy name and atom/weight percent
@ -1692,7 +1778,7 @@ contains
mat % sab_names(j) = name
! Check that this nuclide is listed in the cross_sections.xml file
if (.not. xs_listing_dict % has_key(name)) then
if (.not. xs_listing_dict % has_key(to_lower(name))) then
message = "Could not find S(a,b) table " // trim(name) // &
" in cross_sections.xml file!"
call fatal_error()
@ -1700,17 +1786,17 @@ contains
! Find index in xs_listing and set the name and alias according to the
! listing
index_list = xs_listing_dict % get_key(name)
index_list = xs_listing_dict % get_key(to_lower(name))
name = xs_listings(index_list) % name
! If this S(a,b) table hasn't been encountered yet, we need to add its
! name and alias to the sab_dict
if (.not. sab_dict % has_key(name)) then
if (.not. sab_dict % has_key(to_lower(name))) then
index_sab = index_sab + 1
mat % i_sab_tables(j) = index_sab
call sab_dict % add_key(name, index_sab)
call sab_dict % add_key(to_lower(name), index_sab)
else
mat % i_sab_tables(j) = sab_dict % get_key(name)
mat % i_sab_tables(j) = sab_dict % get_key(to_lower(name))
end if
end do
end if
@ -1814,14 +1900,14 @@ contains
end if
! Allocate tally array
if (n_user_tallies > 0) then
if (n_user_tallies > 0 .and. run_mode /= MODE_PLOTTING) then
call add_tallies("user", n_user_tallies)
end if
! Check for <assume_separate> setting
if (check_for_node(doc, "assume_separate")) then
call get_node_value(doc, "assume_separate", temp_str)
call lower_case(temp_str)
temp_str = to_lower(temp_str)
if (trim(temp_str) == 'true' .or. trim(temp_str) == '1') &
assume_separate = .true.
end if
@ -1854,8 +1940,7 @@ contains
temp_str = ''
if (check_for_node(node_mesh, "type")) &
call get_node_value(node_mesh, "type", temp_str)
call lower_case(temp_str)
select case (trim(temp_str))
select case (to_lower(temp_str))
case ('rect', 'rectangle', 'rectangular')
m % type = LATTICE_RECT
case ('hex', 'hexagon', 'hexagonal')
@ -1963,6 +2048,9 @@ contains
call mesh_dict % add_key(m % id, i)
end do
! We only need the mesh info for plotting
if (run_mode == MODE_PLOTTING) return
! ==========================================================================
! READ TALLY DATA
@ -2035,7 +2123,7 @@ contains
temp_str = ''
if (check_for_node(node_filt, "type")) &
call get_node_value(node_filt, "type", temp_str)
call lower_case(temp_str)
temp_str = to_lower(temp_str)
! Determine number of bins
if (check_for_node(node_filt, "bins")) then
@ -2263,14 +2351,14 @@ contains
end if
! Check to make sure nuclide specified is in problem
if (.not. nuclide_dict % has_key(word)) then
if (.not. nuclide_dict % has_key(to_lower(word))) then
message = "The nuclide " // trim(word) // " from tally " // &
trim(to_str(t % id)) // " is not present in any material."
call fatal_error()
end if
! Set bin to index in nuclides array
t % nuclide_bins(j) = nuclide_dict % get_key(word)
t % nuclide_bins(j) = nuclide_dict % get_key(to_lower(word))
end do
! Set number of nuclide bins
@ -2301,7 +2389,7 @@ contains
! (i.e., scatter-p#, flux-y#)
n_new = 0
do j = 1, n_words
call lower_case(sarray(j))
sarray(j) = to_lower(sarray(j))
! Find if scores(j) is of the form 'moment-p' or 'moment-y' present in
! MOMENT_STRS(:)
! If so, check the order, store if OK, then reset the number to 'n'
@ -2567,6 +2655,12 @@ contains
! Get index of mesh filter
k = t % find_filter(FILTER_MESH)
! Check to make sure mesh filter was specified
if (k == 0) then
message = "Cannot tally surface current without a mesh filter."
call fatal_error()
end if
! Get pointer to mesh
i_mesh = t % filters(k) % int_bins(1)
m => meshes(i_mesh)
@ -2681,20 +2775,25 @@ contains
subroutine read_plots_xml()
integer i, j
integer n_cols, col_id, n_comp, n_masks
integer :: i, j
integer :: n_cols, col_id, n_comp, n_masks, n_meshlines
integer :: meshid
integer :: i_mesh
integer, allocatable :: iarray(:)
logical :: file_exists ! does plots.xml file exist?
character(MAX_LINE_LEN) :: filename ! absolute path to plots.xml
character(MAX_LINE_LEN) :: temp_str
character(MAX_WORD_LEN) :: meshtype
type(ObjectPlot), pointer :: pl => null()
type(Node), pointer :: doc => null()
type(Node), pointer :: node_plot => null()
type(Node), pointer :: node_col => null()
type(Node), pointer :: node_mask => null()
type(Node), pointer :: node_meshlines => null()
type(NodeList), pointer :: node_plot_list => null()
type(NodeList), pointer :: node_col_list => null()
type(NodeList), pointer :: node_mask_list => null()
type(NodeList), pointer :: node_meshline_list => null()
! Check if plots.xml exists
filename = trim(path_input) // "plots.xml"
@ -2743,7 +2842,7 @@ contains
temp_str = 'slice'
if (check_for_node(node_plot, "type")) &
call get_node_value(node_plot, "type", temp_str)
call lower_case(temp_str)
temp_str = to_lower(temp_str)
select case (trim(temp_str))
case ("slice")
pl % type = PLOT_TYPE_SLICE
@ -2810,7 +2909,7 @@ contains
temp_str = 'xy'
if (check_for_node(node_plot, "basis")) &
call get_node_value(node_plot, "basis", temp_str)
call lower_case(temp_str)
temp_str = to_lower(temp_str)
select case (trim(temp_str))
case ("xy")
pl % basis = PLOT_BASIS_XY
@ -2857,7 +2956,7 @@ contains
temp_str = "cell"
if (check_for_node(node_plot, "color")) &
call get_node_value(node_plot, "color", temp_str)
call lower_case(temp_str)
temp_str = to_lower(temp_str)
select case (trim(temp_str))
case ("cell")
@ -2946,6 +3045,144 @@ contains
end do
end if
! Deal with meshlines
call get_node_list(node_plot, "meshlines", node_meshline_list)
n_meshlines = get_list_size(node_meshline_list)
if (n_meshlines /= 0) then
if (pl % type == PLOT_TYPE_VOXEL) then
message = "Meshlines ignored in voxel plot " // &
trim(to_str(pl % id))
call warning()
end if
select case(n_meshlines)
case (0)
! Skip if no meshlines are specified
case (1)
! Get pointer to meshlines
call get_list_item(node_meshline_list, 1, node_meshlines)
! Check mesh type
if (check_for_node(node_meshlines, "meshtype")) then
call get_node_value(node_meshlines, "meshtype", meshtype)
else
message = "Must specify a meshtype for meshlines " // &
"specification in plot " // trim(to_str(pl % id))
call fatal_error()
end if
! Ensure that there is a linewidth for this meshlines specification
if (check_for_node(node_meshlines, "linewidth")) then
call get_node_value(node_meshlines, "linewidth", &
pl % meshlines_width)
else
message = "Must specify a linewidth for meshlines " // &
"specification in plot " // trim(to_str(pl % id))
call fatal_error()
end if
! Check for color
if (check_for_node(node_meshlines, "color")) then
! Check and make sure 3 values are specified for RGB
if (get_arraysize_double(node_meshlines, "color") /= 3) then
message = "Bad RGB for meshlines color " // &
"in plot " // trim(to_str(pl % id))
call fatal_error()
end if
call get_node_array(node_meshlines, "color", &
pl % meshlines_color % rgb)
else
pl % meshlines_color % rgb = (/ 0, 0, 0 /)
end if
! Set mesh based on type
select case (trim(meshtype))
case ('ufs')
if (.not. associated(ufs_mesh)) then
message = "No UFS mesh for meshlines on plot " // &
trim(to_str(pl % id))
call fatal_error()
end if
pl % meshlines_mesh => ufs_mesh
case ('cmfd')
if (.not. cmfd_run) then
message = "Need CMFD run to plot CMFD mesh for meshlines " // &
"on plot " // trim(to_str(pl % id))
call fatal_error()
end if
i_mesh = cmfd_tallies(1) % &
filters(cmfd_tallies(1) % find_filter(FILTER_MESH)) % &
int_bins(1)
pl % meshlines_mesh => meshes(i_mesh)
case ('entropy')
if (.not. associated(entropy_mesh)) then
message = "No entropy mesh for meshlines on plot " // &
trim(to_str(pl % id))
call fatal_error()
end if
if (.not. allocated(entropy_mesh % dimension)) then
message = "No dimension specified on entropy mesh for " // &
"meshlines on plot " // trim(to_str(pl % id))
call fatal_error()
end if
pl % meshlines_mesh => entropy_mesh
case ('tally')
! Ensure that there is a mesh id if the type is tally
if (check_for_node(node_meshlines, "id")) then
call get_node_value(node_meshlines, "id", meshid)
else
message = "Must specify a mesh id for meshlines tally mesh" // &
"specification in plot " // trim(to_str(pl % id))
call fatal_error()
end if
! Check if the specified tally mesh exists
if (mesh_dict % has_key(meshid)) then
pl % meshlines_mesh => meshes(mesh_dict % get_key(meshid))
if (meshes(meshid) % type /= LATTICE_RECT) then
message = "Non-rectangular mesh specified in meshlines " // &
"for plot " // trim(to_str(pl % id))
call fatal_error()
end if
else
message = "Could not find mesh " // &
trim(to_str(meshid)) // &
" specified in meshlines for plot " // &
trim(to_str(pl % id))
call fatal_error()
end if
case default
message = "Invalid type for meshlines on plot " // &
trim(to_str(pl % id)) // ": " // trim(meshtype)
call fatal_error()
end select
case default
message = "Mutliple meshlines" // &
" specified in plot " // trim(to_str(pl % id))
call fatal_error()
end select
end if
! Deal with masks
call get_node_list(node_plot, "mask", node_mask_list)
n_masks = get_list_size(node_mask_list)
@ -3180,12 +3417,21 @@ contains
end if
! create dictionary entry for both name and alias
call xs_listing_dict % add_key(listing % name, i)
call xs_listing_dict % add_key(to_lower(listing % name), i)
if (check_for_node(node_ace, "alias")) then
call xs_listing_dict % add_key(listing % alias, i)
call xs_listing_dict % add_key(to_lower(listing % alias), i)
end if
end do
! Check that 0K nuclides are listed in the cross_sections.xml file
do i = 1, n_res_scatterers_total
if (.not. xs_listing_dict % has_key(trim(nuclides_0K(i) % name_0K))) then
message = "Could not find nuclide " // trim(nuclides_0K(i) % name_0K) // &
" in cross_sections.xml file!"
call fatal_error()
end if
end do
! Close cross sections XML file
call close_xmldoc(doc)
@ -3211,9 +3457,8 @@ contains
character(2) :: element_name
element_name = name(1:2)
call lower_case(element_name)
select case (element_name)
select case (to_lower(element_name))
case ('h')
call list_names % append('1001.' // xs)
call list_density % append(density * 0.999885_8)

View file

@ -21,6 +21,10 @@ module material_header
! Temporary names read during initialization
character(12), allocatable :: names(:) ! isotope names
character(12), allocatable :: sab_names(:) ! name of S(a,b) table
! Does this material contain fissionable nuclides?
logical :: fissionable = .false.
end type Material
end module material_header

View file

@ -20,19 +20,22 @@ module matrix_header
# endif
logical :: petsc_active
contains
procedure :: create => matrix_create
procedure :: destroy => matrix_destroy
procedure :: add_value => matrix_add_value
procedure :: new_row => matrix_new_row
procedure :: assemble => matrix_assemble
procedure :: get_row => matrix_get_row
procedure :: get_col => matrix_get_col
procedure :: create => matrix_create
procedure :: destroy => matrix_destroy
procedure :: add_value => matrix_add_value
procedure :: new_row => matrix_new_row
procedure :: assemble => matrix_assemble
procedure :: get_row => matrix_get_row
procedure :: get_col => matrix_get_col
procedure :: vector_multiply => matrix_vector_multiply
#ifdef PETSC
procedure :: transpose => matrix_transpose
procedure :: search_indices => matrix_search_indices
procedure :: write => matrix_write
procedure :: copy => matrix_copy
# ifdef PETSC
procedure :: setup_petsc => matrix_setup_petsc
procedure :: write_petsc_binary => matrix_write_petsc_binary
#endif
procedure :: transpose => matrix_transpose
# endif
end type matrix
#ifdef PETSC
@ -359,4 +362,87 @@ contains
end subroutine matrix_vector_multiply
!===============================================================================
! MATRIX_SEARCH_INDICES searches for an index in column corresponding to a row
!===============================================================================
subroutine matrix_search_indices(self, row, col, idx, found)
class(Matrix), intent(inout) :: self
integer, intent(in) :: row
integer, intent(in) :: col
integer, intent(out) :: idx
logical, intent(out) :: found
integer :: j
found = .false.
COLS: do j = self % get_row(row), self % get_row(row + 1) - 1
if (self % get_col(j) == col) then
idx = j
found = .true.
exit
end if
end do COLS
end subroutine matrix_search_indices
!===============================================================================
! MATRIX_WRITE writes a matrix to file
!===============================================================================
subroutine matrix_write(self, filename)
character(*), intent(in) :: filename
class(Matrix), intent(inout) :: self
integer :: unit_
integer :: i
integer :: j
open(newunit=unit_, file=filename)
do i = 1, self % n
do j = self % get_row(i), self % get_row(i + 1) - 1
write(unit_,*) i, self % get_col(j), self % val(j)
end do
end do
close(unit_)
end subroutine matrix_write
!===============================================================================
! MATRIX_COPY copies a matrix
!===============================================================================
subroutine matrix_copy(self, mattocopy)
class(Matrix), intent(inout) :: self
type(Matrix), intent(in) :: mattocopy
! Set n and nnz
self % n_count = mattocopy % n_count
self % nz_count = mattocopy % nz_count
self % n = mattocopy % n
self % nnz = mattocopy % nnz
! Allocate vectors
if (.not.allocated(self % row)) allocate(self % row(self % n + 1))
if (.not.allocated(self % col)) allocate(self % col(self % nnz))
if (.not.allocated(self % val)) allocate(self % val(self % nnz))
! Set PETSc active to false
self % petsc_active = .false.
! Copy over data
self % row = mattocopy % row
self % col = mattocopy % col
self % val = mattocopy % val
end subroutine matrix_copy
end module matrix_header

View file

@ -13,7 +13,7 @@ module output
use mesh, only: mesh_indices_to_bin, bin_to_mesh_indices
use particle_header, only: LocalCoord, Particle
use plot_header
use string, only: upper_case, to_str
use string, only: to_upper, to_str
use tally_header, only: TallyObject
implicit none
@ -130,8 +130,7 @@ contains
if (mod(len_trim(msg),2) == 0) m = m + 1
! convert line to upper case
line = msg
call upper_case(line)
line = to_upper(msg)
! print header based on level
select case (header_level)

View file

@ -28,6 +28,7 @@ contains
subroutine run_particle_restart()
integer(8) :: particle_seed
integer :: previous_run_mode
type(Particle) :: p
! Set verbosity high
@ -37,14 +38,20 @@ contains
call p % initialize()
! Read in the restart information
call read_particle_restart(p)
call read_particle_restart(p, previous_run_mode)
! Set all tallies to 0 for now (just tracking errors)
n_tallies = 0
! Compute random number seed
particle_seed = ((current_batch - 1)*gen_per_batch + &
current_gen - 1)*n_particles + p % id
select case (previous_run_mode)
case (MODE_EIGENVALUE)
particle_seed = ((current_batch - 1)*gen_per_batch + &
current_gen - 1)*n_particles + p % id
case (MODE_FIXEDSOURCE)
particle_seed = p % id
end select
call set_particle_seed(particle_seed)
! Transport neutron
@ -59,9 +66,10 @@ contains
! READ_PARTICLE_RESTART reads the particle restart file
!===============================================================================
subroutine read_particle_restart(p)
subroutine read_particle_restart(p, previous_run_mode)
integer :: int_scalar
integer, intent(inout) :: previous_run_mode
type(Particle), intent(inout) :: p
! Write meessage
@ -79,6 +87,7 @@ contains
call pr % read_data(gen_per_batch, 'gen_per_batch')
call pr % read_data(current_gen, 'current_gen')
call pr % read_data(n_particles, 'n_particles')
call pr % read_data(previous_run_mode, 'run_mode')
call pr % read_data(p % id, 'id')
call pr % read_data(p % wgt, 'weight')
call pr % read_data(p % E, 'energy')

View file

@ -43,7 +43,12 @@ contains
call pr % file_create(filename)
! Get information about source particle
src => source_bank(current_work)
select case (run_mode)
case (MODE_EIGENVALUE)
src => source_bank(current_work)
case (MODE_FIXEDSOURCE)
src => source_site
end select
! Write data to file
call pr % write_data(FILETYPE_PARTICLE_RESTART, 'filetype')
@ -52,6 +57,7 @@ contains
call pr % write_data(gen_per_batch, 'gen_per_batch')
call pr % write_data(current_gen, 'current_gen')
call pr % write_data(n_particles, 'n_particles')
call pr % write_data(run_mode, 'run_mode')
call pr % write_data(p % id, 'id')
call pr % write_data(src % wgt, 'weight')
call pr % write_data(src % E, 'energy')

View file

@ -2,6 +2,7 @@ module physics
use ace_header, only: Nuclide, Reaction, DistEnergy
use constants
use cross_section, only: elastic_xs_0K
use endf, only: reaction_name
use error, only: fatal_error, warning
use fission, only: nu_total, nu_delayed
@ -349,7 +350,7 @@ contains
! Perform collision physics for elastic scattering
call elastic_scatter(i_nuclide, rxn, &
p % E, p % coord0 % uvw, p % mu)
p % E, p % coord0 % uvw, p % mu, p % wgt)
end if
p % event_MT = ELASTIC
@ -408,13 +409,14 @@ contains
! target.
!===============================================================================
subroutine elastic_scatter(i_nuclide, rxn, E, uvw, mu_lab)
subroutine elastic_scatter(i_nuclide, rxn, E, uvw, mu_lab, wgt)
integer, intent(in) :: i_nuclide
type(Reaction), pointer :: rxn
real(8), intent(inout) :: E
real(8), intent(inout) :: uvw(3)
real(8), intent(out) :: mu_lab
real(8), intent(inout) :: wgt
real(8) :: awr ! atomic weight ratio of target
real(8) :: mu_cm ! cosine of polar angle in center-of-mass
@ -437,7 +439,8 @@ contains
! Sample velocity of target nucleus
if (.not. micro_xs(i_nuclide) % use_ptable) then
call sample_target_velocity(nuc, v_t, E, uvw)
call sample_target_velocity(nuc, v_t, E, uvw, v_n, wgt, &
& micro_xs(i_nuclide) % elastic)
else
v_t = ZERO
end if
@ -729,19 +732,270 @@ contains
end subroutine sab_scatter
!===============================================================================
! SAMPLE_TARGET_VELOCITY samples the target velocity based on the free gas
! scattering formulation used by most Monte Carlo codes. Excellent documentation
! for this method can be found in FRA-TM-123.
! SAMPLE_TARGET_VELOCITY samples the target velocity. The constant cross section
! free gas model is the default method. Methods for correctly accounting
! for the energy dependence of cross sections in treating resonance elastic
! scattering such as the DBRC, WCM, and a new, accelerated scheme are also
! implemented here.
!===============================================================================
subroutine sample_target_velocity(nuc, v_target, E, uvw)
subroutine sample_target_velocity(nuc, v_target, E, uvw, v_neut, wgt, xs_eff)
type(Nuclide), pointer :: nuc
type(Nuclide), pointer :: nuc ! target nuclide at temperature T
real(8), intent(out) :: v_target(3) ! target velocity
real(8), intent(in) :: v_neut(3) ! neutron velocity
real(8), intent(in) :: E ! particle energy
real(8), intent(in) :: uvw(3) ! direction cosines
real(8), intent(inout) :: wgt ! particle weight
real(8) :: awr ! target/neutron mass ratio
real(8) :: kT ! equilibrium temperature of target in MeV
real(8) :: E_rel ! trial relative energy
real(8) :: xs_0K ! 0K xs at E_rel
real(8) :: xs_eff ! effective elastic xs at temperature T
real(8) :: wcf ! weight correction factor
real(8) :: E_red ! reduced energy (same as used by Cullen in SIGMA1)
real(8) :: E_low ! lowest practical relative energy
real(8) :: E_up ! highest practical relative energy
real(8) :: E_mode ! most probable Maxwellian energy
real(8) :: E_t_max ! highest practical target energy
real(8) :: E_t ! trial target energy
real(8) :: xs_max ! max 0K xs over practical relative energies
real(8) :: xs_low ! 0K xs at lowest practical relative energy
real(8) :: xs_up ! 0K xs at highest practical relative energy
real(8) :: m ! slope for interpolation
real(8) :: R_dbrc ! DBRC rejection criterion
real(8) :: R_speed ! target speed rejection criterion
real(8) :: cdf_low ! xs cdf at lowest practical relative energy
real(8) :: cdf_up ! xs cdf at highest practical relative energy
real(8) :: cdf_rel ! trial xs cdf value
real(8) :: p_mode ! probability at most probable energy
real(8) :: p_t ! probability at trial target energy
real(8) :: mu ! cosine between neutron and target velocities
integer :: i_E_low ! 0K index to lowest practical relative energy
integer :: i_E_up ! 0K index to highest practical relative energy
integer :: i_E_rel ! index to trial relative energy
logical :: reject ! resample if true
character(80) :: sampling_scheme ! method of target velocity sampling
kT = nuc % kT
awr = nuc % awr
! check if nuclide is a resonant scatterer
if (nuc % resonant) then
! sampling scheme to use
sampling_scheme = nuc % scheme
! upper resonance scattering energy bound (target is at rest above this E)
if (E > nuc % E_max) then
v_target = ZERO
return
! lower resonance scattering energy bound (should be no resonances below)
else if (E < nuc % E_min) then
sampling_scheme = 'cxs'
end if
! otherwise, use free gas model
else
if (E >= FREE_GAS_THRESHOLD * kT .and. awr > ONE) then
v_target = ZERO
return
else
sampling_scheme = 'cxs'
end if
end if
! use appropriate target velocity sampling method
select case (sampling_scheme)
case ('cxs')
! sample target velocity with the constant cross section (cxs) approx.
call sample_cxs_target_velocity(nuc, v_target, E, uvw)
case ('wcm')
! sample target velocity with the constant cross section (cxs) approx.
call sample_cxs_target_velocity(nuc, v_target, E, uvw)
! adjust weight as prescribed by the weight correction method (wcm)
E_rel = dot_product((v_neut - v_target), (v_neut - v_target))
xs_0K = elastic_xs_0K(E_rel, nuc)
wcf = xs_0K / xs_eff
wgt = wcf * wgt
case ('dbrc')
E_red = sqrt((awr * E) / kT)
E_low = (((E_red - 4.0_8)**2) * kT) / awr
E_up = (((E_red + 4.0_8)**2) * kT) / awr
! find lower and upper energy bound indices
! lower index
if (E_low < nuc % energy_0K(1)) then
i_E_low = 1
elseif (E_low > nuc % energy_0K(nuc % n_grid_0K)) then
i_E_low = nuc % n_grid_0K - 1
else
i_E_low = binary_search(nuc % energy_0K, nuc % n_grid_0K, E_low)
end if
! upper index
if (E_up < nuc % energy_0K(1)) then
i_E_up = 1
elseif (E_up > nuc % energy_0K(nuc % n_grid_0K)) then
i_E_up = nuc % n_grid_0K - 1
else
i_E_up = binary_search(nuc % energy_0K, nuc % n_grid_0K, E_up)
end if
! interpolate xs since we're not exactly at the energy indices
xs_low = nuc % elastic_0K(i_E_low)
m = (nuc % elastic_0K(i_E_low + 1) - xs_low) &
& / (nuc % energy_0K(i_E_low + 1) - nuc % energy_0K(i_E_low))
xs_low = xs_low + m * (E_low - nuc % energy_0K(i_E_low))
xs_up = nuc % elastic_0K(i_E_up)
m = (nuc % elastic_0K(i_E_up + 1) - xs_up) &
& / (nuc % energy_0K(i_E_up + 1) - nuc % energy_0K(i_E_up))
xs_up = xs_up + m * (E_up - nuc % energy_0K(i_E_up))
! get max 0K xs value over range of practical relative energies
xs_max = max(xs_low, &
& maxval(nuc % elastic_0K(i_E_low + 1 : i_E_up - 1)), xs_up)
reject = .true.
! sample target velocities until one is accepted by the DBRC
do
! sample target velocity with the constant cross section (cxs) approx.
call sample_cxs_target_velocity(nuc, v_target, E, uvw)
! perform Doppler broadening rejection correction (dbrc)
E_rel = dot_product((v_neut - v_target), (v_neut - v_target))
xs_0K = elastic_xs_0K(E_rel, nuc)
R_dbrc = xs_0K / xs_max
if (prn() < R_dbrc) reject = .false.
if (.not. reject) exit
end do
case ('ares')
E_red = sqrt((awr * E) / kT)
E_low = (((E_red - 4.0_8)**2) * kT) / awr
E_up = (((E_red + 4.0_8)**2) * kT) / awr
! find lower and upper energy bound indices
! lower index
if (E_low < nuc % energy_0K(1)) then
i_E_low = 1
elseif (E_low > nuc % energy_0K(nuc % n_grid_0K)) then
i_E_low = nuc % n_grid_0K - 1
else
i_E_low = binary_search(nuc % energy_0K, nuc % n_grid_0K, E_low)
end if
! upper index
if (E_up < nuc % energy_0K(1)) then
i_E_up = 1
elseif (E_up > nuc % energy_0K(nuc % n_grid_0K)) then
i_E_up = nuc % n_grid_0K - 1
else
i_E_up = binary_search(nuc % energy_0K, nuc % n_grid_0K, E_up)
end if
! interpolate xs CDF since we're not exactly at the energy indices
! cdf value at lower bound attainable energy
if (i_E_low > 1) then
m = (nuc % xs_cdf(i_E_low) - nuc % xs_cdf(i_E_low - 1)) &
& / (nuc % energy_0K(i_E_low + 1) - nuc % energy_0K(i_E_low))
cdf_low = nuc % xs_cdf(i_E_low - 1) &
& + m * (E_low - nuc % energy_0K(i_E_low))
else
m = nuc % xs_cdf(i_E_low) &
& / (nuc % energy_0K(i_E_low + 1) - nuc % energy_0K(i_E_low))
cdf_low = m * (E_low - nuc % energy_0K(i_E_low))
if (E_low <= nuc % energy_0K(1)) cdf_low = ZERO
end if
! cdf value at upper bound attainable energy
m = (nuc % xs_cdf(i_E_up) - nuc % xs_cdf(i_E_up - 1)) &
& / (nuc % energy_0K(i_E_up + 1) - nuc % energy_0K(i_E_up))
cdf_up = nuc % xs_cdf(i_E_up - 1) &
& + m * (E_up - nuc % energy_0K(i_E_up))
! values used to sample the Maxwellian
E_mode = kT
p_mode = TWO * sqrt(E_mode / pi) * sqrt((ONE / kT)**3) &
& * exp(-E_mode / kT)
E_t_max = 16.0_8 * E_mode
reject = .true.
do
! perform Maxwellian rejection sampling
E_t = E_t_max * prn()**2
p_t = TWO * sqrt(E_t / pi) * sqrt((ONE / kT)**3) &
& * exp(-E_t / kT)
R_speed = p_t / p_mode
if (prn() < R_speed) then
! sample a relative energy using the xs cdf
cdf_rel = cdf_low + prn() * (cdf_up - cdf_low)
i_E_rel = binary_search(nuc % xs_cdf(i_E_low-1:i_E_up), &
& i_E_up - i_E_low + 2, cdf_rel)
E_rel = nuc % energy_0K(i_E_low + i_E_rel - 1)
m = (nuc % xs_cdf(i_E_low + i_E_rel - 1) &
& - nuc % xs_cdf(i_E_low + i_E_rel - 2)) &
& / (nuc % energy_0K(i_E_low + i_E_rel) &
& - nuc % energy_0K(i_E_low + i_E_rel - 1))
E_rel = E_rel + (cdf_rel - nuc % xs_cdf(i_E_low + i_E_rel - 2)) / m
! perform rejection sampling on cosine between
! neutron and target velocities
mu = (E_t + awr * (E - E_rel)) / (TWO * sqrt(awr * E * E_t))
if (abs(mu) < ONE) then
! set and accept target velocity
E_t = E_t / awr
v_target = sqrt(E_t) * rotate_angle(uvw, mu)
reject = .false.
end if
end if
if (.not. reject) exit
end do
case default
message = "Not a recognized resonance scattering treatment!"
call fatal_error()
end select
end subroutine sample_target_velocity
!===============================================================================
! SAMPLE_CXS_TARGET_VELOCITY samples a target velocity based on the free gas
! scattering formulation, used by most Monte Carlo codes, in which cross section
! is assumed to be constant in energy. Excellent documentation for this method
! can be found in FRA-TM-123.
!===============================================================================
subroutine sample_cxs_target_velocity(nuc, v_target, E, uvw)
type(Nuclide), pointer :: nuc ! target nuclide at temperature
real(8), intent(out) :: v_target(3)
real(8), intent(in) :: E
real(8), intent(in) :: uvw(3)
real(8) :: kT ! equilibrium temperature of target in MeV
real(8) :: awr ! target/neutron mass ratio
real(8) :: alpha ! probability of sampling f2 over f1
real(8) :: mu ! cosine of angle between neutron and target vel
real(8) :: r1, r2 ! pseudo-random numbers
@ -752,18 +1006,10 @@ contains
real(8) :: beta_vt_sq ! (beta * speed of target)^2
real(8) :: vt ! speed of target
! Determine equilibrium temperature in MeV
kT = nuc % kT
awr = nuc % awr
! Check if energy is above threshold
if (E >= FREE_GAS_THRESHOLD * kT .and. nuc % awr > ONE) then
v_target = ZERO
return
end if
! calculate beta
beta_vn = sqrt(nuc%awr * E / kT)
beta_vn = sqrt(awr * E / kT)
alpha = ONE/(ONE + sqrt(pi)*beta_vn/TWO)
do
@ -795,20 +1041,20 @@ contains
! Determine rejection probability
accept_prob = sqrt(beta_vn*beta_vn + beta_vt_sq - 2*beta_vn*beta_vt*mu) &
/(beta_vn + beta_vt)
/(beta_vn + beta_vt)
! Perform rejection sampling on vt and mu
if (prn() < accept_prob) exit
end do
! determine speed of target nucleus
vt = sqrt(beta_vt_sq*kT/nuc % awr)
! Determine speed of target nucleus
vt = sqrt(beta_vt_sq*kT/awr)
! determine velocity vector of target nucleus based on neutron's velocity
! Determine velocity vector of target nucleus based on neutron's velocity
! and the sampled angle between them
v_target = vt * rotate_angle(uvw, mu)
end subroutine sample_target_velocity
end subroutine sample_cxs_target_velocity
!===============================================================================
! CREATE_FISSION_SITES determines the average total, prompt, and delayed

View file

@ -5,6 +5,7 @@ module plot
use geometry, only: find_cell, check_cell_overlap
use geometry_header, only: Cell, BASE_UNIVERSE
use global
use mesh, only: get_mesh_indices
use output, only: write_message
use particle_header, only: deallocate_coord, Particle
use plot_header
@ -118,27 +119,24 @@ contains
call init_image(img)
call allocate_image(img, pl % pixels(1), pl % pixels(2))
in_pixel = pl % width(1)/dble(pl % pixels(1))
out_pixel = pl % width(2)/dble(pl % pixels(2))
if (pl % basis == PLOT_BASIS_XY) then
in_i = 1
out_i = 2
in_pixel = pl % width(1)/dble(pl % pixels(1))
out_pixel = pl % width(2)/dble(pl % pixels(2))
xyz(1) = pl % origin(1) - pl % width(1) / 2.0
xyz(2) = pl % origin(2) + pl % width(2) / 2.0
xyz(3) = pl % origin(3)
else if (pl % basis == PLOT_BASIS_XZ) then
in_i = 1
out_i = 3
in_pixel = pl % width(1)/dble(pl % pixels(1))
out_pixel = pl % width(2)/dble(pl % pixels(2))
xyz(1) = pl % origin(1) - pl % width(1) / 2.0
xyz(2) = pl % origin(2)
xyz(3) = pl % origin(3) + pl % width(2) / 2.0
else if (pl % basis == PLOT_BASIS_YZ) then
in_i = 2
out_i = 3
in_pixel = pl % width(1)/dble(pl % pixels(1))
out_pixel = pl % width(2)/dble(pl % pixels(2))
xyz(1) = pl % origin(1)
xyz(2) = pl % origin(2) - pl % width(1) / 2.0
xyz(3) = pl % origin(3) + pl % width(2) / 2.0
@ -169,6 +167,9 @@ contains
p % coord0 % xyz(out_i) = p % coord0 % xyz(out_i) - out_pixel
end do
! Draw tally mesh boundaries on the image if requested
if (associated(pl % meshlines_mesh)) call draw_mesh_lines(pl, img)
! Write out the ppm to a file
call output_ppm(pl,img)
@ -180,6 +181,111 @@ contains
end subroutine create_ppm
!===============================================================================
! DRAW_MESH_LINES draws mesh line boundaries on an image
!===============================================================================
subroutine draw_mesh_lines(pl, img)
type(ObjectPlot), pointer, intent(in) :: pl
type(Image), intent(inout) :: img
logical :: in_mesh
integer :: out_, in_ ! pixel location
integer :: r, g, b ! RGB color for meshlines pixels
integer :: outrange(2), inrange(2) ! range of pixel locations
integer :: i, j ! loop indices
integer :: plus
integer :: ijk_ll(3) ! mesh bin ijk indicies of plot lower left
integer :: ijk_ur(3) ! mesh bin ijk indicies of plot upper right
integer :: outer, inner
real(8) :: frac
real(8) :: width(3) ! real widths of the plot
real(8) :: xyz_ll_plot(3) ! lower left xyz of plot image
real(8) :: xyz_ur_plot(3) ! upper right xyz of plot image
real(8) :: xyz_ll(3) ! lower left xyz
real(8) :: xyz_ur(3) ! upper right xyz
type(StructuredMesh), pointer :: m => null()
m => pl % meshlines_mesh
r = pl % meshlines_color % rgb(1)
g = pl % meshlines_color % rgb(2)
b = pl % meshlines_color % rgb(3)
select case (pl % basis)
case(PLOT_BASIS_XY)
outer = 1
inner = 2
case(PLOT_BASIS_XZ)
outer = 1
inner = 3
case(PLOT_BASIS_YZ)
outer = 2
inner = 3
end select
xyz_ll_plot = pl % origin
xyz_ur_plot = pl % origin
xyz_ll_plot(outer) = pl % origin(1) - pl % width(1) / 2.0
xyz_ll_plot(inner) = pl % origin(2) - pl % width(2) / 2.0
xyz_ur_plot(outer) = pl % origin(1) + pl % width(1) / 2.0
xyz_ur_plot(inner) = pl % origin(2) + pl % width(2) / 2.0
width = xyz_ur_plot - xyz_ll_plot
call get_mesh_indices(m, xyz_ll_plot, ijk_ll(:m % n_dimension), in_mesh)
call get_mesh_indices(m, xyz_ur_plot, ijk_ur(:m % n_dimension), in_mesh)
! sweep through all meshbins on this plane and draw borders
do i = ijk_ll(outer), ijk_ur(outer)
do j = ijk_ll(inner), ijk_ur(inner)
! check if we're in the mesh for this ijk
if (i > 0 .and. i <= m % dimension(outer) .and. &
j > 0 .and. j <= m % dimension(inner)) then
! get xyz's of lower left and upper right of this mesh cell
xyz_ll(outer) = m % lower_left(outer) + m % width(outer) * (i - 1)
xyz_ll(inner) = m % lower_left(inner) + m % width(inner) * (j - 1)
xyz_ur(outer) = m % lower_left(outer) + m % width(outer) * i
xyz_ur(inner) = m % lower_left(inner) + m % width(inner) * j
! map the xyz ranges to pixel ranges
frac = (xyz_ll(outer) - xyz_ll_plot(outer)) / width(outer)
outrange(1) = int(frac * real(img % width, 8))
frac = (xyz_ur(outer) - xyz_ll_plot(outer)) / width(outer)
outrange(2) = int(frac * real(img % width, 8))
frac = (xyz_ll(inner) - xyz_ll_plot(inner)) / width(inner)
inrange(1) = int(frac * real(img % height, 8))
frac = (xyz_ur(inner) - xyz_ll_plot(inner)) / width(inner)
inrange(2) = int(frac * real(img % height, 8))
! draw lines
do out_ = outrange(1), outrange(2)
do plus = 0, pl % meshlines_width
call set_pixel(img, out_, inrange(1) + plus, r, g, b)
call set_pixel(img, out_, inrange(2) + plus, r, g, b)
call set_pixel(img, out_, inrange(1) - plus, r, g, b)
call set_pixel(img, out_, inrange(2) - plus, r, g, b)
end do
end do
do in_ = inrange(1), inrange(2)
do plus = 0, pl % meshlines_width
call set_pixel(img, outrange(1) + plus, in_, r, g, b)
call set_pixel(img, outrange(2) + plus, in_, r, g, b)
call set_pixel(img, outrange(1) - plus, in_, r, g, b)
call set_pixel(img, outrange(2) - plus, in_, r, g, b)
end do
end do
end if
end do
end do
end subroutine draw_mesh_lines
!===============================================================================
! OUTPUT_PPM writes out a previously generated image to a PPM file
!===============================================================================

View file

@ -1,6 +1,7 @@
module plot_header
use constants
use mesh_header, only: StructuredMesh
implicit none
@ -25,6 +26,9 @@ module plot_header
real(8) :: width(3) ! xyz widths of plot
integer :: basis ! direction of plot slice
integer :: pixels(3) ! pixel width/height of plot slice
integer :: meshlines_width ! pixel width of meshlines
type(StructuredMesh), pointer :: meshlines_mesh => null() ! mesh to plot
type(ObjectColor) :: meshlines_color ! Color for meshlines
type(ObjectColor) :: not_found ! color for positions where no cell found
type(ObjectColor), allocatable :: colors(:) ! colors of cells/mats
end type ObjectPlot

View file

@ -1,15 +1,12 @@
module random_lcg
use constants
implicit none
private
save
! Random number streams
integer, parameter :: N_STREAMS = 2
integer, parameter :: STREAM_TRACKING = 1
integer, parameter :: STREAM_TALLIES = 2
integer(8) :: prn_seed0 ! original seed
integer(8) :: prn_seed(N_STREAMS) ! current seed
integer(8) :: prn_mult ! multiplication factor, g
@ -21,7 +18,7 @@ module random_lcg
real(8) :: prn_norm ! 2^(-M)
integer :: stream ! current RNG stream
!$omp threadprivate(prn_seed)
!$omp threadprivate(prn_seed, stream)
public :: prn
public :: initialize_prng
@ -63,11 +60,13 @@ contains
integer :: i
stream = STREAM_TRACKING
prn_seed0 = seed
!$omp parallel
do i = 1, N_STREAMS
prn_seed(i) = prn_seed0 + i - 1
end do
stream = STREAM_TRACKING
!$omp end parallel
prn_mult = 2806196910506780709_8
prn_add = 1_8
prn_bits = 63

View file

@ -22,15 +22,9 @@ element cmfd {
element feedback { xsd:boolean }? &
element n_cmfd_procs { xsd:int }? &
element reset { xsd:boolean }? &
element balance { xsd:boolean }? &
element downscatter { xsd:boolean }? &
element run_2grp { xsd:boolean }? &
element dhat_reset { xsd:boolean }? &
element solver { xsd:string }? &
@ -40,8 +34,6 @@ element cmfd {
element power_monitor { xsd:boolean }? &
element write_balance { xsd:boolean }? &
element write_matrices { xsd:boolean }? &
element run_adjoint { xsd:boolean }? &
@ -50,9 +42,18 @@ element cmfd {
element begin { xsd:int }? &
element inactive { xsd:boolean }? &
element tally_reset { list { xsd:int+ } }? &
element active_flush { xsd:int }? &
element display { xsd:string }? &
element spectral { xsd:double }? &
element shift { xsd:double }? &
element ktol { xsd: double }? &
element stol { xsd: double }? &
element gauss_seidel_tolerance { list { xsd:double+ } }?
element keff_tol { xsd:double }?
}

View file

@ -26,6 +26,14 @@ element plots {
attribute components { list { xsd:int+ } }) &
(element background { list { xsd:int+ } } |
attribute background { list { xsd:int+ } })
}* &
element meshlines {
(element meshtype { ( "tally" | "entropy" | "ufs" | "cmfd" ) } |
attribute meshtype { ( "tally" | "entropy" | "ufs" | "cmfd" ) }) &
(element id { xsd:int } | attribute id { xsd:int })? &
(element linewidth { xsd:int } | attribute linewidth { xsd:int }) &
(element color { list { xsd:int+ } } |
attribute color { list { xsd:int+ } })?
}*
}*
}

View file

@ -86,7 +86,8 @@ element settings {
attribute interplation { xsd:string { maxLength = "10" } })? &
(element parameters { list { xsd:double+ } } |
attribute parameters { list { xsd:double+ } })?
}?
}? &
(element write_initial { xsd:boolean } | attribute write_initial { xsd:boolean })?
}? &
element state_point {
@ -130,5 +131,22 @@ element settings {
attribute lower_left { list { xsd:double+ } }) &
(element upper_right { list { xsd:double+ } } |
attribute upper_right { list { xsd:double+ } })
}? &
element resonance_scattering {
element scatterer {
(element nuclide { xsd:string { maxLength = "12" } } |
attribute nuclide { xsd:string { maxLength = "12" } }) &
(element method { xsd:string { maxLength = "16" } } |
attribute method { xsd:string { maxLength = "16" } }) &
(element xs_label { xsd:string { maxLength = "12" } } |
attribute xs_label { xsd:string { maxLength = "12" } }) &
(element xs_label_0K { xsd:string { maxLength = "12" } } |
attribute xs_label_0K { xsd:string { maxLength = "12" } }) &
(element E_min { xsd:double } |
attribute E_min { xsd:double }) &
(element E_max { xsd:double } |
attribute E_max { xsd:double })?
}*
}?
}

View file

@ -10,7 +10,7 @@ module source
use output, only: write_message
use output_interface, only: BinaryOutput
use particle_header, only: Particle
use random_lcg, only: prn, set_particle_seed
use random_lcg, only: prn, set_particle_seed, prn_set_stream
use string, only: to_str
#ifdef MPI
@ -27,6 +27,7 @@ contains
subroutine initialize_source()
character(MAX_FILE_LEN) :: filename
integer(8) :: i ! loop index over bank sites
integer(8) :: id ! particle id
integer(4) :: itmp ! temporary integer
@ -76,6 +77,20 @@ contains
end do
end if
! Write out initial source
if (write_initial_source) then
message = 'Writing out initial source guess...'
call write_message(1)
#ifdef HDF5
filename = trim(path_output) // 'initial_source.h5'
#else
filename = trim(path_output) // 'initial_source.binary'
#endif
call sp % file_create(filename, serial = .false.)
call sp % write_source_bank()
call sp % file_close()
end if
end subroutine initialize_source
!===============================================================================
@ -101,6 +116,9 @@ contains
! Set weight to one by default
site % wgt = ONE
! Set the random number generator to the source stream.
call prn_set_stream(STREAM_SOURCE)
! Sample position
select case (external_source % type_space)
case (SRC_SPACE_BOX)
@ -132,6 +150,42 @@ contains
end do
call p % clear()
case (SRC_SPACE_FISSION)
! Repeat sampling source location until a good site has been found
found = .false.
do while (.not.found)
! Set particle defaults
call p % initialize()
! Coordinates sampled uniformly over a box
p_min = external_source % params_space(1:3)
p_max = external_source % params_space(4:6)
r = (/ (prn(), i = 1,3) /)
site % xyz = p_min + r*(p_max - p_min)
! Fill p with needed data
p % coord0 % xyz = site % xyz
p % coord0 % uvw = [ ONE, ZERO, ZERO ]
! Now search to see if location exists in geometry
call find_cell(p, found)
if (.not. found) then
num_resamples = num_resamples + 1
if (num_resamples == MAX_EXTSRC_RESAMPLES) then
message = "Maximum number of external source spatial resamples &
&reached!"
call fatal_error()
end if
cycle
end if
if (p % material == MATERIAL_VOID) then
found = .false.
cycle
end if
if (.not. materials(p % material) % fissionable) found = .false.
end do
call p % clear()
case (SRC_SPACE_POINT)
! Point source
site % xyz = external_source % params_space
@ -189,6 +243,9 @@ contains
call fatal_error()
end select
! Set the random number generator back to the tracking stream.
call prn_set_stream(STREAM_TRACKING)
end subroutine sample_external_source
!===============================================================================

View file

@ -16,7 +16,7 @@ module state_point
use error, only: fatal_error, warning
use global
use output, only: write_message, time_stamp
use string, only: to_str
use string, only: to_str, zero_padded, count_digits
use output_interface
use tally_header, only: TallyObject
@ -44,7 +44,7 @@ contains
! Set filename for state point
filename = trim(path_output) // 'statepoint.' // &
trim(to_str(current_batch))
& zero_padded(current_batch, count_digits(n_batches))
! Append appropriate extension
#ifdef HDF5
@ -305,7 +305,9 @@ contains
if (source_separate) then
! Set filename
filename = trim(path_output) // 'source.' // trim(to_str(current_batch))
filename = trim(path_output) // 'source.' // &
& zero_padded(current_batch, count_digits(n_batches))
#ifdef HDF5
filename = trim(filename) // '.h5'
#else
@ -326,7 +328,7 @@ contains
! Set filename for state point
filename = trim(path_output) // 'statepoint.' // &
trim(to_str(current_batch))
& zero_padded(current_batch, count_digits(n_batches))
#ifdef HDF5
filename = trim(filename) // '.h5'
#else

View file

@ -1,7 +1,7 @@
module string
use constants, only: MAX_WORDS, MAX_LINE_LEN, ERROR_INT, ERROR_REAL
use error, only: warning
use error, only: fatal_error, warning
use global, only: message
implicit none
@ -152,37 +152,80 @@ contains
! LOWER_CASE converts a string to all lower case characters
!===============================================================================
elemental subroutine lower_case(word)
elemental function to_lower(word) result(word_lower)
character(*), intent(inout) :: word
character(*), intent(in) :: word
character(len=len(word)) :: word_lower
integer :: i
integer :: ic
do i = 1, len(word)
ic = ichar(word(i:i))
if (ic >= 65 .and. ic <= 90) word(i:i) = char(ic+32)
if (ic >= 65 .and. ic <= 90) then
word_lower(i:i) = char(ic+32)
else
word_lower(i:i) = word(i:i)
end if
end do
end subroutine lower_case
end function to_lower
!===============================================================================
! UPPER_CASE converts a string to all upper case characters
!===============================================================================
elemental subroutine upper_case(word)
elemental function to_upper(word) result(word_upper)
character(*), intent(inout) :: word
character(*), intent(in) :: word
character(len=len(word)) :: word_upper
integer :: i
integer :: ic
do i = 1, len(word)
ic = ichar(word(i:i))
if (ic >= 97 .and. ic <= 122) word(i:i) = char(ic-32)
if (ic >= 97 .and. ic <= 122) then
word_upper(i:i) = char(ic-32)
else
word_upper(i:i) = word(i:i)
end if
end do
end subroutine upper_case
end function to_upper
!===============================================================================
! ZERO_PADDED returns a string of the input integer padded with zeros to the
! desired number of digits. Do not include the sign in n_digits for negative
! integers.
!===============================================================================
function zero_padded(num, n_digits) result(str)
integer, intent(in) :: num
integer, intent(in) :: n_digits
character(11) :: str
character(8) :: zp_form
! Make sure n_digits is reasonable. 10 digits is the maximum needed for the
! largest integer(4).
if (n_digits > 10) then
message = 'zero_padded called with an unreasonably large n_digits (>10)'
call fatal_error()
end if
! Write a format string of the form '(In.m)' where n is the max width and
! m is the min width. If a sign is present, then n must be one greater
! than m.
if (num < 0) then
write(zp_form, '("(I", I0, ".", I0, ")")') n_digits+1, n_digits
else
write(zp_form, '("(I", I0, ".", I0, ")")') n_digits, n_digits
end if
! Format the number.
write(str, zp_form) num
end function zero_padded
!===============================================================================
! IS_NUMBER determines whether a string of characters is all 0-9 characters
@ -268,6 +311,25 @@ contains
end function ends_with
!===============================================================================
! COUNT_DIGITS returns the number of digits needed to represent the input
! integer.
!===============================================================================
function count_digits(num) result(n_digits)
integer, intent(in) :: num
integer :: n_digits
n_digits = 1
do while (num / 10**(n_digits) /= 0 .and. abs(num / 10 **(n_digits-1)) /= 1&
&.and. n_digits /= 10)
! Note that 10 digits is the maximum needed to represent an integer(4) so
! the loop automatically exits when n_digits = 10.
n_digits = n_digits + 1
end do
end function count_digits
!===============================================================================
! INT4_TO_STR converts an integer(4) to a string.
!===============================================================================
@ -297,21 +359,21 @@ contains
end function int8_to_str
!===============================================================================
! STR_TO_INT converts a string to an integer.
! STR_TO_INT converts a string to an integer.
!===============================================================================
function str_to_int(str) result(num)
character(*), intent(in) :: str
integer(8) :: num
character(5) :: fmt
integer :: w
integer :: ioError
! Determine width of string
w = len_trim(str)
! Create format specifier for reading string
write(UNIT=fmt, FMT='("(I",I2,")")') w
@ -352,7 +414,7 @@ contains
integer :: decimal ! number of places after decimal
integer :: width ! total field width
real(8) :: num2 ! absolute value of number
real(8) :: num2 ! absolute value of number
character(9) :: fmt ! format specifier for writing number
! set default field width

View file

@ -1,291 +0,0 @@
# IUPAC Isotopic Compositions of the Element 2009
# Pure. Appl. Chem., Vol 83, No. 2, pp. 397-410 (2011)
# doi:10.1351/PAC-REP-10-06-02
1 H 1 0.999885
1 H 2 0.000115
2 He 3 1.34e-06
2 He 4 0.99999866
3 Li 6 0.0759
3 Li 7 0.9241
4 Be 9 1.0
5 B 10 0.199
5 B 11 0.801
6 C 12 0.9893
6 C 13 0.0107
7 N 14 0.99636
7 N 15 0.00364
8 O 16 0.99757
8 O 17 0.00038
8 O 18 0.00205
9 F 19 1.0
10 Ne 20 0.9048
10 Ne 21 0.0027
10 Ne 22 0.0925
11 Na 23 1.0
12 Mg 24 0.7899
12 Mg 25 0.1
12 Mg 26 0.1101
13 Al 27 1.0
14 Si 28 0.92223
14 Si 29 0.04685
14 Si 30 0.03092
15 P 31 1.0
16 S 32 0.9499
16 S 33 0.0075
16 S 34 0.0425
16 S 36 0.0001
17 Cl 35 0.7576
17 Cl 37 0.2424
18 Ar 36 0.003336
18 Ar 38 0.000629
18 Ar 40 0.996035
19 K 39 0.932581
19 K 40 0.000117
19 K 41 0.067302
20 Ca 40 0.96941
20 Ca 42 0.00647
20 Ca 43 0.00135
20 Ca 44 0.02086
20 Ca 46 4e-05
20 Ca 48 0.00187
21 Sc 45 1.0
22 Ti 46 0.0825
22 Ti 47 0.0744
22 Ti 48 0.7372
22 Ti 49 0.0541
22 Ti 50 0.0518
23 V 50 0.0025
23 V 51 0.9975
24 Cr 50 0.04345
24 Cr 52 0.83789
24 Cr 53 0.09501
24 Cr 54 0.02365
25 Mn 55 1.0
26 Fe 54 0.05845
26 Fe 56 0.91754
26 Fe 57 0.02119
26 Fe 58 0.00282
27 Co 59 1.0
28 Ni 58 0.68077
28 Ni 60 0.26223
28 Ni 61 0.011399
28 Ni 62 0.036346
28 Ni 64 0.009255
29 Cu 63 0.6915
29 Cu 65 0.3085
30 Zn 64 0.4917
30 Zn 66 0.2773
30 Zn 67 0.0404
30 Zn 68 0.1845
30 Zn 70 0.0061
31 Ga 69 0.60108
31 Ga 71 0.39892
32 Ge 70 0.2057
32 Ge 72 0.2745
32 Ge 73 0.0775
32 Ge 74 0.3650
32 Ge 76 0.0773
33 As 75 1.0
34 Se 74 0.0089
34 Se 76 0.0937
34 Se 77 0.0763
34 Se 78 0.2377
34 Se 80 0.4961
34 Se 82 0.0873
35 Br 79 0.5069
35 Br 81 0.4931
36 Kr 78 0.00355
36 Kr 80 0.02286
36 Kr 82 0.11593
36 Kr 83 0.11500
36 Kr 84 0.56987
36 Kr 86 0.17279
37 Rb 85 0.7217
37 Rb 87 0.2783
38 Sr 84 0.0056
38 Sr 86 0.0986
38 Sr 87 0.07
38 Sr 88 0.8258
39 Y 89 1.0
40 Zr 90 0.5145
40 Zr 91 0.1122
40 Zr 92 0.1715
40 Zr 94 0.1738
40 Zr 96 0.028
41 Nb 93 1.0
42 Mo 92 0.1453
42 Mo 94 0.0915
42 Mo 95 0.1584
42 Mo 96 0.1667
42 Mo 97 0.0960
42 Mo 98 0.2439
42 Mo 100 0.0982
44 Ru 96 0.0554
44 Ru 98 0.0187
44 Ru 99 0.1276
44 Ru 100 0.126
44 Ru 101 0.1706
44 Ru 102 0.3155
44 Ru 104 0.1862
45 Rh 103 1.0
46 Pd 102 0.0102
46 Pd 104 0.1114
46 Pd 105 0.2233
46 Pd 106 0.2733
46 Pd 108 0.2646
46 Pd 110 0.1172
47 Ag 107 0.51839
47 Ag 109 0.48161
48 Cd 106 0.0125
48 Cd 108 0.0089
48 Cd 110 0.1249
48 Cd 111 0.128
48 Cd 112 0.2413
48 Cd 113 0.1222
48 Cd 114 0.2873
48 Cd 116 0.0749
49 In 113 0.0429
49 In 115 0.9571
50 Sn 112 0.0097
50 Sn 114 0.0066
50 Sn 115 0.0034
50 Sn 116 0.1454
50 Sn 117 0.0768
50 Sn 118 0.2422
50 Sn 119 0.0859
50 Sn 120 0.3258
50 Sn 122 0.0463
50 Sn 124 0.0579
51 Sb 121 0.5721
51 Sb 123 0.4279
52 Te 120 0.0009
52 Te 122 0.0255
52 Te 123 0.0089
52 Te 124 0.0474
52 Te 125 0.0707
52 Te 126 0.1884
52 Te 128 0.3174
52 Te 130 0.3408
53 I 127 1.0
54 Xe 124 0.000952
54 Xe 126 0.000890
54 Xe 128 0.019102
54 Xe 129 0.264006
54 Xe 130 0.040710
54 Xe 131 0.212324
54 Xe 132 0.269086
54 Xe 134 0.104357
54 Xe 136 0.088573
55 Cs 133 1.0
56 Ba 130 0.00106
56 Ba 132 0.00101
56 Ba 134 0.02417
56 Ba 135 0.06592
56 Ba 136 0.07854
56 Ba 137 0.11232
56 Ba 138 0.71698
57 La 138 0.0008881
57 La 139 0.9991119
58 Ce 136 0.00185
58 Ce 138 0.00251
58 Ce 140 0.8845
58 Ce 142 0.11114
59 Pr 141 1.0
60 Nd 142 0.27152
60 Nd 143 0.12174
60 Nd 144 0.23798
60 Nd 145 0.08293
60 Nd 146 0.17189
60 Nd 148 0.05756
60 Nd 150 0.05638
62 Sm 144 0.0307
62 Sm 147 0.1499
62 Sm 148 0.1124
62 Sm 149 0.1382
62 Sm 150 0.0738
62 Sm 152 0.2675
62 Sm 154 0.2275
63 Eu 151 0.4781
63 Eu 153 0.5219
64 Gd 152 0.002
64 Gd 154 0.0218
64 Gd 155 0.148
64 Gd 156 0.2047
64 Gd 157 0.1565
64 Gd 158 0.2484
64 Gd 160 0.2186
65 Tb 159 1.0
66 Dy 156 0.00056
66 Dy 158 0.00095
66 Dy 160 0.02329
66 Dy 161 0.18889
66 Dy 162 0.25475
66 Dy 163 0.24896
66 Dy 164 0.28260
67 Ho 165 1.0
68 Er 162 0.00139
68 Er 164 0.01601
68 Er 166 0.33503
68 Er 167 0.22869
68 Er 168 0.26978
68 Er 170 0.14910
69 Tm 169 1.0
70 Yb 168 0.00123
70 Yb 170 0.02982
70 Yb 171 0.1409
70 Yb 172 0.2168
70 Yb 173 0.16103
70 Yb 174 0.32026
70 Yb 176 0.12996
71 Lu 175 0.97401
71 Lu 176 0.02599
72 Hf 174 0.0016
72 Hf 176 0.0526
72 Hf 177 0.186
72 Hf 178 0.2728
72 Hf 179 0.1362
72 Hf 180 0.3508
73 Ta 180 0.0001201
73 Ta 181 0.9998799
74 W 180 0.0012
74 W 182 0.265
74 W 183 0.1431
74 W 184 0.3064
74 W 186 0.2843
75 Re 185 0.374
75 Re 187 0.626
76 Os 184 0.0002
76 Os 186 0.0159
76 Os 187 0.0196
76 Os 188 0.1324
76 Os 189 0.1615
76 Os 190 0.2626
76 Os 192 0.4078
77 Ir 191 0.373
77 Ir 193 0.627
78 Pt 190 0.00012
78 Pt 192 0.00782
78 Pt 194 0.3286
78 Pt 195 0.3378
78 Pt 196 0.2521
78 Pt 198 0.07356
79 Au 197 1.0
80 Hg 196 0.0015
80 Hg 198 0.0997
80 Hg 199 0.1687
80 Hg 200 0.231
80 Hg 201 0.1318
80 Hg 202 0.2986
80 Hg 204 0.0687
81 Tl 203 0.2952
81 Tl 205 0.7048
82 Pb 204 0.014
82 Pb 206 0.241
82 Pb 207 0.221
82 Pb 208 0.524
83 Bi 209 1.0
90 Th 232 1.0
91 Pa 231 1.0
92 U 234 5.4e-05
92 U 235 0.007204
92 U 238 0.992742

View file

@ -1,286 +0,0 @@
# IUPAC Isotopic Compositions of the Element 2009
# Pure. Appl. Chem., Vol 83, No. 2, pp. 397-410 (2011)
# doi:10.1351/PAC-REP-10-06-02
# Modified to use only nuclides which exist in ENDF/B-VII.1
1 H 1 0.999885
1 H 2 0.000115
2 He 3 1.34e-06
2 He 4 0.99999866
3 Li 6 0.0759
3 Li 7 0.9241
4 Be 9 1.0
5 B 10 0.199
5 B 11 0.801
6 C Nat 1.0
7 N 14 0.99636
7 N 15 0.00364
8 O 16 0.99757
8 O 17 0.00038
8 O 18 0.00205
9 F 19 1.0
10 Ne 20 0.9048
10 Ne 21 0.0027
10 Ne 22 0.0925
11 Na 23 1.0
12 Mg 24 0.7899
12 Mg 25 0.1
12 Mg 26 0.1101
13 Al 27 1.0
14 Si 28 0.92223
14 Si 29 0.04685
14 Si 30 0.03092
15 P 31 1.0
16 S 32 0.9499
16 S 33 0.0075
16 S 34 0.0425
16 S 36 0.0001
17 Cl 35 0.7576
17 Cl 37 0.2424
18 Ar 36 0.003336
18 Ar 38 0.000629
18 Ar 40 0.996035
19 K 39 0.932581
19 K 40 0.000117
19 K 41 0.067302
20 Ca 40 0.96941
20 Ca 42 0.00647
20 Ca 43 0.00135
20 Ca 44 0.02086
20 Ca 46 4e-05
20 Ca 48 0.00187
21 Sc 45 1.0
22 Ti 46 0.0825
22 Ti 47 0.0744
22 Ti 48 0.7372
22 Ti 49 0.0541
22 Ti 50 0.0518
23 V Nat 1.0
24 Cr 50 0.04345
24 Cr 52 0.83789
24 Cr 53 0.09501
24 Cr 54 0.02365
25 Mn 55 1.0
26 Fe 54 0.05845
26 Fe 56 0.91754
26 Fe 57 0.02119
26 Fe 58 0.00282
27 Co 59 1.0
28 Ni 58 0.68077
28 Ni 60 0.26223
28 Ni 61 0.011399
28 Ni 62 0.036346
28 Ni 64 0.009255
29 Cu 63 0.6915
29 Cu 65 0.3085
30 Zn Nat 1.0
31 Ga 69 0.60108
31 Ga 71 0.39892
32 Ge 70 0.2057
32 Ge 72 0.2745
32 Ge 73 0.0775
32 Ge 74 0.3650
32 Ge 76 0.0773
33 As 75 1.0
34 Se 74 0.0089
34 Se 76 0.0937
34 Se 77 0.0763
34 Se 78 0.2377
34 Se 80 0.4961
34 Se 82 0.0873
35 Br 79 0.5069
35 Br 81 0.4931
36 Kr 78 0.00355
36 Kr 80 0.02286
36 Kr 82 0.11593
36 Kr 83 0.11500
36 Kr 84 0.56987
36 Kr 86 0.17279
37 Rb 85 0.7217
37 Rb 87 0.2783
38 Sr 84 0.0056
38 Sr 86 0.0986
38 Sr 87 0.07
38 Sr 88 0.8258
39 Y 89 1.0
40 Zr 90 0.5145
40 Zr 91 0.1122
40 Zr 92 0.1715
40 Zr 94 0.1738
40 Zr 96 0.028
41 Nb 93 1.0
42 Mo 92 0.1453
42 Mo 94 0.0915
42 Mo 95 0.1584
42 Mo 96 0.1667
42 Mo 97 0.0960
42 Mo 98 0.2439
42 Mo 100 0.0982
44 Ru 96 0.0554
44 Ru 98 0.0187
44 Ru 99 0.1276
44 Ru 100 0.126
44 Ru 101 0.1706
44 Ru 102 0.3155
44 Ru 104 0.1862
45 Rh 103 1.0
46 Pd 102 0.0102
46 Pd 104 0.1114
46 Pd 105 0.2233
46 Pd 106 0.2733
46 Pd 108 0.2646
46 Pd 110 0.1172
47 Ag 107 0.51839
47 Ag 109 0.48161
48 Cd 106 0.0125
48 Cd 108 0.0089
48 Cd 110 0.1249
48 Cd 111 0.128
48 Cd 112 0.2413
48 Cd 113 0.1222
48 Cd 114 0.2873
48 Cd 116 0.0749
49 In 113 0.0429
49 In 115 0.9571
50 Sn 112 0.0097
50 Sn 114 0.0066
50 Sn 115 0.0034
50 Sn 116 0.1454
50 Sn 117 0.0768
50 Sn 118 0.2422
50 Sn 119 0.0859
50 Sn 120 0.3258
50 Sn 122 0.0463
50 Sn 124 0.0579
51 Sb 121 0.5721
51 Sb 123 0.4279
52 Te 120 0.0009
52 Te 122 0.0255
52 Te 123 0.0089
52 Te 124 0.0474
52 Te 125 0.0707
52 Te 126 0.1884
52 Te 128 0.3174
52 Te 130 0.3408
53 I 127 1.0
54 Xe 124 0.000952
54 Xe 126 0.000890
54 Xe 128 0.019102
54 Xe 129 0.264006
54 Xe 130 0.040710
54 Xe 131 0.212324
54 Xe 132 0.269086
54 Xe 134 0.104357
54 Xe 136 0.088573
55 Cs 133 1.0
56 Ba 130 0.00106
56 Ba 132 0.00101
56 Ba 134 0.02417
56 Ba 135 0.06592
56 Ba 136 0.07854
56 Ba 137 0.11232
56 Ba 138 0.71698
57 La 138 0.0008881
57 La 139 0.9991119
58 Ce 136 0.00185
58 Ce 138 0.00251
58 Ce 140 0.8845
58 Ce 142 0.11114
59 Pr 141 1.0
60 Nd 142 0.27152
60 Nd 143 0.12174
60 Nd 144 0.23798
60 Nd 145 0.08293
60 Nd 146 0.17189
60 Nd 148 0.05756
60 Nd 150 0.05638
62 Sm 144 0.0307
62 Sm 147 0.1499
62 Sm 148 0.1124
62 Sm 149 0.1382
62 Sm 150 0.0738
62 Sm 152 0.2675
62 Sm 154 0.2275
63 Eu 151 0.4781
63 Eu 153 0.5219
64 Gd 152 0.002
64 Gd 154 0.0218
64 Gd 155 0.148
64 Gd 156 0.2047
64 Gd 157 0.1565
64 Gd 158 0.2484
64 Gd 160 0.2186
65 Tb 159 1.0
66 Dy 156 0.00056
66 Dy 158 0.00095
66 Dy 160 0.02329
66 Dy 161 0.18889
66 Dy 162 0.25475
66 Dy 163 0.24896
66 Dy 164 0.28260
67 Ho 165 1.0
68 Er 162 0.00139
68 Er 164 0.01601
68 Er 166 0.33503
68 Er 167 0.22869
68 Er 168 0.26978
68 Er 170 0.14910
69 Tm 169 1.0
70 Yb 168 0.00123
70 Yb 170 0.02982
70 Yb 171 0.1409
70 Yb 172 0.2168
70 Yb 173 0.16103
70 Yb 174 0.32026
70 Yb 176 0.12996
71 Lu 175 0.97401
71 Lu 176 0.02599
72 Hf 174 0.0016
72 Hf 176 0.0526
72 Hf 177 0.186
72 Hf 178 0.2728
72 Hf 179 0.1362
72 Hf 180 0.3508
73 Ta 180 0.0001201
73 Ta 181 0.9998799
74 W 180 0.0012
74 W 182 0.265
74 W 183 0.1431
74 W 184 0.3064
74 W 186 0.2843
75 Re 185 0.374
75 Re 187 0.626
76 Os 184 0.0002
76 Os 186 0.0159
76 Os 187 0.0196
76 Os 188 0.1324
76 Os 189 0.1615
76 Os 190 0.2626
76 Os 192 0.4078
77 Ir 191 0.373
77 Ir 193 0.627
78 Pt 190 0.00012
78 Pt 192 0.00782
78 Pt 194 0.3286
78 Pt 195 0.3378
78 Pt 196 0.2521
78 Pt 198 0.07356
79 Au 197 1.0
80 Hg 196 0.0015
80 Hg 198 0.0997
80 Hg 199 0.1687
80 Hg 200 0.231
80 Hg 201 0.1318
80 Hg 202 0.2986
80 Hg 204 0.0687
81 Tl 203 0.2952
81 Tl 205 0.7048
82 Pb 204 0.014
82 Pb 206 0.241
82 Pb 207 0.221
82 Pb 208 0.524
83 Bi 209 1.0
90 Th 232 1.0
91 Pa 231 1.0
92 U 234 5.4e-05
92 U 235 0.007204
92 U 238 0.992742

View file

@ -1,65 +0,0 @@
#!/usr/bin/env python2
import sys
import os
# Add color for posix systems
if os.name == 'posix':
colorOn = '\x1b[34m'
colorOff = '\x1b[0m'
else:
colorOn = ''
colorOff = ''
if len(sys.argv) <= 1:
print("Usage:")
sys.exit()
source = sys.argv[1:]
source.sort()
totalCode = 0
totalComment = 0
totalSpace = 0
for sourceFile in source:
code = 0
comment = 0
space = 0
ending = sourceFile[sourceFile.rindex('.') + 1:]
if ending == 'c':
commentChar = '/*'
elif ending == 'f':
commentChar = '!'
elif ending == 'f90':
commentChar = '!'
elif ending == 'F90':
commentChar = '!'
for line in open(sourceFile, 'r'):
line = line.strip()
if line.startswith(commentChar):
comment += 1
elif line == '':
space += 1
else:
code += 1
total = comment + space + code
totalCode += code
totalComment += comment
totalSpace += space
print(colorOn + sourceFile + colorOff)
print("Code: {0} ({1:4.1f}%)".format(code, 100.0*float(code)/total))
print("Comments: {0} ({1:4.1f}%)".format(comment, 100.0*float(comment)/total))
print("Spaces: {0} ({1:4.1f}%)\n".format(space, 100.0*float(space)/total))
total = totalCode + totalComment + totalSpace
print(colorOn + "TOTAL COUNT" + colorOff)
print("Code: {0} ({1:4.1f}%)".format(totalCode, 100.0*float(totalCode)/total))
print("Comments: {0} ({1:4.1f}%)".format(totalComment, 100.0*float(totalComment)/total))
print("Spaces: {0} ({1:4.1f}%)".format(totalSpace, 100.0*float(totalSpace)/total))
print("Total: {0}\n".format(total))

View file

@ -1,25 +0,0 @@
#!/usr/bin/env python2
import glob
import re
dependencies = {}
for src in glob.iglob('*.F90'):
module = src.strip('.F90')
deps = set()
d = re.findall(r'\n\s*use\s+(\w+)',
open(src, 'r').read())
for name in d:
if name in ['mpi', 'hdf5', 'h5lt', 'petscsys', 'petscmat', 'petscksp',
'petscsnes', 'petscvec', 'omp_lib', 'fox_dom']:
continue
deps.add(name)
if deps:
dependencies[module] = sorted(list(deps))
for module in sorted(dependencies.keys()):
for dep in dependencies[module]:
print("{0}.o: {1}.o".format(module, dep))
print('')

View file

@ -1,4 +1,4 @@
#!/usr/bin/env python2
#!/usr/bin/env python
import os
import sys

View file

@ -1,4 +1,4 @@
#!/usr/bin/env python2
#!/usr/bin/env python
import os
import sys

View file

@ -1,160 +0,0 @@
#!/usr/bin/python2
# Filename: eigenfunction_rms.py
# import packages
import statepoint
import numpy as np
import os
import sys
def main(tally_id, score_id, batch_start, batch_end, name):
# read in statepoint header data
sp = statepoint.StatePoint('statepoint.ref.binary')
# read in results
sp.read_results()
# extract reference mean
mean_ref = extract_mean(sp, tally_id, score_id)
# write gnuplot file
write_src_gnuplot('testsrc_pin','Pin mesh',mean_ref,np.size(mean_ref,0))
# preallocate arrays
hists = np.zeros(batch_end - batch_start + 1)
norms = np.zeros(batch_end - batch_start + 1)
i = batch_start
while i <= batch_end:
# process statepoint
sp = statepoint.StatePoint('statepoint.'+str(i)+'.binary')
sp.read_results()
# extract mean
mean = extract_mean(sp, tally_id, score_id)
# calculate L2 norm
norm = np.linalg.norm(mean - mean_ref)
# get history information
n_inactive = sp.n_inactive
current_batch = sp.current_batch
n_particles = sp.n_particles
gen_per_batch = sp.gen_per_batch
n_histories = (current_batch - n_inactive)*n_particles*gen_per_batch
# batch in vectors
hists[i - batch_start] = n_histories
norms[i - batch_start] = norm
# print
print 'Batch: '+str(i)+' Histories: '+str(n_histories)+' Norm: '+str(norm)
i += 1
# write out gnuplot file
write_norm_gnuplot(name,hists,norms,np.size(hists))
def extract_mean(sp, tally_id,score_id):
# extract results
results = sp.extract_results(tally_id,score_id)
# extract means and copy
mean = results['mean'].copy()
# reshape and integrate over energy
mean = mean.reshape(results['bin_max'],order='F')
mean = np.sum(mean,0)
mean = np.sum(mean,0)
mean = mean/mean.sum()*(mean > 1.e-8).sum()
return mean
def write_norm_gnuplot(path,xdat,ydat,size):
# Header String for GNUPLOT
headerstr = """#!/usr/bin/env gnuplot
set terminal pdf enhanced
set output '{output}'
set ylabel 'L-2 norm'
set xlabel 'Histories'
set log x
set log y
""".format(output=path+'.pdf')
# Write out the plot string
pltstr = "plot '-' using 1:2 with lines"
# Write out the data string
i = 0
datastr = ''
while i < size:
datastr = datastr + '{0} {1}\n'.format(xdat[i],ydat[i])
i += 1
# Concatenate all
outstr = headerstr + '\n' + pltstr + '\n' + datastr
# Write File
with open(path+".plot",'w') as f:
f.write(outstr)
# Run GNUPLOT
os.system('gnuplot ' + path+".plot")
def write_src_gnuplot(path,name,src,size):
# Header String for GNUPLOT
headerstr = """#!/usr/bin/env gnuplot
set terminal pdf enhanced
set output '{output}'
set palette defined (0 '#000090', 1 '#000fff', 2 '#0090ff', 3 '#0fffee', 4 '#90ff70', 5 '#ffee00', 6 '#ff7000', 7 '#ee0000', 8 '#7f0000')
set view map
set size ratio -1
set lmargin at screen 0.10
set rmargin at screen 0.90
set bmargin at screen 0.15
set tmargin at screen 0.90
unset xtics
unset ytics
set title '{title}'""".format(output=path+'.pdf',title=name)
# Write out the plot string
pltstr = "splot '-' matrix with image "
# Write out the data string
i = 0
datastr = ''
while i < size:
j = 0
while j < size:
datastr = datastr + '{0} '.format(src[i,j][0])
j += 1
datastr = datastr + '\n'
i += 1
# replace all nan with zero
datastr = datastr.replace('nan','0.0')
# Concatenate all
outstr = headerstr + '\n' + pltstr + '\n' + datastr
# Write File
with open(path+".plot",'w') as f:
f.write(outstr)
# Run GNUPLOT
os.system('gnuplot ' + path+".plot")
if __name__ == "__main__":
tally_id = int(sys.argv[1])
score_id = sys.argv[2]
batch_start = int(sys.argv[3])
batch_end = int(sys.argv[4])
name = sys.argv[5]
main(tally_id, score_id, batch_start, batch_end, name)

View file

@ -1,7 +1,12 @@
#!/usr/bin/env python2
#!/usr/bin/env python
# This script reads a cross_sections.out file, adds up the memory usage for
# each nuclide and S(a,b) table, and displays the total memory usage
"""
This script reads a cross_sections.out file, adds up the memory usage for each
nuclide and S(a,b) table, and displays the total memory usage.
"""
from __future__ import print_function
import sys
import os

View file

@ -1,4 +1,4 @@
#!/usr/bin/env python2
#!/usr/bin/env python
import struct
@ -30,6 +30,7 @@ class Particle(object):
self.gen_per_batch = self._get_int(path='gen_per_batch')[0]
self.current_gen = self._get_int(path='current_gen')[0]
self.n_particles = self._get_long(path='n_particles')[0]
self.run_mode = self._get_int(path='run_mode')[0]
# Read particle properties
self.id = self._get_long(path='id')[0]
@ -50,9 +51,9 @@ class Particle(object):
def _get_long(self, n=1, path=None):
if self._hdf5:
return [long(v) for v in self._f[path].value]
return [int(v) for v in self._f[path].value]
else:
return [long(v) for v in self._get_data(n, 'q', 8)]
return [int(v) for v in self._get_data(n, 'q', 8)]
def _get_float(self, n=1, path=None):
if self._hdf5:

View file

@ -1,4 +1,4 @@
#!/usr/bin/env python2
#!/usr/bin/env python
"""Python script to plot tally data generated by OpenMC."""
@ -15,12 +15,16 @@ from statepoint import *
if sys.version_info[0] < 3:
import Tkinter as tk
import tkFileDialog as filedialog
import tkFont as font
import tkMessageBox as messagebox
import ttk as ttk
else:
import tkinter as tk
import tkFileDialog
import tkFont
import tkMessageBox
import ttk
import tkinter.filedialog as filedialog
import tkinter.font as font
import tkinter.messagebox as messagebox
import tkinter.ttk as ttk
class MeshPlotter(tk.Frame):
@ -111,8 +115,9 @@ class MeshPlotter(tk.Frame):
self.scoreBox.bind('<<ComboboxSelected>>', self.redraw)
# Filter label
font = tkFont.Font(weight='bold')
labelFilters = tk.Label(self.selectFrame, text='Filters:', font=font)
boldfont = font.Font(weight='bold')
labelFilters = tk.Label(self.selectFrame, text='Filters:',
font=boldfont)
labelFilters.grid(row=5, column=0, sticky=tk.W)
def update(self, event=None):
@ -296,8 +301,8 @@ class MeshPlotter(tk.Frame):
self.meshTallies.append(itally)
if not self.meshTallies:
tkMessageBox.showerror("Invalid StatePoint File",
"File does not contain mesh tallies!")
messagebox.showerror("Invalid StatePoint File",
"File does not contain mesh tallies!")
sys.exit(1)
@ -308,16 +313,16 @@ if __name__ == '__main__':
# If no filename given as command-line argument, open file dialog
if len(sys.argv) < 2:
filename = tkFileDialog.askopenfilename(title='Select statepoint file',
initialdir='.')
filename = filedialog.askopenfilename(title='Select statepoint file',
initialdir='.')
else:
filename = sys.argv[1]
if filename:
# Check to make sure file exists
if not os.path.isfile(filename):
tkMessageBox.showerror("File not found",
"Could not find regular file: " + filename)
messagebox.showerror("File not found",
"Could not find regular file: " + filename)
sys.exit(1)
app = MeshPlotter(root, filename)

View file

@ -3,7 +3,7 @@
from distutils.core import setup
setup(name='statepoint',
version='0.6.0',
version='0.6.1',
description='OpenMC StatePoint',
author='Paul Romano',
author_email='paul.k.romano@gmail.com',

View file

@ -1,16 +0,0 @@
#!/usr/bin/env python2
import sys
if len(sys.argv) != 3:
print("Must supply element and atom/b-cm")
sys.exit(1)
element = sys.argv[1]
ao = float(sys.argv[2])
for line in open('abundances_modified.txt', 'r'):
words = line.split()
if words[1] == element:
print('<nuclide name="{0}-{1}" ao="{2:10.4e}" />'.format(
element, words[2], float(words[3])*ao))

View file

@ -302,7 +302,7 @@ class StatePoint(object):
# Set up stride
stride = 1
for f in t.filters.values()[::-1]:
for f in list(t.filters.values())[::-1]:
f.stride = stride
stride *= f.length
@ -501,15 +501,15 @@ class StatePoint(object):
try:
tally = self.tallies[tally_id-1]
except:
print 'Tally does not exist'
print('Tally does not exist')
return
# get the score index if it is present
try:
idx = tally.scores.index(score_str)
except ValueError:
print 'Score does not exist'
print tally.scores
print('Score does not exist')
print(tally.scores)
return
# create numpy array for mean and 95% CI
@ -543,7 +543,7 @@ class StatePoint(object):
# get bounds of filter bins
for akey in tally.filters.keys():
idx = tally.filters.keys().index(akey)
idx = list(tally.filters.keys()).index(akey)
filtmax[n_filters - idx] = tally.filters[akey].length
# compute bin info
@ -554,11 +554,11 @@ class StatePoint(object):
np.prod(filtmax[0:i+2]))/(np.prod(filtmax[0:i+1]))) + 1
# append in dictionary bin with filter
data.update({tally.filters.keys()[n_filters - i - 1]:
filters[:,n_filters - i - 1]})
data.update({list(tally.filters.keys())[n_filters - i - 1]:
filters[:,n_filters - i - 1]})
# check for mesh
if tally.filters.keys()[n_filters - i - 1] == 'mesh':
if list(tally.filters.keys())[n_filters - i - 1] == 'mesh':
dims = list(self.meshes[tally.filters['mesh'].bins[0] - 1].dimension)
dims.reverse()
dims = np.asarray(dims)
@ -572,12 +572,12 @@ class StatePoint(object):
np.prod(meshmax[0:3]))/(np.prod(meshmax[0:2]))) + 1
mesh_bins[:,0] = np.floor(((filters[:,n_filters - i - 1] - 1) %
np.prod(meshmax[0:4]))/(np.prod(meshmax[0:3]))) + 1
data.update({'mesh':zip(mesh_bins[:,0],mesh_bins[:,1],
mesh_bins[:,2])})
data.update({'mesh': list(zip(mesh_bins[:,0], mesh_bins[:,1],
mesh_bins[:,2]))})
i += 1
# add in maximum bin filters and order
b = tally.filters.keys()
b = list(tally.filters.keys())
b.reverse()
filtmax = list(filtmax[1:])
try:
@ -604,9 +604,9 @@ class StatePoint(object):
def _get_long(self, n=1, path=None):
if self._hdf5:
return [long(v) for v in self._f[path].value]
return [int(v) for v in self._f[path].value]
else:
return [long(v) for v in self._get_data(n, 'q', 8)]
return [int(v) for v in self._get_data(n, 'q', 8)]
def _get_float(self, n=1, path=None):
if self._hdf5:

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python2
from __future__ import division
from __future__ import division, print_function
import sys
import itertools
@ -17,7 +17,7 @@ err = False
def parse_options():
"""Process command line arguments"""
def tallies_callback(option, opt, value, parser):
"""Option parser function for list of tallies"""
@ -42,7 +42,7 @@ def parse_options():
except:
p.print_help()
err = True
def filters_callback(option, opt, value, parser):
"""Option parser function for list of filters"""
global err
@ -59,7 +59,7 @@ def parse_options():
except:
p.print_help()
err = True
from optparse import OptionParser
usage = r"""%prog [options] <statepoint_file>
@ -98,12 +98,12 @@ You can list the available tallies, scores, and filters with the -l option:
p.add_option('-o', '--output', action='store', dest='output',
default='tally', help='path to output SILO file.')
p.add_option('-e', '--error', dest='valerr', default=False,
action='store_true',
action='store_true',
help='Flag to extract errors instead of values.')
p.add_option('-v', '--vtk', action='store_true', dest='vtk',
default=False, help='Flag to convert to VTK instead of SILO.')
parsed = p.parse_args()
if not parsed[1]:
p.print_help()
return parsed, err
@ -118,35 +118,35 @@ You can list the available tallies, scores, and filters with the -l option:
################################################################################
def main(file_, o):
"""Main program"""
sp = StatePoint(file_)
sp.read_results()
validate_options(sp, o)
if o.list:
print_available(sp)
return
if o.vtk:
if not o.output[-4:] == ".vtm": o.output += ".vtm"
else:
if not o.output[-5:] == ".silo": o.output += ".silo"
if o.vtk:
try:
import vtk
except:
print 'The vtk python bindings do not appear to be installed properly.\n'+\
'On Ubuntu: sudo apt-get install python-vtk\n'+\
'See: http://www.vtk.org/'
print('The vtk python bindings do not appear to be installed properly.\n'
'On Ubuntu: sudo apt-get install python-vtk\n'
'See: http://www.vtk.org/')
return
else:
try:
import silomesh
except:
print 'The silomesh package does not appear to be installed properly.\n'+\
'See: https://github.com/nhorelik/silomesh/'
print('The silomesh package does not appear to be installed properly.\n'
'See: https://github.com/nhorelik/silomesh/')
return
if o.vtk:
@ -158,20 +158,20 @@ def main(file_, o):
# Tally loop #################################################################
for tally in sp.tallies:
# skip non-mesh tallies or non-user-specified tallies
if o.tallies and not tally.id in o.tallies: continue
if not 'mesh' in tally.filters: continue
print "Processing Tally {}...".format(tally.id)
print("Processing Tally {}...".format(tally.id))
# extract filter options and mesh parameters for this tally
filtercombos = get_filter_combos(tally)
meshparms = get_mesh_parms(sp, tally)
nx,ny,nz = meshparms[:3]
ll = meshparms[3:6]
ur = meshparms[6:9]
if o.vtk:
ww = [(u-l)/n for u,l,n in zip(ur,ll,(nx,ny,nz))]
grid = grid = vtk.vtkImageData()
@ -180,17 +180,17 @@ def main(file_, o):
grid.SetSpacing(*ww)
else:
silomesh.init_mesh('Tally_{}'.format(tally.id), *meshparms)
# Score loop ###############################################################
for sid,score in enumerate(tally.scores):
# skip non-user-specified scrores for this tally
if o.scores and tally.id in o.scores and not sid in o.scores[tally.id]:
continue
# Filter loop ############################################################
for filterspec in filtercombos:
# skip non-user-specified filter bins
skip = False
if o.filters and tally.id in o.filters:
@ -200,7 +200,7 @@ def main(file_, o):
skip = True
break
if skip: continue
# find and sanitize the variable name for this score
varname = get_sanitized_filterspec_name(tally, score, filterspec)
if o.vtk:
@ -209,9 +209,9 @@ def main(file_, o):
dataforvtk = {}
else:
silomesh.init_var(varname)
lbl = "\t Score {}.{} {}:\t\t{}".format(tally.id, sid+1, score, varname)
# Mesh fill loop #######################################################
for x in range(1,nx+1):
sys.stdout.write(lbl+" {0}%\r".format(int(x/nx*100)))
@ -226,27 +226,27 @@ def main(file_, o):
dataforvtk[i] = float(val)
else:
silomesh.set_value(float(val), x, y, z)
# end mesh fill loop
print
print()
if o.vtk:
for i in range(nx*ny*nz):
vtkdata.InsertNextValue(dataforvtk[i])
grid.GetCellData().AddArray(vtkdata)
del vtkdata
else:
silomesh.finalize_var()
# end filter loop
# end score loop
if o.vtk:
blocks.SetBlock(block_idx, grid)
block_idx += 1
else:
silomesh.finalize_mesh()
# end tally loop
if o.vtk:
writer = vtk.vtkXMLMultiBlockDataWriter()
@ -259,7 +259,7 @@ def main(file_, o):
################################################################################
def get_sanitized_filterspec_name(tally, score, filterspec):
"""Returns a name fit for silo vars for a given filterspec, tally and score"""
comboname = "_"+" ".join(["{}_{}".format(filter_, bin)
for filter_, bin in filterspec[1:]])
if len(filterspec[1:]) == 0: comboname = ''
@ -274,16 +274,16 @@ def get_filter_combos(tally):
Each combo has the mesh spec as the first element, to be set later.
These filter specs correspond with the second argument to StatePoint.get_value
"""
specs = []
if len(tally.filters) == 1:
return [[['mesh', [1, 1, 1]]]]
filters = tally.filters.keys()
filters = list(tally.filters.keys())
filters.pop(filters.index('mesh'))
nbins = [tally.filters[f].length for f in filters]
combos = [ [b] for b in range(nbins[0])]
for i,b in enumerate(nbins[1:]):
prod = list(itertools.product(combos, range(b)))
@ -311,25 +311,25 @@ def get_mesh_parms(sp, tally):
################################################################################
def print_available(sp):
"""Prints available tallies/scores in a statepoint"""
print "Available tally and score indices:"
print("Available tally and score indices:")
for tally in sp.tallies:
mesh = ""
if not 'mesh' in tally.filters: mesh = "(no mesh)"
print "\tTally {} {}".format(tally.id, mesh)
scores = ["{}.{}: {}".format(tally.id, sid, score)
print("\tTally {} {}".format(tally.id, mesh))
scores = ["{}.{}: {}".format(tally.id, sid, score)
for sid, score in enumerate(tally.scores)]
for score in scores:
print "\t\tScore {}".format(score)
print("\t\tScore {}".format(score))
for filter_ in tally.filters:
if filter_ == 'mesh': continue
for bin in range(tally.filters[filter_].length):
print "\t\t\tFilters: {}.{}.{}".format(tally.id, filter_, bin)
print("\t\t\tFilters: {}.{}.{}".format(tally.id, filter_, bin))
################################################################################
def validate_options(sp,o):
"""Validates specified tally/score options for the current statepoint"""
available_tallies = [t.id for t in sp.tallies]
if o.tallies:
for otally in o.tallies:
@ -345,7 +345,7 @@ def validate_options(sp,o):
for oscore in o.scores[otally]:
if oscore > len(tally.scores):
warnings.warn('No score {} in tally {}'.format(oscore, otally))
if o.scores:
for otally in o.scores.keys():
if not otally in available_tallies:
@ -355,7 +355,7 @@ def validate_options(sp,o):
warnings.warn(
'Skipping scores for tally {}, excluded by tally list'.format(otally))
continue
if o.filters:
for otally in o.filters.keys():
if not otally in available_tallies:
@ -380,7 +380,7 @@ def validate_options(sp,o):
warnings.warn(
'No bin {} in tally {} filter {}'.format(bin, otally, filter_))
################################################################################
################################################################################
# monkeypatch to suppress the source echo produced by warnings
def formatwarning(message, category, filename, lineno, line):
return "{}:{}: {}: {}\n".format(filename, lineno, category.__name__, message)

View file

@ -1,4 +1,4 @@
#!/usr/bin/env python2
#!/usr/bin/env python
import sys

View file

@ -1,5 +1,6 @@
#!/usr/bin/env python2
#!/usr/bin/env python
from __future__ import print_function
from sys import argv
from math import sqrt

View file

@ -1,4 +1,6 @@
#!/usr/bin/env python2
#!/usr/bin/env python
from __future__ import print_function, division
from sys import argv
from math import sqrt
@ -56,7 +58,7 @@ for t in sp.tallies:
nx, ny, nz = m.dimension
# Calculate number of score bins
ns = t.total_score_bins * t.total_filter_bins / (nx*ny*nz)
ns = t.total_score_bins * t.total_filter_bins // (nx*ny*nz)
assert n_bins == nx*ny*nz*ns
# Create lists for tallies

View file

@ -1,4 +1,4 @@
#!/usr/bin/env python2
#!/usr/bin/env python
# This program takes OpenMC statepoint binary files and creates a variety of
# outputs from them which should provide the user with an idea of the
@ -15,6 +15,7 @@
# fileType, printxs, showImg, and savetoCSV. See the options block for more
# information.
from __future__ import print_function
from math import sqrt, pow
from glob import glob

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python2
from __future__ import division
from __future__ import division, print_function
import struct
import sys
@ -25,7 +25,7 @@ def parse_options():
################################################################################
def main(file_, o):
print file_
print(file_)
fh = open(file_,'rb')
header = get_header(fh)
meshparms = header['dimension'] + header['lower_left'] + header['upper_right']
@ -36,18 +36,18 @@ def main(file_, o):
try:
import vtk
except:
print 'The vtk python bindings do not appear to be installed properly.\n'+\
'On Ubuntu: sudo apt-get install python-vtk\n'+\
'See: http://www.vtk.org/'
print('The vtk python bindings do not appear to be installed properly.\n'
'On Ubuntu: sudo apt-get install python-vtk\n'
'See: http://www.vtk.org/')
return
origin = [(l+w*n/2.) for n,l,w in zip((nx,ny,nz),ll,header['width'])]
grid = vtk.vtkImageData()
grid.SetDimensions(nx+1,ny+1,nz+1)
grid.SetOrigin(*ll)
grid.SetSpacing(*header['width'])
data = vtk.vtkDoubleArray()
data.SetName("id")
data.SetNumberOfTuples(nx*ny*nz)
@ -60,7 +60,7 @@ def main(file_, o):
id_ = get_int(fh)[0]
data.SetValue(i, id_)
grid.GetCellData().AddArray(data)
writer = vtk.vtkXMLImageDataWriter()
writer.SetInput(grid)
if not o.output[-4:] == ".vti": o.output += ".vti"
@ -72,8 +72,8 @@ def main(file_, o):
try:
import silomesh
except:
print 'The silomesh package does not appear to be installed properly.\n'+\
'See: https://github.com/nhorelik/silomesh/'
print('The silomesh package does not appear to be installed properly.\n'
'See: https://github.com/nhorelik/silomesh/')
return
if not o.output[-5:] == ".silo": o.output += ".silo"
silomesh.init_silo(o.output)
@ -86,10 +86,10 @@ def main(file_, o):
for z in range(1,nz+1):
id_ = get_int(fh)[0]
silomesh.set_value(float(id_), x, y, z)
print
print()
silomesh.finalize_var()
silomesh.finalize_mesh()
silomesh.finalize_silo()
silomesh.finalize_silo()
################################################################################
def get_header(file_):

View file

@ -21,10 +21,11 @@ module vector_header
procedure :: create => vector_create
procedure :: destroy => vector_destroy
procedure :: add_value => vector_add_value
#ifdef PETSC
procedure :: copy => vector_copy
# ifdef PETSC
procedure :: setup_petsc => vector_setup_petsc
procedure :: write_petsc_binary => vector_write_petsc_binary
#endif
# endif
end type Vector
#ifdef PETSC
@ -127,4 +128,28 @@ contains
end subroutine vector_write_petsc_binary
#endif
!===============================================================================
! VECTOR_COPY allocates a separate vector and copies
!===============================================================================
subroutine vector_copy(self, vectocopy)
class(Vector), target, intent(inout) :: self
type(Vector), intent(in) :: vectocopy
! Preallocate vector
if (.not.allocated(self % data)) allocate(self % data(vectocopy % n))
self % val => self % data(1:vectocopy % n)
! Set n
self % n = vectocopy % n
! Copy values
self % val = vectocopy % val
! Petsc is default not active
self % petsc_active = .false.
end subroutine vector_copy
end module vector_header

View file

@ -8,7 +8,7 @@ import shutil
import re
import glob
import socket
from subprocess import call
from subprocess import call
from collections import OrderedDict
from optparse import OptionParser
@ -25,7 +25,7 @@ parser.add_option('-C', '--build-config', dest='build_config',
Specific build configurations can be printed out with \
optional argument -p, --print. This uses standard \
regex syntax to select build configurations.")
parser.add_option('-l', '--list', action="store_true",
parser.add_option('-l', '--list', action="store_true",
dest="list_build_configs", default=False,
help="List out build configurations.")
parser.add_option("-p", "--project", dest="project", default="",
@ -117,7 +117,7 @@ class Test(object):
self.success = True
self.msg = None
self.skipped = False
self.valgrind_cmd = ""
self.valgrind_cmd = ""
self.gcov_cmd = ""
self.cmake = ['cmake', '-H../src', '-Bbuild']
@ -263,7 +263,7 @@ class Test(object):
# Simple function to add a test to the global tests dictionary
def add_test(name, debug=False, optimize=False, mpi=False, openmp=False,\
hdf5=False, petsc=False, valgrind=False, coverage=False):
tests.update({name:Test(name, debug, optimize, mpi, openmp, hdf5, petsc,
tests.update({name:Test(name, debug, optimize, mpi, openmp, hdf5, petsc,
valgrind, coverage)})
# List of all tests that may be run. User can add -C to command line to specify
@ -330,7 +330,7 @@ if options.build_config is not None:
del tests[key]
# Check for dashboard and determine whether to push results to server
# Note that there are only 3 basic dashboards:
# Note that there are only 3 basic dashboards:
# Experimental, Nightly, Continuous. On the CDash end, these can be
# reorganized into groups when a hostname, dashboard and build name
# are matched.
@ -349,7 +349,7 @@ else:
update = ''
# Check for CTest scipts mode
# Sets up whether we should use just the basic ctest command or use
# Sets up whether we should use just the basic ctest command or use
# CTest scripting to perform tests.
if not options.dash is None or options.script:
script_mode = True
@ -394,7 +394,7 @@ if not script_mode:
del tests[key]
# Check if tests empty
if len(tests.keys()) == 0:
if len(list(tests.keys())) == 0:
print('No tests to run.')
exit()
@ -416,7 +416,7 @@ for key in iter(tests):
if not test.success:
continue
# Get valgrind command
# Get valgrind command
if test.valgrind:
test.find_valgrind()
if not test.success:
@ -427,7 +427,7 @@ for key in iter(tests):
test.find_coverage()
if not test.success:
continue
# Set test specific CTest script vars. Not used in non-script mode
ctest_vars.update({'build_name' : test.get_build_name()})
ctest_vars.update({'build_opts' : test.get_build_opts()})

View file

@ -3,7 +3,7 @@
import sys
# import statepoint
sys.path.append('../../src/utils')
sys.path.insert(0, '../../src/utils')
import statepoint
# read in statepoint file

View file

@ -1,2 +1,2 @@
k-combined:
3.037840E-01 4.395585E-03
3.011726E-01 1.841644E-03

View file

@ -12,5 +12,5 @@
<display> dominance </display>
<solver> power </solver>
<feedback> true </feedback>
<gauss_seidel_tolerance> 1.e-15 1.e-20 </gauss_seidel_tolerance>
</cmfd>

View file

@ -4,7 +4,7 @@ import sys
import numpy as np
# import statepoint
sys.path.append('../../src/utils')
sys.path.insert(0, '../../src/utils')
import statepoint
# read in statepoint file

View file

@ -1,128 +1,128 @@
k-combined:
1.166352E+00 1.167615E-02
1.177396E+00 4.883437E-03
tally 1:
1.181633E+01
1.411075E+01
2.225993E+01
4.989263E+01
3.022366E+01
9.163058E+01
3.521719E+01
1.243119E+02
3.683278E+01
1.359014E+02
3.644881E+01
1.330874E+02
3.368020E+01
1.137856E+02
2.800504E+01
7.862785E+01
2.099989E+01
4.427213E+01
1.109715E+01
1.242693E+01
1.107335E+01
1.235221E+01
2.002676E+01
4.017045E+01
2.844184E+01
8.111731E+01
3.428492E+01
1.177848E+02
3.735839E+01
1.397523E+02
3.894180E+01
1.517824E+02
3.528006E+01
1.246309E+02
2.863448E+01
8.222321E+01
2.125384E+01
4.535192E+01
1.112124E+01
1.241089E+01
tally 2:
2.375435E+01
2.844812E+01
1.663749E+01
1.396549E+01
2.263679E+00
2.636946E-01
4.382531E+01
9.669964E+01
3.095313E+01
4.829350E+01
4.053211E+00
8.354098E-01
5.911795E+01
1.754446E+02
4.206165E+01
8.884145E+01
5.555905E+00
1.564759E+00
6.868764E+01
2.367084E+02
4.888499E+01
1.199267E+02
6.294307E+00
2.009790E+00
7.235623E+01
2.628007E+02
5.139839E+01
1.326712E+02
6.686118E+00
2.268764E+00
7.135408E+01
2.557589E+02
5.083886E+01
1.298291E+02
6.771083E+00
2.317293E+00
6.696601E+01
2.250860E+02
4.748258E+01
1.132403E+02
6.327041E+00
2.026095E+00
5.564372E+01
1.553574E+02
3.953729E+01
7.844444E+01
5.289683E+00
1.415775E+00
4.092756E+01
8.408073E+01
2.889867E+01
4.193356E+01
3.727944E+00
7.053359E-01
2.263358E+01
2.604194E+01
1.584561E+01
1.273998E+01
2.024017E+00
2.141218E-01
2.243113E+01
2.535057E+01
1.557550E+01
1.222813E+01
2.164704E+00
2.389690E-01
4.049814E+01
8.218116E+01
2.854669E+01
4.085264E+01
3.934452E+00
7.833208E-01
5.706024E+01
1.633739E+02
4.049737E+01
8.234850E+01
5.231368E+00
1.386110E+00
6.798682E+01
2.320807E+02
4.819178E+01
1.166820E+02
6.247056E+00
1.968990E+00
7.449317E+01
2.782374E+02
5.315156E+01
1.417287E+02
6.667584E+00
2.250879E+00
7.530107E+01
2.849330E+02
5.378916E+01
1.454619E+02
7.071012E+00
2.522919E+00
6.820303E+01
2.335083E+02
4.850330E+01
1.181013E+02
6.241747E+00
1.973368E+00
5.831373E+01
1.704779E+02
4.149124E+01
8.633656E+01
5.385636E+00
1.468642E+00
4.184350E+01
8.792430E+01
2.971699E+01
4.435896E+01
3.784806E+00
7.343249E-01
2.202673E+01
2.444732E+01
1.531988E+01
1.183160E+01
2.073873E+00
2.272561E-01
tally 3:
1.602499E+01
1.295630E+01
1.060542E+00
5.920587E-02
2.980673E+01
4.480492E+01
1.936250E+00
1.905077E-01
4.051926E+01
8.246657E+01
2.606639E+00
3.437220E-01
4.705779E+01
1.111431E+02
3.028454E+00
4.619883E-01
4.957304E+01
1.234274E+02
3.176475E+00
5.108616E-01
4.897053E+01
1.204739E+02
3.080782E+00
4.792314E-01
4.569001E+01
1.048762E+02
2.913485E+00
4.283033E-01
3.800244E+01
7.248583E+01
2.465881E+00
3.073302E-01
2.784859E+01
3.895822E+01
1.770793E+00
1.579009E-01
1.528645E+01
1.186641E+01
1.015624E+00
5.285299E-02
1.500439E+01
1.135466E+01
9.942586E-01
5.051831E-02
2.744453E+01
3.776958E+01
1.781992E+00
1.612021E-01
3.901013E+01
7.642401E+01
2.472924E+00
3.077607E-01
4.642527E+01
1.082730E+02
2.924369E+00
4.335819E-01
5.109083E+01
1.309660E+02
3.325865E+00
5.592642E-01
5.182512E+01
1.350762E+02
3.259912E+00
5.350517E-01
4.672480E+01
1.095974E+02
3.097309E+00
4.854729E-01
3.997405E+01
8.014326E+01
2.589176E+00
3.374615E-01
2.861624E+01
4.114210E+01
1.806237E+00
1.656944E-01
1.474531E+01
1.096355E+01
9.807860E-01
4.934364E-02
tally 4:
0.000000E+00
0.000000E+00
@ -160,8 +160,8 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
3.198289E+00
5.148488E-01
3.050887E+00
4.698799E-01
0.000000E+00
0.000000E+00
0.000000E+00
@ -208,10 +208,10 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
5.696337E+00
1.628487E+00
2.860206E+00
4.137254E-01
5.388951E+00
1.456464E+00
2.664528E+00
3.577345E-01
0.000000E+00
0.000000E+00
0.000000E+00
@ -256,10 +256,10 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
7.588948E+00
2.895325E+00
5.292314E+00
1.413583E+00
7.165280E+00
2.573230E+00
4.930263E+00
1.218988E+00
0.000000E+00
0.000000E+00
0.000000E+00
@ -304,10 +304,10 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
8.876155E+00
3.953353E+00
7.255925E+00
2.639713E+00
8.550278E+00
3.668687E+00
6.985934E+00
2.450395E+00
0.000000E+00
0.000000E+00
0.000000E+00
@ -352,10 +352,10 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
9.354049E+00
4.393658E+00
8.482819E+00
3.610891E+00
9.236725E+00
4.281659E+00
8.429932E+00
3.565265E+00
0.000000E+00
0.000000E+00
0.000000E+00
@ -400,10 +400,10 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
8.943279E+00
4.014844E+00
8.979641E+00
4.049912E+00
9.396613E+00
4.431004E+00
9.307625E+00
4.351276E+00
0.000000E+00
0.000000E+00
0.000000E+00
@ -448,10 +448,10 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
8.300834E+00
3.459191E+00
9.090369E+00
4.158129E+00
8.721885E+00
3.821463E+00
9.438995E+00
4.479948E+00
0.000000E+00
0.000000E+00
0.000000E+00
@ -496,10 +496,10 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
6.804280E+00
2.322582E+00
8.354155E+00
3.514646E+00
7.096946E+00
2.525113E+00
8.605114E+00
3.710134E+00
0.000000E+00
0.000000E+00
0.000000E+00
@ -544,10 +544,10 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
5.046905E+00
1.278109E+00
7.174660E+00
2.586803E+00
5.222832E+00
1.373166E+00
7.480684E+00
2.804650E+00
0.000000E+00
0.000000E+00
0.000000E+00
@ -592,10 +592,10 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
2.662185E+00
3.600983E-01
5.306922E+00
1.415937E+00
2.726690E+00
3.773397E-01
5.470375E+00
1.504111E+00
0.000000E+00
0.000000E+00
0.000000E+00
@ -642,8 +642,8 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
3.042882E+00
4.659100E-01
3.026290E+00
4.597502E-01
0.000000E+00
0.000000E+00
0.000000E+00
@ -662,114 +662,114 @@ k cmfd
0.000000E+00
0.000000E+00
0.000000E+00
1.155207E+00
1.161934E+00
1.162573E+00
1.155825E+00
1.156010E+00
1.155352E+00
1.149838E+00
1.160768E+00
1.160453E+00
1.169217E+00
1.162716E+00
1.161432E+00
1.163968E+00
1.165559E+00
1.164094E+00
1.159570E+00
1.150583E+00
1.159578E+00
1.162798E+00
1.171003E+00
1.162732E+00
1.165591E+00
1.166032E+00
1.165387E+00
1.165451E+00
1.170726E+00
1.170820E+00
1.167945E+00
1.166050E+00
1.165757E+00
1.167631E+00
1.168366E+00
cmfd entropy
0.000000E+00
0.000000E+00
0.000000E+00
0.000000E+00
3.220491E+00
3.222825E+00
3.218323E+00
3.219037E+00
3.218088E+00
3.218982E+00
3.223440E+00
3.219003E+00
3.219661E+00
3.222534E+00
3.226366E+00
3.225935E+00
3.225693E+00
3.225236E+00
3.226171E+00
3.227775E+00
3.215201E+00
3.212850E+00
3.214094E+00
3.208054E+00
3.212891E+00
3.213349E+00
3.208290E+00
3.206895E+00
3.208786E+00
3.209630E+00
3.212321E+00
3.211750E+00
3.212453E+00
3.213370E+00
3.211791E+00
3.212685E+00
cmfd balance
0.000000E+00
0.000000E+00
0.000000E+00
0.000000E+00
7.152541E-03
7.231826E-03
5.207222E-03
4.847674E-03
4.190622E-03
3.646931E-03
3.246272E-03
4.268558E-03
3.666841E-03
3.201934E-03
2.607402E-03
2.522363E-03
2.503931E-03
2.357463E-03
2.164466E-03
1.815207E-03
6.348026E-03
5.102747E-03
4.043947E-03
3.952742E-03
2.533934E-03
2.215030E-03
2.945032E-03
2.597862E-03
2.300873E-03
1.991974E-03
1.679430E-03
1.636923E-03
1.581336E-03
1.431472E-03
1.419168E-03
1.256242E-03
cmfd dominance ratio
0.000E+00
0.000E+00
0.000E+00
0.000E+00
5.433E-01
5.463E-01
5.421E-01
5.439E-01
5.435E-01
5.456E-01
5.482E-01
5.458E-01
5.458E-01
5.462E-01
5.494E-01
5.486E-01
5.492E-01
5.482E-01
5.482E-01
5.492E-01
5.524E-01
5.476E-01
5.474E-01
5.419E-01
5.443E-01
5.448E-01
5.408E-01
5.391E-01
5.400E-01
5.396E-01
5.408E-01
5.398E-01
5.398E-01
5.399E-01
5.388E-01
5.389E-01
cmfd openmc source comparison
0.000000E+00
0.000000E+00
0.000000E+00
0.000000E+00
1.520219E-02
1.051769E-02
9.811647E-03
8.544887E-03
7.860220E-03
6.949328E-03
5.032373E-03
5.022939E-03
4.521643E-03
4.306799E-03
4.227082E-03
4.166664E-03
4.553703E-03
3.834049E-03
3.649749E-03
3.258051E-03
8.388554E-03
7.868057E-03
6.387209E-03
6.979018E-03
5.634468E-03
5.579466E-03
5.647779E-03
5.289856E-03
4.550547E-03
4.373716E-03
4.042350E-03
3.813510E-03
3.749151E-03
3.358126E-03
3.562360E-03
3.904942E-03
cmfd source
4.575620E-02
8.436685E-02
1.142434E-01
1.327994E-01
1.388492E-01
1.341762E-01
1.258878E-01
1.060199E-01
7.531612E-02
4.258493E-02
4.142294E-02
7.484382E-02
1.050784E-01
1.256771E-01
1.444717E-01
1.420230E-01
1.350735E-01
1.118744E-01
7.755343E-02
4.198177E-02

View file

@ -4,7 +4,7 @@ import sys
import numpy as np
# import statepoint
sys.path.append('../../src/utils')
sys.path.insert(0, '../../src/utils')
import statepoint
# read in statepoint file

View file

@ -1,128 +1,128 @@
k-combined:
1.166352E+00 1.167615E-02
1.177396E+00 4.883437E-03
tally 1:
1.181633E+01
1.411075E+01
2.225993E+01
4.989263E+01
3.022366E+01
9.163058E+01
3.521719E+01
1.243119E+02
3.683278E+01
1.359014E+02
3.644881E+01
1.330874E+02
3.368020E+01
1.137856E+02
2.800504E+01
7.862785E+01
2.099989E+01
4.427213E+01
1.109715E+01
1.242693E+01
1.107335E+01
1.235221E+01
2.002676E+01
4.017045E+01
2.844184E+01
8.111731E+01
3.428492E+01
1.177848E+02
3.735839E+01
1.397523E+02
3.894180E+01
1.517824E+02
3.528006E+01
1.246309E+02
2.863448E+01
8.222321E+01
2.125384E+01
4.535192E+01
1.112124E+01
1.241089E+01
tally 2:
2.375435E+01
2.844812E+01
1.663749E+01
1.396549E+01
2.263679E+00
2.636946E-01
4.382531E+01
9.669964E+01
3.095313E+01
4.829350E+01
4.053211E+00
8.354098E-01
5.911795E+01
1.754446E+02
4.206165E+01
8.884145E+01
5.555905E+00
1.564759E+00
6.868764E+01
2.367084E+02
4.888499E+01
1.199267E+02
6.294307E+00
2.009790E+00
7.235623E+01
2.628007E+02
5.139839E+01
1.326712E+02
6.686118E+00
2.268764E+00
7.135408E+01
2.557589E+02
5.083886E+01
1.298291E+02
6.771083E+00
2.317293E+00
6.696601E+01
2.250860E+02
4.748258E+01
1.132403E+02
6.327041E+00
2.026095E+00
5.564372E+01
1.553574E+02
3.953729E+01
7.844444E+01
5.289683E+00
1.415775E+00
4.092756E+01
8.408073E+01
2.889867E+01
4.193356E+01
3.727944E+00
7.053359E-01
2.263358E+01
2.604194E+01
1.584561E+01
1.273998E+01
2.024017E+00
2.141218E-01
2.243113E+01
2.535057E+01
1.557550E+01
1.222813E+01
2.164704E+00
2.389690E-01
4.049814E+01
8.218116E+01
2.854669E+01
4.085264E+01
3.934452E+00
7.833208E-01
5.706024E+01
1.633739E+02
4.049737E+01
8.234850E+01
5.231368E+00
1.386110E+00
6.798682E+01
2.320807E+02
4.819178E+01
1.166820E+02
6.247056E+00
1.968990E+00
7.449317E+01
2.782374E+02
5.315156E+01
1.417287E+02
6.667584E+00
2.250879E+00
7.530107E+01
2.849330E+02
5.378916E+01
1.454619E+02
7.071012E+00
2.522919E+00
6.820303E+01
2.335083E+02
4.850330E+01
1.181013E+02
6.241747E+00
1.973368E+00
5.831373E+01
1.704779E+02
4.149124E+01
8.633656E+01
5.385636E+00
1.468642E+00
4.184350E+01
8.792430E+01
2.971699E+01
4.435896E+01
3.784806E+00
7.343249E-01
2.202673E+01
2.444732E+01
1.531988E+01
1.183160E+01
2.073873E+00
2.272561E-01
tally 3:
1.602499E+01
1.295630E+01
1.060542E+00
5.920587E-02
2.980673E+01
4.480492E+01
1.936250E+00
1.905077E-01
4.051926E+01
8.246657E+01
2.606639E+00
3.437220E-01
4.705779E+01
1.111431E+02
3.028454E+00
4.619883E-01
4.957304E+01
1.234274E+02
3.176475E+00
5.108616E-01
4.897053E+01
1.204739E+02
3.080782E+00
4.792314E-01
4.569001E+01
1.048762E+02
2.913485E+00
4.283033E-01
3.800244E+01
7.248583E+01
2.465881E+00
3.073302E-01
2.784859E+01
3.895822E+01
1.770793E+00
1.579009E-01
1.528645E+01
1.186641E+01
1.015624E+00
5.285299E-02
1.500439E+01
1.135466E+01
9.942586E-01
5.051831E-02
2.744453E+01
3.776958E+01
1.781992E+00
1.612021E-01
3.901013E+01
7.642401E+01
2.472924E+00
3.077607E-01
4.642527E+01
1.082730E+02
2.924369E+00
4.335819E-01
5.109083E+01
1.309660E+02
3.325865E+00
5.592642E-01
5.182512E+01
1.350762E+02
3.259912E+00
5.350517E-01
4.672480E+01
1.095974E+02
3.097309E+00
4.854729E-01
3.997405E+01
8.014326E+01
2.589176E+00
3.374615E-01
2.861624E+01
4.114210E+01
1.806237E+00
1.656944E-01
1.474531E+01
1.096355E+01
9.807860E-01
4.934364E-02
tally 4:
0.000000E+00
0.000000E+00
@ -160,8 +160,8 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
3.198289E+00
5.148488E-01
3.050887E+00
4.698799E-01
0.000000E+00
0.000000E+00
0.000000E+00
@ -208,10 +208,10 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
5.696337E+00
1.628487E+00
2.860206E+00
4.137254E-01
5.388951E+00
1.456464E+00
2.664528E+00
3.577345E-01
0.000000E+00
0.000000E+00
0.000000E+00
@ -256,10 +256,10 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
7.588948E+00
2.895325E+00
5.292314E+00
1.413583E+00
7.165280E+00
2.573230E+00
4.930263E+00
1.218988E+00
0.000000E+00
0.000000E+00
0.000000E+00
@ -304,10 +304,10 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
8.876155E+00
3.953353E+00
7.255925E+00
2.639713E+00
8.550278E+00
3.668687E+00
6.985934E+00
2.450395E+00
0.000000E+00
0.000000E+00
0.000000E+00
@ -352,10 +352,10 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
9.354049E+00
4.393658E+00
8.482819E+00
3.610891E+00
9.236725E+00
4.281659E+00
8.429932E+00
3.565264E+00
0.000000E+00
0.000000E+00
0.000000E+00
@ -400,10 +400,10 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
8.943279E+00
4.014844E+00
8.979641E+00
4.049912E+00
9.396613E+00
4.431004E+00
9.307625E+00
4.351276E+00
0.000000E+00
0.000000E+00
0.000000E+00
@ -448,10 +448,10 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
8.300834E+00
3.459191E+00
9.090369E+00
4.158129E+00
8.721885E+00
3.821463E+00
9.438995E+00
4.479948E+00
0.000000E+00
0.000000E+00
0.000000E+00
@ -496,10 +496,10 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
6.804280E+00
2.322582E+00
8.354155E+00
3.514646E+00
7.096946E+00
2.525113E+00
8.605114E+00
3.710134E+00
0.000000E+00
0.000000E+00
0.000000E+00
@ -544,10 +544,10 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
5.046905E+00
1.278109E+00
7.174660E+00
2.586803E+00
5.222832E+00
1.373166E+00
7.480684E+00
2.804650E+00
0.000000E+00
0.000000E+00
0.000000E+00
@ -592,10 +592,10 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
2.662185E+00
3.600983E-01
5.306922E+00
1.415937E+00
2.726690E+00
3.773397E-01
5.470375E+00
1.504111E+00
0.000000E+00
0.000000E+00
0.000000E+00
@ -642,8 +642,8 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
3.042882E+00
4.659100E-01
3.026290E+00
4.597502E-01
0.000000E+00
0.000000E+00
0.000000E+00
@ -662,64 +662,64 @@ k cmfd
0.000000E+00
0.000000E+00
0.000000E+00
1.155207E+00
1.161934E+00
1.162573E+00
1.155825E+00
1.156010E+00
1.155352E+00
1.149838E+00
1.160768E+00
1.160453E+00
1.169217E+00
1.162716E+00
1.161432E+00
1.163968E+00
1.165559E+00
1.164094E+00
1.159570E+00
1.150583E+00
1.159578E+00
1.162798E+00
1.171003E+00
1.162732E+00
1.165591E+00
1.166032E+00
1.165387E+00
1.165451E+00
1.170726E+00
1.170820E+00
1.167945E+00
1.166050E+00
1.165757E+00
1.167631E+00
1.168366E+00
cmfd entropy
0.000000E+00
0.000000E+00
0.000000E+00
0.000000E+00
3.220491E+00
3.222825E+00
3.218323E+00
3.219037E+00
3.218088E+00
3.218982E+00
3.223440E+00
3.219003E+00
3.219661E+00
3.222534E+00
3.226366E+00
3.225935E+00
3.225693E+00
3.225236E+00
3.226171E+00
3.227775E+00
3.215201E+00
3.212850E+00
3.214094E+00
3.208054E+00
3.212891E+00
3.213349E+00
3.208290E+00
3.206895E+00
3.208786E+00
3.209630E+00
3.212321E+00
3.211750E+00
3.212453E+00
3.213370E+00
3.211791E+00
3.212685E+00
cmfd balance
0.000000E+00
0.000000E+00
0.000000E+00
0.000000E+00
7.152541E-03
7.231826E-03
5.207222E-03
4.847674E-03
4.190622E-03
3.646931E-03
3.246272E-03
4.268558E-03
3.666841E-03
3.201934E-03
2.607402E-03
2.522363E-03
2.503931E-03
2.357463E-03
2.164466E-03
1.815206E-03
6.348026E-03
5.102747E-03
4.043947E-03
3.952742E-03
2.533934E-03
2.215030E-03
2.945032E-03
2.597862E-03
2.300873E-03
1.991974E-03
1.679430E-03
1.636923E-03
1.581336E-03
1.431472E-03
1.419168E-03
1.256242E-03
cmfd dominance ratio
0.000E+00
0.000E+00
@ -746,30 +746,30 @@ cmfd openmc source comparison
0.000000E+00
0.000000E+00
0.000000E+00
1.520220E-02
1.051769E-02
9.811648E-03
8.544888E-03
7.860220E-03
6.949329E-03
5.032373E-03
5.022939E-03
4.521643E-03
4.306800E-03
4.227084E-03
4.166665E-03
4.553705E-03
3.834051E-03
3.649750E-03
3.258053E-03
8.388554E-03
7.868057E-03
6.387210E-03
6.979018E-03
5.634468E-03
5.579467E-03
5.647780E-03
5.289856E-03
4.550548E-03
4.373716E-03
4.042349E-03
3.813510E-03
3.749150E-03
3.358125E-03
3.562360E-03
3.904943E-03
cmfd source
4.575620E-02
8.436685E-02
1.142434E-01
1.327994E-01
1.388492E-01
1.341762E-01
1.258878E-01
1.060199E-01
7.531612E-02
4.258493E-02
4.142294E-02
7.484381E-02
1.050784E-01
1.256771E-01
1.444717E-01
1.420230E-01
1.350735E-01
1.118744E-01
7.755343E-02
4.198177E-02

View file

@ -12,5 +12,6 @@
<display> dominance </display>
<solver> power </solver>
<feedback> false </feedback>
<gauss_seidel_tolerance> 1.e-15 1.e-20 </gauss_seidel_tolerance>
</cmfd>

View file

@ -4,7 +4,7 @@ import sys
import numpy as np
# import statepoint
sys.path.append('../../src/utils')
sys.path.insert(0, '../../src/utils')
import statepoint
# read in statepoint file

View file

@ -1,128 +1,128 @@
k-combined:
1.172791E+00 6.252959E-03
1.170519E+00 8.422959E-03
tally 1:
1.163448E+01
1.363980E+01
2.145286E+01
4.616529E+01
2.888253E+01
8.376909E+01
3.373143E+01
1.141757E+02
3.746579E+01
1.406721E+02
3.777515E+01
1.428729E+02
3.386238E+01
1.147938E+02
2.897188E+01
8.420449E+01
2.136315E+01
4.582748E+01
1.108879E+01
1.236048E+01
1.078122E+01
1.170828E+01
1.999878E+01
4.018561E+01
2.812898E+01
7.936860E+01
3.362276E+01
1.133841E+02
3.714459E+01
1.382628E+02
3.828125E+01
1.470408E+02
3.599263E+01
1.299451E+02
3.090749E+01
9.596105E+01
2.144103E+01
4.630323E+01
1.143002E+01
1.314355E+01
tally 2:
2.372805E+01
2.837972E+01
1.658800E+01
1.388151E+01
2.247323E+00
2.582582E-01
4.299776E+01
9.287131E+01
3.043200E+01
4.657631E+01
3.934057E+00
7.973541E-01
5.684445E+01
1.623153E+02
4.034800E+01
8.179073E+01
5.379322E+00
1.465670E+00
6.606709E+01
2.191486E+02
4.692300E+01
1.106126E+02
5.750728E+00
1.674662E+00
7.255562E+01
2.645381E+02
5.158400E+01
1.337742E+02
6.636809E+00
2.234026E+00
7.201624E+01
2.607904E+02
5.120900E+01
1.318401E+02
6.679637E+00
2.260160E+00
6.713101E+01
2.261599E+02
4.758700E+01
1.136620E+02
6.543521E+00
2.167610E+00
5.662017E+01
1.608249E+02
4.020700E+01
8.115173E+01
5.470801E+00
1.508646E+00
4.250475E+01
9.067511E+01
3.008800E+01
4.543510E+01
3.893346E+00
7.757374E-01
2.346776E+01
2.789085E+01
1.631500E+01
1.346917E+01
2.248911E+00
2.635335E-01
2.247115E+01
2.548076E+01
1.574700E+01
1.251937E+01
2.119907E+00
2.284737E-01
4.160187E+01
8.733627E+01
2.945600E+01
4.383448E+01
4.027136E+00
8.279807E-01
5.722117E+01
1.643758E+02
4.057100E+01
8.267151E+01
5.388803E+00
1.465180E+00
6.769175E+01
2.300722E+02
4.800300E+01
1.157663E+02
6.213554E+00
1.946061E+00
7.376629E+01
2.729167E+02
5.253400E+01
1.385018E+02
6.438590E+00
2.103693E+00
7.454128E+01
2.790080E+02
5.311800E+01
1.417584E+02
6.784745E+00
2.328936E+00
6.907125E+01
2.397912E+02
4.912000E+01
1.213330E+02
6.405754E+00
2.075535E+00
6.012056E+01
1.815248E+02
4.280600E+01
9.207864E+01
5.534450E+00
1.555396E+00
4.229808E+01
8.999380E+01
3.003200E+01
4.541718E+01
3.844618E+00
7.537006E-01
2.272774E+01
2.597695E+01
1.577800E+01
1.252728E+01
2.221451E+00
2.528223E-01
tally 3:
1.601100E+01
1.293342E+01
1.062007E+00
5.868554E-02
2.927700E+01
4.312144E+01
1.921709E+00
1.866340E-01
3.887000E+01
7.592933E+01
2.578823E+00
3.377406E-01
4.523100E+01
1.028071E+02
2.905782E+00
4.248071E-01
4.966300E+01
1.240308E+02
3.172094E+00
5.080457E-01
4.933600E+01
1.223712E+02
3.077790E+00
4.818212E-01
4.581400E+01
1.053633E+02
2.952966E+00
4.398204E-01
3.859900E+01
7.480105E+01
2.487981E+00
3.120526E-01
2.904800E+01
4.235413E+01
1.830501E+00
1.695713E-01
1.571800E+01
1.251318E+01
1.042785E+00
5.535596E-02
1.517200E+01
1.162361E+01
9.172562E-01
4.342120E-02
2.835000E+01
4.061736E+01
1.868192E+00
1.761390E-01
3.911800E+01
7.686442E+01
2.478956E+00
3.088180E-01
4.617600E+01
1.071239E+02
2.980518E+00
4.488545E-01
5.059100E+01
1.284662E+02
3.257651E+00
5.341674E-01
5.115000E+01
1.314866E+02
3.365441E+00
5.729274E-01
4.732100E+01
1.126317E+02
3.051596E+00
4.705140E-01
4.120700E+01
8.535705E+01
2.704451E+00
3.705800E-01
2.900900E+01
4.238065E+01
1.872660E+00
1.780668E-01
1.520000E+01
1.162785E+01
1.007084E+00
5.171907E-02
tally 4:
0.000000E+00
0.000000E+00
@ -160,8 +160,8 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
3.203000E+00
5.158630E-01
3.017000E+00
4.575810E-01
0.000000E+00
0.000000E+00
0.000000E+00
@ -208,10 +208,10 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
5.609000E+00
1.577889E+00
2.821000E+00
4.027670E-01
5.447000E+00
1.491865E+00
2.697000E+00
3.709330E-01
0.000000E+00
0.000000E+00
0.000000E+00
@ -256,10 +256,10 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
7.388000E+00
2.743104E+00
5.132000E+00
1.326058E+00
7.403000E+00
2.751813E+00
5.151000E+00
1.334701E+00
0.000000E+00
0.000000E+00
0.000000E+00
@ -304,10 +304,10 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
8.546000E+00
3.663882E+00
7.038000E+00
2.485210E+00
8.635000E+00
3.741143E+00
7.048000E+00
2.495310E+00
0.000000E+00
0.000000E+00
0.000000E+00
@ -352,10 +352,10 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
9.133000E+00
4.188925E+00
8.421000E+00
3.562213E+00
9.381000E+00
4.415619E+00
8.456000E+00
3.587840E+00
0.000000E+00
0.000000E+00
0.000000E+00
@ -400,10 +400,10 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
9.030000E+00
4.099006E+00
9.130000E+00
4.191968E+00
9.297000E+00
4.334551E+00
9.198000E+00
4.240540E+00
0.000000E+00
0.000000E+00
0.000000E+00
@ -448,10 +448,10 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
8.215000E+00
3.386667E+00
9.060000E+00
4.129934E+00
8.737000E+00
3.843559E+00
9.508000E+00
4.553256E+00
0.000000E+00
0.000000E+00
0.000000E+00
@ -496,10 +496,10 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
6.879000E+00
2.379269E+00
8.481000E+00
3.624165E+00
7.338000E+00
2.709162E+00
8.888000E+00
3.969398E+00
0.000000E+00
0.000000E+00
0.000000E+00
@ -544,10 +544,10 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
5.201000E+00
1.360099E+00
7.317000E+00
2.690989E+00
5.354000E+00
1.442386E+00
7.584000E+00
2.887298E+00
0.000000E+00
0.000000E+00
0.000000E+00
@ -592,10 +592,10 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
2.794000E+00
3.955460E-01
5.480000E+00
1.507540E+00
2.707000E+00
3.709270E-01
5.507000E+00
1.522587E+00
0.000000E+00
0.000000E+00
0.000000E+00
@ -642,8 +642,8 @@ tally 4:
0.000000E+00
0.000000E+00
0.000000E+00
3.083000E+00
4.785830E-01
3.112000E+00
4.868600E-01
0.000000E+00
0.000000E+00
0.000000E+00
@ -662,114 +662,114 @@ k cmfd
0.000000E+00
0.000000E+00
0.000000E+00
1.155207E+00
1.158935E+00
1.155638E+00
1.156869E+00
1.149254E+00
1.142535E+00
1.147154E+00
1.149307E+00
1.155432E+00
1.154360E+00
1.158046E+00
1.161285E+00
1.162239E+00
1.159876E+00
1.160788E+00
1.159887E+00
1.150583E+00
1.160876E+00
1.160893E+00
1.157393E+00
1.157826E+00
1.163206E+00
1.169286E+00
1.169322E+00
1.169866E+00
1.177576E+00
1.183172E+00
1.184784E+00
1.186581E+00
1.183233E+00
1.181032E+00
1.180107E+00
cmfd entropy
0.000000E+00
0.000000E+00
0.000000E+00
0.000000E+00
3.220491E+00
3.220661E+00
3.229936E+00
3.229924E+00
3.231123E+00
3.231398E+00
3.229138E+00
3.230592E+00
3.228648E+00
3.229301E+00
3.227132E+00
3.229052E+00
3.228856E+00
3.230663E+00
3.230136E+00
3.231025E+00
3.215201E+00
3.214833E+00
3.211409E+00
3.218241E+00
3.220068E+00
3.217667E+00
3.214425E+00
3.215427E+00
3.214339E+00
3.212343E+00
3.211075E+00
3.211281E+00
3.209704E+00
3.210597E+00
3.213481E+00
3.213943E+00
cmfd balance
0.000000E+00
0.000000E+00
0.000000E+00
0.000000E+00
7.152541E-03
7.104497E-03
3.644474E-03
4.530563E-03
3.122133E-03
2.665224E-03
3.131292E-03
3.095093E-03
3.182336E-03
2.914286E-03
2.668155E-03
2.322013E-03
2.261088E-03
2.100433E-03
2.068427E-03
1.991522E-03
6.348026E-03
4.651411E-03
3.551519E-03
2.893286E-03
2.930836E-03
2.342081E-03
2.443793E-03
2.380658E-03
2.091259E-03
2.144887E-03
2.055334E-03
1.907704E-03
1.879350E-03
1.598308E-03
1.247988E-03
1.179680E-03
cmfd dominance ratio
0.000E+00
0.000E+00
0.000E+00
0.000E+00
5.524E-01
5.492E-01
5.459E-01
5.486E-01
5.475E-01
5.455E-01
5.433E-01
5.438E-01
5.499E-01
5.527E-01
5.556E-01
5.556E-01
5.540E-01
5.545E-01
5.521E-01
5.530E-01
5.510E-01
5.515E-01
5.500E-01
5.514E-01
5.506E-01
5.515E-01
5.425E-01
5.412E-01
5.404E-01
5.399E-01
5.400E-01
5.401E-01
5.414E-01
5.433E-01
5.437E-01
cmfd openmc source comparison
0.000000E+00
0.000000E+00
0.000000E+00
0.000000E+00
1.520219E-02
1.064239E-02
7.165390E-03
6.348371E-03
6.195458E-03
5.926990E-03
5.851775E-03
4.374979E-03
4.719631E-03
4.419781E-03
4.364431E-03
3.551498E-03
3.772091E-03
2.907247E-03
3.421922E-03
2.616239E-03
8.388554E-03
6.525044E-03
5.810856E-03
3.651620E-03
3.448625E-03
3.805838E-03
4.064235E-03
3.244723E-03
3.963513E-03
4.186768E-03
3.785555E-03
2.732731E-03
2.308430E-03
2.074797E-03
1.581512E-03
1.729988E-03
cmfd source
4.503063E-02
8.252550E-02
1.117300E-01
1.266280E-01
1.386100E-01
1.348011E-01
1.291490E-01
1.083842E-01
7.890593E-02
4.423568E-02
3.816410E-02
7.860013E-02
1.050204E-01
1.270331E-01
1.389768E-01
1.438216E-01
1.304530E-01
1.155470E-01
7.975741E-02
4.262650E-02

View file

@ -4,7 +4,7 @@ import sys
import numpy as np
# import statepoint
sys.path.append('../../src/utils')
sys.path.insert(0, '../../src/utils')
import statepoint
# read in statepoint file

View file

@ -1,5 +1,5 @@
k-combined:
3.024518E-01 5.455257E-03
2.913599E-01 6.738749E-03
tallies:
6.500714E+01
5.304197E+02
6.420923E+01
5.190738E+02

View file

@ -3,7 +3,7 @@
import sys
# import statepoint
sys.path.append('../../src/utils')
sys.path.insert(0, '../../src/utils')
import statepoint
# read in statepoint file

View file

@ -1,2 +1,2 @@
k-combined:
1.752550E+00 2.449583E-02
1.760126E+00 1.038820E-02

View file

@ -3,7 +3,7 @@
import sys
# import statepoint
sys.path.append('../../src/utils')
sys.path.insert(0, '../../src/utils')
import statepoint
# read in statepoint file

View file

@ -1,2 +1,2 @@
k-combined:
1.098756E+00 5.348243E-03
1.092203E+00 1.990175E-02

View file

@ -3,7 +3,7 @@
import sys
# import statepoint
sys.path.append('../../src/utils')
sys.path.insert(0, '../../src/utils')
import statepoint
# read in statepoint file

View file

@ -1,2 +1,2 @@
k-combined:
8.114640E-01 1.668731E-02
8.085745E-01 9.674582E-03

View file

@ -3,7 +3,7 @@
import sys
# import statepoint
sys.path.append('../../src/utils')
sys.path.insert(0, '../../src/utils')
import statepoint
# read in statepoint file

View file

@ -1,2 +1,2 @@
k-combined:
3.125997E-01 2.926683E-03
3.319139E-01 1.688777E-02

View file

@ -3,7 +3,7 @@
import sys
# import statepoint
sys.path.append('../../src/utils')
sys.path.insert(0, '../../src/utils')
import statepoint
# read in statepoint file

View file

@ -1,2 +1,2 @@
k-combined:
2.977802E-01 1.555276E-04
3.012381E-01 1.890480E-03

View file

@ -3,7 +3,7 @@
import sys
# import statepoint
sys.path.append('../../src/utils')
sys.path.insert(0, '../../src/utils')
import statepoint
# read in statepoint file

View file

@ -1,2 +1,2 @@
k-combined:
3.107793E-01 6.372010E-03
3.066374E-01 7.794575E-03

View file

@ -3,7 +3,7 @@
import sys
# import statepoint
sys.path.append('../../src/utils')
sys.path.insert(0, '../../src/utils')
import statepoint
# read in statepoint file

View file

@ -1,2 +1,2 @@
k-combined:
3.016492E-01 7.391211E-03
3.215828E-01 2.966835E-03

View file

@ -4,7 +4,7 @@ import sys
import numpy as np
# import statepoint
sys.path.append('../../src/utils')
sys.path.insert(0, '../../src/utils')
import statepoint
# read in statepoint file

View file

@ -1,13 +1,13 @@
k-combined:
3.037840E-01 4.395585E-03
3.011726E-01 1.841644E-03
entropy:
7.114513E+00
8.055602E+00
8.238326E+00
8.257291E+00
8.322657E+00
8.269075E+00
8.304070E+00
8.328516E+00
8.238311E+00
8.276390E+00
7.608094E+00
8.167702E+00
8.273634E+00
8.238974E+00
8.307173E+00
8.239618E+00
8.230443E+00
8.201657E+00
8.289158E+00
8.364683E+00

View file

@ -4,7 +4,7 @@ import sys
import numpy as np
# import statepoint
sys.path.append('../../src/utils')
sys.path.insert(0, '../../src/utils')
import statepoint
# read in statepoint file

View file

@ -1,11 +1,11 @@
k-combined:
1.054379E+00 1.552941E-01
9.600453E-01 2.025740E-01
tallies:
0.000000E+00
0.000000E+00
1.617612E+01
5.390254E+01
3.372300E+00
2.331937E+00
4.802737E+01
4.730991E+02
1.161117E+01
2.754585E+01
2.434414E+00
1.211549E+00
3.447929E+01
2.424749E+02

Some files were not shown because too many files have changed in this diff Show more