Resolving the merge

This commit is contained in:
Adam Nelson 2016-09-03 04:41:12 -04:00
commit 785bd49ad1
12 changed files with 1620 additions and 497 deletions

View file

@ -135,8 +135,8 @@
"max_x = openmc.XPlane(x0=+0.63, boundary_type='reflective')\n",
"min_y = openmc.YPlane(y0=-0.63, boundary_type='reflective')\n",
"max_y = openmc.YPlane(y0=+0.63, boundary_type='reflective')\n",
"min_z = openmc.ZPlane(z0=-0.63, boundary_type='reflective')\n",
"max_z = openmc.ZPlane(z0=+0.63, boundary_type='reflective')"
"min_z = openmc.ZPlane(z0=-100., boundary_type='vacuum')\n",
"max_z = openmc.ZPlane(z0=+100., boundary_type='vacuum')"
]
},
{
@ -263,7 +263,7 @@
"settings_file.output = {'tallies': True}\n",
"\n",
"# Create an initial uniform spatial source distribution over fissionable zones\n",
"bounds = [-0.63, -0.63, -0.63, 0.63, 0.63, 0.63]\n",
"bounds = [-0.63, -0.63, -100., 0.63, 0.63, 100.]\n",
"uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True)\n",
"settings_file.source = openmc.source.Source(space=uniform_dist)\n",
"\n",
@ -338,7 +338,7 @@
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AIHw8dMt59x4sAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDgtMzFUMTA6Mjk6\nNTAtMDU6MDBsyrzpAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA4LTMxVDEwOjI5OjUwLTA1OjAw\nHZcEVQAAAABJRU5ErkJggg==\n",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AJAwQmKDRX/78AAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDktMDNUMDQ6Mzg6\nNDAtMDQ6MDBo/hqzAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA5LTAzVDA0OjM4OjQwLTA0OjAw\nGaOiDwAAAABJRU5ErkJggg==\n",
"text/plain": [
"<IPython.core.display.Image object>"
]
@ -409,7 +409,32 @@
"tally.filters.append(energy_filter)\n",
"tally.scores = ['absorption', 'total']\n",
"tally.nuclides = [o16, h1]\n",
"tallies_file.append(tally)"
"tallies_file.append(tally)\n",
"\n",
"# Instantiate a tally mesh \n",
"mesh = openmc.Mesh(mesh_id=1)\n",
"mesh.type = 'regular'\n",
"mesh.dimension = [1, 1, 1]\n",
"mesh.lower_left = [-0.63, -0.63, -100.]\n",
"mesh.width = [1.26, 1.26, 200.]\n",
"mesh_filter = openmc.Filter(type='mesh', bins=[mesh.id])\n",
"mesh_filter.mesh = mesh\n",
"\n",
"# Instantiate thermal, fast, and total leakage tallies\n",
"leak = openmc.Tally(name='leakage')\n",
"leak.filters = [mesh_filter]\n",
"leak.scores = ['current']\n",
"tallies_file.append(leak)\n",
"\n",
"thermal_leak = openmc.Tally(name='thermal leakage')\n",
"thermal_leak.filters = [mesh_filter, openmc.Filter(type='energy', bins=[0., 0.625e-6])]\n",
"thermal_leak.scores = ['current']\n",
"tallies_file.append(thermal_leak)\n",
"\n",
"fast_leak = openmc.Tally(name='fast leakage')\n",
"fast_leak.filters = [mesh_filter, openmc.Filter(type='energy', bins=[0.625e-6, 20.])]\n",
"fast_leak.scores = ['current']\n",
"tallies_file.append(fast_leak)"
]
},
{
@ -483,12 +508,12 @@
"outputs": [],
"source": [
"# Instantiate energy filter to illustrate Tally slicing\n",
"energy_filter = openmc.Filter(type='energy', bins=np.logspace(np.log10(1e-8), np.log10(20), 10))\n",
"fine_energy_filter = openmc.Filter(type='energy', bins=np.logspace(np.log10(1e-8), np.log10(20), 10))\n",
"\n",
"# Instantiate flux Tally in moderator and fuel\n",
"tally = openmc.Tally(name='need-to-slice')\n",
"tally.filters = [openmc.Filter(type='cell', bins=[fuel_cell.id, moderator_cell.id])]\n",
"tally.filters.append(energy_filter)\n",
"tally.filters.append(fine_energy_filter)\n",
"tally.scores = ['nu-fission', 'scatter']\n",
"tally.nuclides = [h1, u238]\n",
"tallies_file.append(tally)"
@ -525,6 +550,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
"rm: cannot remove 'statepoint.*': No such file or directory\n",
"\n",
" %%%%%%%%%%%%%%%\n",
" %%%%%%%%%%%%%%%%%%%%%%%%\n",
@ -554,8 +580,8 @@
" Copyright | 2011-2016 Massachusetts Institute of Technology\n",
" License | http://openmc.readthedocs.io/en/latest/license.html\n",
" Version | 0.8.0\n",
" Git SHA1 | fbebf7bf709fe2fe1813af95bff9b29c0d59312c\n",
" Date/Time | 2016-08-31 10:29:51\n",
" Git SHA1 | 623b705a399f16c8e5063732bc6e6a357611542d\n",
" Date/Time | 2016-09-03 04:38:41\n",
" OpenMP Threads | 4\n",
"\n",
" ===========================================================================\n",
@ -566,12 +592,12 @@
" Reading geometry XML file...\n",
" Reading cross sections XML file...\n",
" Reading materials XML file...\n",
" Reading U235 from /home/romano/openmc/data/nndc_hdf5/U235.h5\n",
" Reading U238 from /home/romano/openmc/data/nndc_hdf5/U238.h5\n",
" Reading O16 from /home/romano/openmc/data/nndc_hdf5/O16.h5\n",
" Reading H1 from /home/romano/openmc/data/nndc_hdf5/H1.h5\n",
" Reading B10 from /home/romano/openmc/data/nndc_hdf5/B10.h5\n",
" Reading Zr90 from /home/romano/openmc/data/nndc_hdf5/Zr90.h5\n",
" Reading U235 from /opt/xsdata/nndc_new/U235.h5\n",
" Reading U238 from /opt/xsdata/nndc_new/U238.h5\n",
" Reading O16 from /opt/xsdata/nndc_new/O16.h5\n",
" Reading H1 from /opt/xsdata/nndc_new/H1.h5\n",
" Reading B10 from /opt/xsdata/nndc_new/B10.h5\n",
" Reading Zr90 from /opt/xsdata/nndc_new/Zr90.h5\n",
" Maximum neutron transport energy: 20.0000 MeV for U235\n",
" Reading tallies XML file...\n",
" Building neighboring cells lists for each surface...\n",
@ -583,26 +609,26 @@
"\n",
" Bat./Gen. k Average k \n",
" ========= ======== ==================== \n",
" 1/1 1.03471 \n",
" 2/1 1.03257 \n",
" 3/1 1.00600 \n",
" 4/1 1.04547 \n",
" 5/1 1.02287 \n",
" 6/1 1.05752 \n",
" 7/1 1.04283 1.05017 +/- 0.00734\n",
" 8/1 1.05189 1.05074 +/- 0.00428\n",
" 9/1 1.01645 1.04217 +/- 0.00909\n",
" 10/1 1.04978 1.04369 +/- 0.00721\n",
" 11/1 1.03459 1.04218 +/- 0.00608\n",
" 12/1 1.04019 1.04189 +/- 0.00514\n",
" 13/1 1.05985 1.04414 +/- 0.00499\n",
" 14/1 1.02111 1.04158 +/- 0.00509\n",
" 15/1 1.04774 1.04219 +/- 0.00459\n",
" 16/1 1.00733 1.03902 +/- 0.00523\n",
" 17/1 1.02224 1.03763 +/- 0.00497\n",
" 18/1 1.03263 1.03724 +/- 0.00459\n",
" 19/1 1.01611 1.03573 +/- 0.00451\n",
" 20/1 1.04692 1.03648 +/- 0.00426\n",
" 1/1 0.96168 \n",
" 2/1 0.96651 \n",
" 3/1 1.00678 \n",
" 4/1 0.98773 \n",
" 5/1 1.01883 \n",
" 6/1 1.02959 \n",
" 7/1 0.99859 1.01409 +/- 0.01550\n",
" 8/1 1.03441 1.02086 +/- 0.01123\n",
" 9/1 1.06097 1.03089 +/- 0.01279\n",
" 10/1 1.06094 1.03690 +/- 0.01159\n",
" 11/1 1.04687 1.03856 +/- 0.00961\n",
" 12/1 1.02982 1.03731 +/- 0.00821\n",
" 13/1 1.03520 1.03705 +/- 0.00712\n",
" 14/1 0.99508 1.03239 +/- 0.00782\n",
" 15/1 1.03973 1.03312 +/- 0.00703\n",
" 16/1 1.03807 1.03357 +/- 0.00638\n",
" 17/1 1.03091 1.03335 +/- 0.00583\n",
" 18/1 1.01421 1.03188 +/- 0.00556\n",
" 19/1 0.99339 1.02913 +/- 0.00583\n",
" 20/1 1.04827 1.03040 +/- 0.00558\n",
" Creating state point statepoint.20.h5...\n",
"\n",
" ===========================================================================\n",
@ -612,28 +638,28 @@
"\n",
" =======================> TIMING STATISTICS <=======================\n",
"\n",
" Total time for initialization = 4.3100E-01 seconds\n",
" Reading cross sections = 3.0500E-01 seconds\n",
" Total time in simulation = 8.9870E+00 seconds\n",
" Time in transport only = 8.9500E+00 seconds\n",
" Time in inactive batches = 1.1950E+00 seconds\n",
" Time in active batches = 7.7920E+00 seconds\n",
" Time synchronizing fission bank = 5.0000E-03 seconds\n",
" Sampling source sites = 5.0000E-03 seconds\n",
" Total time for initialization = 3.8900E-01 seconds\n",
" Reading cross sections = 2.7000E-01 seconds\n",
" Total time in simulation = 4.6960E+00 seconds\n",
" Time in transport only = 4.6760E+00 seconds\n",
" Time in inactive batches = 6.6400E-01 seconds\n",
" Time in active batches = 4.0320E+00 seconds\n",
" Time synchronizing fission bank = 1.0000E-03 seconds\n",
" Sampling source sites = 1.0000E-03 seconds\n",
" SEND/RECV source sites = 0.0000E+00 seconds\n",
" Time accumulating tallies = 0.0000E+00 seconds\n",
" Total time for finalization = 1.0000E-03 seconds\n",
" Total time elapsed = 9.4370E+00 seconds\n",
" Calculation Rate (inactive) = 10460.3 neutrons/second\n",
" Calculation Rate (active) = 4812.63 neutrons/second\n",
" Total time elapsed = 5.0960E+00 seconds\n",
" Calculation Rate (inactive) = 18825.3 neutrons/second\n",
" Calculation Rate (active) = 9300.60 neutrons/second\n",
"\n",
" ============================> RESULTS <============================\n",
"\n",
" k-effective (Collision) = 1.03296 +/- 0.00669\n",
" k-effective (Track-length) = 1.03648 +/- 0.00426\n",
" k-effective (Absorption) = 1.03431 +/- 0.00702\n",
" Combined k-effective = 1.03621 +/- 0.00456\n",
" Leakage Fraction = 0.00000 +/- 0.00000\n",
" k-effective (Collision) = 1.02791 +/- 0.00553\n",
" k-effective (Track-length) = 1.03040 +/- 0.00558\n",
" k-effective (Absorption) = 1.02011 +/- 0.00491\n",
" Combined k-effective = 1.02461 +/- 0.00398\n",
" Leakage Fraction = 0.01677 +/- 0.00109\n",
"\n"
]
},
@ -687,8 +713,8 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"We have a tally of the total fission rate and the total absorption rate, so we can calculate k-infinity as:\n",
"$$k_\\infty = \\frac{\\langle \\nu \\Sigma_f \\phi \\rangle}{\\langle \\Sigma_a \\phi \\rangle}$$\n",
"We have a tally of the total fission rate and the total absorption rate, so we can calculate k-eff as:\n",
"$$k_{eff} = \\frac{\\langle \\nu \\Sigma_f \\phi \\rangle}{\\langle \\Sigma_a \\phi \\rangle + \\langle L \\rangle}$$\n",
"In this notation, $\\langle \\cdot \\rangle^a_b$ represents an OpenMC that is integrated over region $a$ and energy range $b$. If $a$ or $b$ is not reported, it means the value represents an integral over all space or all energy, respectively."
]
},
@ -717,17 +743,17 @@
" <tr>\n",
" <th>0</th>\n",
" <td>total</td>\n",
" <td>(nu-fission / absorption)</td>\n",
" <td>1.038387</td>\n",
" <td>0.006141</td>\n",
" <td>(nu-fission / (absorption + current))</td>\n",
" <td>1.02431</td>\n",
" <td>0.00704</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" nuclide score mean std. dev.\n",
"0 total (nu-fission / absorption) 1.04e+00 6.14e-03"
" nuclide score mean std. dev.\n",
"0 total (nu-fission / (absorption + current)) 1.02e+00 7.04e-03"
]
},
"execution_count": 24,
@ -736,10 +762,17 @@
}
],
"source": [
"# Compute k-infinity using tally arithmetic\n",
"# Get the fission and absorption rate tallies\n",
"fiss_rate = sp.get_tally(name='fiss. rate')\n",
"abs_rate = sp.get_tally(name='abs. rate')\n",
"keff = fiss_rate / abs_rate\n",
"\n",
"# Get the leakage tally\n",
"leak = sp.get_tally(name='leakage')\n",
"leak = leak.summation(filter_type='surface', remove_filter=True)\n",
"leak = leak.summation(filter_type='mesh', remove_filter=True)\n",
"\n",
"# Compute k-infinity using tally arithmetic\n",
"keff = fiss_rate / (abs_rate + leak)\n",
"keff.get_pandas_dataframe()"
]
},
@ -747,9 +780,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Notice that even though the neutron production rate and absorption rate are separate tallies, we still get a first-order estimate of the uncertainty on the quotient of them automatically!\n",
"Notice that even though the neutron production rate, absorption rate, and current are separate tallies, we still get a first-order estimate of the uncertainty on the quotient of them automatically!\n",
"\n",
"Often in textbooks you'll see k-infinity represented using the four-factor formula $$k_\\infty = p \\epsilon f \\eta.$$ Let's analyze each of these factors, starting with the resonance escape probability which is defined as $$p=\\frac{\\langle\\Sigma_a\\phi\\rangle_T}{\\langle\\Sigma_a\\phi\\rangle}$$ where the subscript $T$ means thermal energies."
"Often in textbooks you'll see k-eff represented using the six-factor formula $$k_{eff} = p \\epsilon f \\eta P_{FNL} P_{TNL}.$$ Let's analyze each of these factors, starting with the resonance escape probability which is defined as $$p=\\frac{\\langle\\Sigma_a\\phi\\rangle_T + \\langle L \\rangle_T}{\\langle\\Sigma_a\\phi\\rangle + \\langle L \\rangle_T}$$ where the subscript $T$ means thermal energies."
]
},
{
@ -781,17 +814,20 @@
" <td>0.0</td>\n",
" <td>6.250000e-07</td>\n",
" <td>total</td>\n",
" <td>absorption</td>\n",
" <td>0.693337</td>\n",
" <td>0.004109</td>\n",
" <td>(absorption + current)</td>\n",
" <td>0.695303</td>\n",
" <td>0.005091</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" energy low [MeV] energy high [MeV] nuclide score mean std. dev.\n",
"0 0.00e+00 6.25e-07 total absorption 6.93e-01 4.11e-03"
" energy low [MeV] energy high [MeV] nuclide score \\\n",
"0 0.00e+00 6.25e-07 total (absorption + current) \n",
"\n",
" mean std. dev. \n",
"0 6.95e-01 5.09e-03 "
]
},
"execution_count": 25,
@ -802,7 +838,10 @@
"source": [
"# Compute resonance escape probability using tally arithmetic\n",
"therm_abs_rate = sp.get_tally(name='therm. abs. rate')\n",
"res_esc = therm_abs_rate / abs_rate\n",
"thermal_leak = sp.get_tally(name='thermal leakage')\n",
"thermal_leak = thermal_leak.summation(filter_type='surface', remove_filter=True)\n",
"thermal_leak = thermal_leak.summation(filter_type='mesh', remove_filter=True)\n",
"res_esc = (therm_abs_rate + thermal_leak) / (abs_rate + thermal_leak)\n",
"res_esc.get_pandas_dataframe()"
]
},
@ -844,8 +883,8 @@
" <td>6.250000e-07</td>\n",
" <td>total</td>\n",
" <td>nu-fission</td>\n",
" <td>1.203042</td>\n",
" <td>0.0076</td>\n",
" <td>1.202639</td>\n",
" <td>0.010348</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
@ -853,7 +892,7 @@
],
"text/plain": [
" energy low [MeV] energy high [MeV] nuclide score mean std. dev.\n",
"0 0.00e+00 6.25e-07 total nu-fission 1.20e+00 7.60e-03"
"0 0.00e+00 6.25e-07 total nu-fission 1.20e+00 1.03e-02"
]
},
"execution_count": 26,
@ -909,8 +948,8 @@
" <td>10000</td>\n",
" <td>total</td>\n",
" <td>absorption</td>\n",
" <td>0.748413</td>\n",
" <td>0.004723</td>\n",
" <td>0.749349</td>\n",
" <td>0.006731</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
@ -918,10 +957,10 @@
],
"text/plain": [
" energy low [MeV] energy high [MeV] cell nuclide score mean \\\n",
"0 0.00e+00 6.25e-07 10000 total absorption 7.48e-01 \n",
"0 0.00e+00 6.25e-07 10000 total absorption 7.49e-01 \n",
"\n",
" std. dev. \n",
"0 4.72e-03 "
"0 6.73e-03 "
]
},
"execution_count": 27,
@ -940,7 +979,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"The final factor is the number of fission neutrons produced per absorption in fuel, calculated as $$\\eta = \\frac{\\langle \\nu\\Sigma_f\\phi \\rangle_T}{\\langle \\Sigma_a \\phi \\rangle^F_T}$$"
"The next factor is the number of fission neutrons produced per absorption in fuel, calculated as $$\\eta = \\frac{\\langle \\nu\\Sigma_f\\phi \\rangle_T}{\\langle \\Sigma_a \\phi \\rangle^F_T}$$"
]
},
{
@ -975,8 +1014,8 @@
" <td>10000</td>\n",
" <td>total</td>\n",
" <td>(nu-fission / absorption)</td>\n",
" <td>1.663385</td>\n",
" <td>0.011253</td>\n",
" <td>1.663736</td>\n",
" <td>0.015707</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
@ -987,7 +1026,7 @@
"0 0.00e+00 6.25e-07 10000 total \n",
"\n",
" score mean std. dev. \n",
"0 (nu-fission / absorption) 1.66e+00 1.13e-02 "
"0 (nu-fission / absorption) 1.66e+00 1.57e-02 "
]
},
"execution_count": 28,
@ -1005,7 +1044,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we can calculate $k_\\infty$ using the product of the factors form the four-factor formula."
"There are two leakage factors to account for fast and thermal leakage. The fast non-leakage probability is computed as $$P_{FNL} = \\frac{\\langle \\Sigma_a\\phi \\rangle + \\langle L \\rangle_T}{\\langle \\Sigma_a \\phi \\rangle + \\langle L \\rangle}$$"
]
},
{
@ -1014,6 +1053,130 @@
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>energy low [MeV]</th>\n",
" <th>energy high [MeV]</th>\n",
" <th>nuclide</th>\n",
" <th>score</th>\n",
" <th>mean</th>\n",
" <th>std. dev.</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.0</td>\n",
" <td>6.250000e-07</td>\n",
" <td>total</td>\n",
" <td>(absorption + current)</td>\n",
" <td>0.985102</td>\n",
" <td>0.005855</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" energy low [MeV] energy high [MeV] nuclide score \\\n",
"0 0.00e+00 6.25e-07 total (absorption + current) \n",
"\n",
" mean std. dev. \n",
"0 9.85e-01 5.86e-03 "
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p_fnl = (abs_rate + thermal_leak) / (abs_rate + leak)\n",
"p_fnl.get_pandas_dataframe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The final factor is the thermal non-leakage probability and is computed as $$P_{TNL} = \\frac{\\langle \\Sigma_a\\phi \\rangle_T}{\\langle \\Sigma_a \\phi \\rangle_T + \\langle L \\rangle_T}$$"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>energy low [MeV]</th>\n",
" <th>energy high [MeV]</th>\n",
" <th>nuclide</th>\n",
" <th>score</th>\n",
" <th>mean</th>\n",
" <th>std. dev.</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.0</td>\n",
" <td>6.250000e-07</td>\n",
" <td>total</td>\n",
" <td>(absorption / (absorption + current))</td>\n",
" <td>0.997407</td>\n",
" <td>0.008492</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" energy low [MeV] energy high [MeV] nuclide \\\n",
"0 0.00e+00 6.25e-07 total \n",
"\n",
" score mean std. dev. \n",
"0 (absorption / (absorption + current)) 9.97e-01 8.49e-03 "
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p_tnl = therm_abs_rate / (therm_abs_rate + thermal_leak)\n",
"p_tnl.get_pandas_dataframe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we can calculate $k_{eff}$ using the product of the factors form the four-factor formula."
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
@ -1039,9 +1202,9 @@
" <td>6.250000e-07</td>\n",
" <td>10000</td>\n",
" <td>total</td>\n",
" <td>(((absorption * nu-fission) * absorption) * (n...</td>\n",
" <td>1.038387</td>\n",
" <td>0.01316</td>\n",
" <td>((((((absorption + current) * nu-fission) * ab...</td>\n",
" <td>1.02431</td>\n",
" <td>0.02062</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
@ -1052,16 +1215,16 @@
"0 0.00e+00 6.25e-07 10000 total \n",
"\n",
" score mean std. dev. \n",
"0 (((absorption * nu-fission) * absorption) * (n... 1.04e+00 1.32e-02 "
"0 ((((((absorption + current) * nu-fission) * ab... 1.02e+00 2.06e-02 "
]
},
"execution_count": 29,
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"keff = res_esc * fast_fiss * therm_util * eta\n",
"keff = res_esc * fast_fiss * therm_util * eta * p_fnl * p_tnl\n",
"keff.get_pandas_dataframe()"
]
},
@ -1076,7 +1239,7 @@
},
{
"cell_type": "code",
"execution_count": 30,
"execution_count": 32,
"metadata": {
"collapsed": false,
"scrolled": true
@ -1092,7 +1255,7 @@
},
{
"cell_type": "code",
"execution_count": 31,
"execution_count": 33,
"metadata": {
"collapsed": false
},
@ -1122,8 +1285,8 @@
" <td>6.250000e-07</td>\n",
" <td>(U238 / total)</td>\n",
" <td>(nu-fission / flux)</td>\n",
" <td>6.636968e-07</td>\n",
" <td>4.132875e-09</td>\n",
" <td>6.662479e-07</td>\n",
" <td>6.039323e-09</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
@ -1132,8 +1295,8 @@
" <td>6.250000e-07</td>\n",
" <td>(U238 / total)</td>\n",
" <td>(scatter / flux)</td>\n",
" <td>2.099856e-01</td>\n",
" <td>1.232455e-03</td>\n",
" <td>2.099897e-01</td>\n",
" <td>1.843251e-03</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
@ -1142,8 +1305,8 @@
" <td>6.250000e-07</td>\n",
" <td>(U235 / total)</td>\n",
" <td>(nu-fission / flux)</td>\n",
" <td>3.552458e-01</td>\n",
" <td>2.252681e-03</td>\n",
" <td>3.568130e-01</td>\n",
" <td>3.255144e-03</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
@ -1152,8 +1315,8 @@
" <td>6.250000e-07</td>\n",
" <td>(U235 / total)</td>\n",
" <td>(scatter / flux)</td>\n",
" <td>5.554345e-03</td>\n",
" <td>3.265385e-05</td>\n",
" <td>5.555326e-03</td>\n",
" <td>4.893022e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
@ -1162,8 +1325,8 @@
" <td>2.000000e+01</td>\n",
" <td>(U238 / total)</td>\n",
" <td>(nu-fission / flux)</td>\n",
" <td>7.126668e-03</td>\n",
" <td>5.296883e-05</td>\n",
" <td>7.215044e-03</td>\n",
" <td>4.968448e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
@ -1172,8 +1335,8 @@
" <td>2.000000e+01</td>\n",
" <td>(U238 / total)</td>\n",
" <td>(scatter / flux)</td>\n",
" <td>2.277460e-01</td>\n",
" <td>1.003558e-03</td>\n",
" <td>2.273966e-01</td>\n",
" <td>8.969811e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
@ -1182,8 +1345,8 @@
" <td>2.000000e+01</td>\n",
" <td>(U235 / total)</td>\n",
" <td>(nu-fission / flux)</td>\n",
" <td>8.010911e-03</td>\n",
" <td>6.802256e-05</td>\n",
" <td>7.969615e-03</td>\n",
" <td>5.374119e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
@ -1192,8 +1355,8 @@
" <td>2.000000e+01</td>\n",
" <td>(U235 / total)</td>\n",
" <td>(scatter / flux)</td>\n",
" <td>3.367794e-03</td>\n",
" <td>1.443644e-05</td>\n",
" <td>3.362798e-03</td>\n",
" <td>1.286767e-05</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
@ -1211,17 +1374,17 @@
"7 10000 6.25e-07 2.00e+01 (U235 / total) \n",
"\n",
" score mean std. dev. \n",
"0 (nu-fission / flux) 6.64e-07 4.13e-09 \n",
"1 (scatter / flux) 2.10e-01 1.23e-03 \n",
"2 (nu-fission / flux) 3.55e-01 2.25e-03 \n",
"3 (scatter / flux) 5.55e-03 3.27e-05 \n",
"4 (nu-fission / flux) 7.13e-03 5.30e-05 \n",
"5 (scatter / flux) 2.28e-01 1.00e-03 \n",
"6 (nu-fission / flux) 8.01e-03 6.80e-05 \n",
"7 (scatter / flux) 3.37e-03 1.44e-05 "
"0 (nu-fission / flux) 6.66e-07 6.04e-09 \n",
"1 (scatter / flux) 2.10e-01 1.84e-03 \n",
"2 (nu-fission / flux) 3.57e-01 3.26e-03 \n",
"3 (scatter / flux) 5.56e-03 4.89e-05 \n",
"4 (nu-fission / flux) 7.22e-03 4.97e-05 \n",
"5 (scatter / flux) 2.27e-01 8.97e-04 \n",
"6 (nu-fission / flux) 7.97e-03 5.37e-05 \n",
"7 (scatter / flux) 3.36e-03 1.29e-05 "
]
},
"execution_count": 31,
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
@ -1240,7 +1403,7 @@
},
{
"cell_type": "code",
"execution_count": 32,
"execution_count": 34,
"metadata": {
"collapsed": false
},
@ -1249,11 +1412,11 @@
"name": "stdout",
"output_type": "stream",
"text": [
"[[[ 6.63696783e-07]\n",
" [ 3.55245846e-01]]\n",
"[[[ 6.66247898e-07]\n",
" [ 3.56812954e-01]]\n",
"\n",
" [[ 7.12666800e-03]\n",
" [ 8.01091088e-03]]]\n"
" [[ 7.21504433e-03]\n",
" [ 7.96961502e-03]]]\n"
]
}
],
@ -1272,7 +1435,7 @@
},
{
"cell_type": "code",
"execution_count": 33,
"execution_count": 35,
"metadata": {
"collapsed": false
},
@ -1281,9 +1444,9 @@
"name": "stdout",
"output_type": "stream",
"text": [
"[[[ 0.00555435]]\n",
"[[[ 0.00555533]]\n",
"\n",
" [[ 0.00336779]]]\n"
" [[ 0.0033628 ]]]\n"
]
}
],
@ -1296,7 +1459,7 @@
},
{
"cell_type": "code",
"execution_count": 34,
"execution_count": 36,
"metadata": {
"collapsed": false
},
@ -1305,8 +1468,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
"[[[ 0.22774598]\n",
" [ 0.00336779]]]\n"
"[[[ 0.22739657]\n",
" [ 0.0033628 ]]]\n"
]
}
],
@ -1327,7 +1490,7 @@
},
{
"cell_type": "code",
"execution_count": 35,
"execution_count": 37,
"metadata": {
"collapsed": false
},
@ -1358,7 +1521,7 @@
" <td>U238</td>\n",
" <td>nu-fission</td>\n",
" <td>0.000002</td>\n",
" <td>7.473789e-09</td>\n",
" <td>1.057199e-08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
@ -1367,8 +1530,8 @@
" <td>6.250000e-07</td>\n",
" <td>U235</td>\n",
" <td>nu-fission</td>\n",
" <td>0.861547</td>\n",
" <td>4.131310e-03</td>\n",
" <td>0.856784</td>\n",
" <td>5.730044e-03</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
@ -1377,8 +1540,8 @@
" <td>2.000000e+01</td>\n",
" <td>U238</td>\n",
" <td>nu-fission</td>\n",
" <td>0.082356</td>\n",
" <td>5.560461e-04</td>\n",
" <td>0.082495</td>\n",
" <td>5.176027e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
@ -1387,8 +1550,8 @@
" <td>2.000000e+01</td>\n",
" <td>U235</td>\n",
" <td>nu-fission</td>\n",
" <td>0.092574</td>\n",
" <td>7.315442e-04</td>\n",
" <td>0.091123</td>\n",
" <td>5.574052e-04</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
@ -1396,19 +1559,19 @@
],
"text/plain": [
" cell energy low [MeV] energy high [MeV] nuclide score mean \\\n",
"0 10000 0.00e+00 6.25e-07 U238 nu-fission 1.61e-06 \n",
"1 10000 0.00e+00 6.25e-07 U235 nu-fission 8.62e-01 \n",
"2 10000 6.25e-07 2.00e+01 U238 nu-fission 8.24e-02 \n",
"3 10000 6.25e-07 2.00e+01 U235 nu-fission 9.26e-02 \n",
"0 10000 0.00e+00 6.25e-07 U238 nu-fission 1.60e-06 \n",
"1 10000 0.00e+00 6.25e-07 U235 nu-fission 8.57e-01 \n",
"2 10000 6.25e-07 2.00e+01 U238 nu-fission 8.25e-02 \n",
"3 10000 6.25e-07 2.00e+01 U235 nu-fission 9.11e-02 \n",
"\n",
" std. dev. \n",
"0 7.47e-09 \n",
"1 4.13e-03 \n",
"2 5.56e-04 \n",
"3 7.32e-04 "
"0 1.06e-08 \n",
"1 5.73e-03 \n",
"2 5.18e-04 \n",
"3 5.57e-04 "
]
},
"execution_count": 35,
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
@ -1421,7 +1584,7 @@
},
{
"cell_type": "code",
"execution_count": 36,
"execution_count": 38,
"metadata": {
"collapsed": false
},
@ -1451,8 +1614,8 @@
" <td>1.080060e-07</td>\n",
" <td>H1</td>\n",
" <td>scatter</td>\n",
" <td>4.599225</td>\n",
" <td>0.015973</td>\n",
" <td>4.547947</td>\n",
" <td>0.028000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
@ -1461,8 +1624,8 @@
" <td>1.166529e-06</td>\n",
" <td>H1</td>\n",
" <td>scatter</td>\n",
" <td>2.037260</td>\n",
" <td>0.011236</td>\n",
" <td>2.003068</td>\n",
" <td>0.008587</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
@ -1471,8 +1634,8 @@
" <td>1.259921e-05</td>\n",
" <td>H1</td>\n",
" <td>scatter</td>\n",
" <td>1.662552</td>\n",
" <td>0.010280</td>\n",
" <td>1.647225</td>\n",
" <td>0.011136</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
@ -1481,8 +1644,8 @@
" <td>1.360790e-04</td>\n",
" <td>H1</td>\n",
" <td>scatter</td>\n",
" <td>1.872201</td>\n",
" <td>0.012136</td>\n",
" <td>1.831367</td>\n",
" <td>0.010196</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
@ -1491,8 +1654,8 @@
" <td>1.469734e-03</td>\n",
" <td>H1</td>\n",
" <td>scatter</td>\n",
" <td>2.080459</td>\n",
" <td>0.013155</td>\n",
" <td>2.039613</td>\n",
" <td>0.008059</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
@ -1501,8 +1664,8 @@
" <td>1.587401e-02</td>\n",
" <td>H1</td>\n",
" <td>scatter</td>\n",
" <td>2.154996</td>\n",
" <td>0.011975</td>\n",
" <td>2.137523</td>\n",
" <td>0.012885</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
@ -1511,8 +1674,8 @@
" <td>1.714488e-01</td>\n",
" <td>H1</td>\n",
" <td>scatter</td>\n",
" <td>2.218740</td>\n",
" <td>0.008528</td>\n",
" <td>2.170725</td>\n",
" <td>0.012669</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
@ -1521,8 +1684,8 @@
" <td>1.851749e+00</td>\n",
" <td>H1</td>\n",
" <td>scatter</td>\n",
" <td>2.010517</td>\n",
" <td>0.009187</td>\n",
" <td>2.002724</td>\n",
" <td>0.010768</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
@ -1531,8 +1694,8 @@
" <td>2.000000e+01</td>\n",
" <td>H1</td>\n",
" <td>scatter</td>\n",
" <td>0.372022</td>\n",
" <td>0.003196</td>\n",
" <td>0.371624</td>\n",
" <td>0.002959</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
@ -1540,29 +1703,29 @@
],
"text/plain": [
" cell energy low [MeV] energy high [MeV] nuclide score mean \\\n",
"0 10002 1.00e-08 1.08e-07 H1 scatter 4.60e+00 \n",
"1 10002 1.08e-07 1.17e-06 H1 scatter 2.04e+00 \n",
"2 10002 1.17e-06 1.26e-05 H1 scatter 1.66e+00 \n",
"3 10002 1.26e-05 1.36e-04 H1 scatter 1.87e+00 \n",
"4 10002 1.36e-04 1.47e-03 H1 scatter 2.08e+00 \n",
"5 10002 1.47e-03 1.59e-02 H1 scatter 2.15e+00 \n",
"6 10002 1.59e-02 1.71e-01 H1 scatter 2.22e+00 \n",
"7 10002 1.71e-01 1.85e+00 H1 scatter 2.01e+00 \n",
"0 10002 1.00e-08 1.08e-07 H1 scatter 4.55e+00 \n",
"1 10002 1.08e-07 1.17e-06 H1 scatter 2.00e+00 \n",
"2 10002 1.17e-06 1.26e-05 H1 scatter 1.65e+00 \n",
"3 10002 1.26e-05 1.36e-04 H1 scatter 1.83e+00 \n",
"4 10002 1.36e-04 1.47e-03 H1 scatter 2.04e+00 \n",
"5 10002 1.47e-03 1.59e-02 H1 scatter 2.14e+00 \n",
"6 10002 1.59e-02 1.71e-01 H1 scatter 2.17e+00 \n",
"7 10002 1.71e-01 1.85e+00 H1 scatter 2.00e+00 \n",
"8 10002 1.85e+00 2.00e+01 H1 scatter 3.72e-01 \n",
"\n",
" std. dev. \n",
"0 1.60e-02 \n",
"1 1.12e-02 \n",
"2 1.03e-02 \n",
"3 1.21e-02 \n",
"4 1.32e-02 \n",
"5 1.20e-02 \n",
"6 8.53e-03 \n",
"7 9.19e-03 \n",
"8 3.20e-03 "
"0 2.80e-02 \n",
"1 8.59e-03 \n",
"2 1.11e-02 \n",
"3 1.02e-02 \n",
"4 8.06e-03 \n",
"5 1.29e-02 \n",
"6 1.27e-02 \n",
"7 1.08e-02 \n",
"8 2.96e-03 "
]
},
"execution_count": 36,
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}