OpenMC/docs/source/pythonapi/examples/nuclear-data.ipynb
2016-10-31 14:46:47 -05:00

898 lines
121 KiB
Text

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this notebook, we will go through the salient features of the `openmc.data` package in the Python API. This package enables inspection, analysis, and conversion of nuclear data from ACE files. Most importantly, the package provides a mean to generate HDF5 nuclear data libraries that are used by the transport solver."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import os\n",
"from pprint import pprint\n",
"\n",
"import h5py\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import matplotlib.cm\n",
"from matplotlib.patches import Rectangle\n",
"\n",
"import openmc.data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Importing from HDF5"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The `openmc.data` module can read OpenMC's HDF5-formatted data into Python objects. The easiest way to do this is with the `openmc.data.IncidentNeutron.from_hdf5(...)` factory method. Replace the `filename` variable below with a valid path to an HDF5 data file on your computer."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<IncidentNeutron: Gd157>"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Get filename for Gd-157\n",
"filename ='/home/romano/openmc/scripts/nndc_hdf5/Gd157.h5'\n",
"\n",
"# Load HDF5 data into object\n",
"gd157 = openmc.data.IncidentNeutron.from_hdf5(filename)\n",
"gd157"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Cross sections"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"From Python, it's easy to explore (and modify) the nuclear data. Let's start off by reading the total cross section. Reactions are indexed using their \"MT\" number -- a unique identifier for each reaction defined by the ENDF-6 format. The MT number for the total cross section is 1."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<Reaction: MT=1 (n,total)>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"total = gd157[1]\n",
"total"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Cross sections for each reaction can be stored at multiple temperatures. To see what temperatures are available, we can look at the reaction's `xs` attribute."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"{'294K': <openmc.data.function.Sum at 0x7fc3263ca1d0>}"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"total.xs"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To find the cross section at a particular energy, 1 eV for example, simply get the cross section at the appropriate temperature and then call it as a function. Note that our nuclear data uses eV as the unit of energy."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"142.6474702147809"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"total.xs['294K'](1.0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The `xs` attribute can also be called on an array of energies."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([ 142.64747021, 38.65417611, 175.40019668])"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"total.xs['294K']([1.0, 2.0, 3.0])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A quick way to plot cross sections is to use the `energy` attribute of `IncidentNeutron`. This gives an array of all the energy values used in cross section interpolation for each temperature present."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"{'294K': array([ 1.00000000e-05, 1.03250000e-05, 1.06500000e-05, ...,\n",
" 1.95000000e+07, 1.99000000e+07, 2.00000000e+07])}"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gd157.energy"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.text.Text at 0x7fc323c68748>"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAEWCAYAAACaBstRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XmYFNX18PHvYV+iIm7siLINKigqSkAZFYNKZFdhCCru\nGjH5JVHIKyoYEzUxxigGNVFIDCOKYFARRKNAwICIC8qwubGoARdQ2bfz/nG7mZ5mluruqq5ezud5\n+pnu6qo6t2Z65sytu4mqYowxxnhRLewCGGOMyR6WNIwxxnhmScMYY4xnljSMMcZ4ZknDGGOMZ5Y0\njDHGeGZJwxhjjGeWNIwxxnhWI+wCxBOR7sBQXNkKVLV7yEUyxhgTIZk6IlxE+gJHqupfwy6LMcYY\nJ/DbUyLyuIhsEJGlcdvPE5EVIrJKREaWc2gRUBx0+YwxxniXjjaNCUCv2A0iUg0YF9l+HDBERNrH\nvN8c2KyqW9NQPmOMMR4FnjRUdT6wKW5zF2C1qq5R1d3AZKBvzPtX4pKNMcaYDBJWQ3hTYF3M6/W4\nRAKAqo6p7GARycyGGGOMyXCqKqkcn7Vdbtu2Vfr2VdasUVSDebRv3z6wc1uczI9hcTI3hsVJ7uGH\nsJLGZ0CLmNfNIts8W7oUTj4ZOneGP/wBdu/2tXwAHHHEEf6f1OJkTQyLk7kxLE540pU0JPKIWgy0\nFpGWIlILGAw8n8gJ7757DGecMYeFC+HVV13yWLDAxxKTex+WXIqTS9eSa3Fy6VpyJc6cOXMYM2aM\nL+dKR5fbYuANoK2IrBWR4aq6FxgBzAaWAZNVdXki5x0zZgyFhYW0bg2zZsHo0XDxxXD11fD11/6U\nvaCgwJ8TWZysjGFxMjeGxUlMYWFh9iQNVS1S1SaqWltVW6jqhMj2maraTlXbqOo9qcQQgUsugZIS\nqFsXjjsOJk6EVG/hdejQIbUTWJysjmFxMjeGxQlP1jaEl+eQQ+DBB2HGDHj4YSgsdInEGGOMP7I2\naYwZM4Y5c+aU+97JJ8PChe52VY8e8Otfw7Zt6S2fMcZkiqxq0whKtE2jItWrw09/6npZffqpu2U1\nY0baimeMMRkjq9o0wta4MTz1FDz2GPz85zBgAKxbV/VxxhhjDpTzSSPq3HPh/fehY0c46SS4/37Y\nsyfsUhljTHbJm6QBUKcOjBkDb7wBM2fCKafAf/8bdqmMMSZ75FXSiGrbFmbPhpEjYeBAuPZa+Oab\nsEtljDGZL2uTRmW9p7wQgSFDXJfcmjVdQ/k//pH62A5jjMk01nuKqntPedWgAYwbB88/D3/+M5x9\nNixPaGy6McZkNus9FYBTT4U333S9q848001LsmtX9bCLZYwxGcWSRozq1WHECHjvPVi9Gm65pTcv\nvRR2qYwxJnNY0ihHkybw9NNwxRWLuekmuOgi+CyhiduNMSY3WdKoRMeOX/D++1BQAJ06wQMP2NgO\nY0x+s6RRhbp14c473VodL7zg2j4WLQq7VMYYEw5LGh61a+cWe/rVr6BfP7j+eti0KexSGWNMelnS\nSIAIDB1aOt16hw4waZKN7TDG5A9LGkk49FAYPx7+9S+47z7o2RNWrgy7VMYYE7ysTRqpjgj3w2mn\nweLFcOGF0K0b3H47bN8eapGMMeYANiIc/0aEp6pGDTfl+nvvuZHkJ5wAL78cdqmMMaaUjQjPQE2b\nwpQpbrnZ6693a5Z//nnYpTLGGH9lXNIQ5y4ReVBEhoVdnkRdcAF88AG0aePGdjz4IOzdG3apjDHG\nHxmXNIC+QDNgF7A+5LIkpV49uOsumDcPpk2DLl1c24cxxmS7wJOGiDwuIhtEZGnc9vNEZIWIrBKR\nkTFvtQMWqOqvgBuCLl+QCgrg9dddm8eFF7o1yzdvDrtUxhiTvHTUNCYAvWI3iEg1YFxk+3HAEBFp\nH3l7PRAdNpf1N3ZEYNgwN7Zjzx6XSCZOhH37wi6ZMcYkLvCkoarzKU0CUV2A1aq6RlV3A5Nxt6UA\npgHnicifgblBly9dGjaERx9163aMHw/du8Pbb4ddKmOMSUyNkOI2BdbFvF6PSySo6nbgqjAKlQ6n\nnurWJX/iCTj/fLfc7Ikn1gq7WMYY40lYSSNlAwcO3P+8oKCADh06+B5jwYIFvp8zql49+M1vajFl\nSkcmTvwRb765iMLCj6gWYN0vyOtJd5xcupZci5NL15LtcUpKSlju81KkYSWNz4AWMa+bRbZ5NnXq\nVF8LVJGioqJAz3/NNfC7383kxRfPZ+nS03j4YVcbCUrQ15POOLl0LbkWJ5euJZfiiEjK50hXl1uJ\nPKIWA61FpKWI1AIGA8+nqSwZ5+ijNzF/vutd1aePSyRffRV2qYwx5kDp6HJbDLwBtBWRtSIyXFX3\nAiOA2cAyYLKqJlSHyoS5p/xUrRpcdpmbiqRePTeD7vjxNjDQGJO6rJp7SlWLVLWJqtZW1RaqOiGy\nfaaqtlPVNqp6T6LnzZS5p/zWoIFbIfDVV+Gpp9ytqnnzwi6VMSab2dxTeaBjR5g7F265BS691PWy\n+uijsEtljMl3ljQymAgMHuxuWZ1yipuK/eab4dtvwy6ZMSZfZW3SyLU2jcrUrQu//rWbCHHzZrf0\n7PjxboS5McZUJavaNIKSq20alWnUCP76V7dex7PPull0Z82y5WaNMZWzNo0816mTayi/5x43GeLZ\nZ7tR5sYYEzRLGllKxM2c+8EHrqF88GA3xmPp0qqPNcaYZFnSyHI1asDw4bBqFfTsCb16QVERrF4d\ndsmMMbnIkkaOqF0bbrrJJYvjjoOuXUsHCxpjjF+yNmnkU++pRPzgB3DrrfDhh9C2LRQWujEeS5aE\nXTJjTFis9xT52XsqEQ0auOTx8cdw5pnQrx/ce28hc+ZYbytj8o31njKe1a8PP/uZq3l06bKOa6+F\n00+HqVNtXitjTOIsaeSJ2rXhrLM+oqQERo2CP/zBLT372GOwY0fYpTPGZAtLGnmmenXo39+N6/jb\n39zys61awe9+B5viF+U1xpg4ljTylIhr63jxRXjlFddl99hj4Ze/hHXrqj7eGJOfLGkYjj8eJk6E\n995zrzt1ct11bayHMSaeJQ2zX/Pm8Mc/uinY27Z1Yz3+9CdrMDfGlLKkYQ5w6KGuu+6iRfDcc9C7\nt03HboxxsjZp2OC+4B17LLz2GrRpA926wcaNYZfIGJMMG9yHDe5Llxo14KGH3Kjynj2th5Ux2cgG\n95m0GzMGevRwkyFaG4cx+cuShvFEBO6/H7Zvh9/8JuzSGGPCknFJQ0R6iMg8ERkvImeGXR5TqmZN\nKC6Gv/wF3n037NIYY8KQcUkDUOB7oDawPuSymDhNmrgVA6+80m5TGZOPAk8aIvK4iGwQkaVx288T\nkRUiskpERka3q+o8Ve0NjALuDLp8JnHDh0PduvDkk2GXxBiTbumoaUwAesVuEJFqwLjI9uOAISLS\nPu64zUCtNJTPJEjETXh4222ujcMYkz8CTxqqOh+I76jZBVitqmtUdTcwGegLICL9ReQR4O+4xGIy\nUNeu0KULjB8fdkmMMelUI6S4TYHYafHW4xIJqvoc8FwYhTKJufVW6NsXbrwRalmd0Ji8EFbSSNnA\ngQP3Py8oKKBDhw6+x1iwYIHv58y1OA0anMWIEZ/So8cngcaJl83fs1yPk0vXku1xSkpKWL58ua/n\nDCtpfAa0iHndLLLNs6lTp/paoIoUFRVZnEocdRTcdFNjHnmkKyLBxSlPtn7P8iFOLl1LLsWR2F/S\nJKWry61EHlGLgdYi0lJEagGDgefTVBbjo7PPdg3jc+eGXRJjTDqko8ttMfAG0FZE1orIcFXdC4wA\nZgPLgMmqmlAdyiYszAwicN118MgjYZfEGFMRPycsDPz2lKqWW99S1ZnAzGTP69c3wKTuJz9x3W83\nboQjjwy7NMaYeIWFhRQWFjJ27NiUz5WJI8JNlmnQAAYMgAkTwi6JMSZoljSML6680i0Zqxp2SYwx\nQcrapGFtGpmla1fYtQveeSfskhhj4qV1ESYR6SoiD4vIUhH5MtKY/ZKI/FREDvGlFEmwRZgyi4hr\n2/jnP8MuiTEmXtoWYRKRmcBVwMvAeUBjoAMwGqgDTBeRPr6UxGS9oUPhqadg797U+4IbYzJTVb2n\nhqnqV3HbtgBvRx5/FJHDAymZyTpt20KLFrBs2VFhF8UYE5BKk0ZswhCRRrj5oRRYrKr/i9/HmKFD\nYcqUVmEXwxgTEE8N4SJyFfAmMAAYBCwUkSuCLJjJToMGwdtvN2XnzrBLYowJgtfeUzcDJ6nq5ap6\nGXAyMLKKYwJlvacyU5Mm0Lz5Zl59NeySGGOi0tp7KuJr3BKsUd9HtoXGek9lri5d1vLss2GXwhgT\n5WfvqUrbNETkF5GnHwKLRGQ6rk2jL7C0wgNNXjv11HWMGXMKu3bZOhvG5JqqahoHRR4fAf/CJQyA\n6cAnFR1k8tthh22nXTt47bWwS2KM8VtVvadSn93K5KVBg+DZZ+G888IuiTHGT1UN7vuriBxfwXv1\nReQKERkaTNFMNhs4EP71L9i9O+ySGGP8VNXgvoeB20XkBOAD4EvcSPA2wMHAE8CkQEtoslLLlnDM\nMTBnDpx7btilMcb4parbU+8CF4vID4BTcNOIbAeWq+rKNJTPZLEBA1xtw5KGMbnD0yJMqroFmBNs\nUUyu6dcPevaEcePAh6WJjTEZwKZGN4Fp3x7q14clS8IuiTH5LYzBfRnHBvdlh759Yfr0sEthTH5L\n29ToxqTKkoYxucVTm4aItMXNP9Uy9hhVPTugcpkccfrpsGEDfPyx601ljMluXmsaU3DrZ4zGJY/o\nIxAiUk9EFovIBUHFMOlRvTpceKHVNozJFV6Txh5VHa+qb6rqkugjwHKNBJ4O8PwmjewWlTG5w2vS\neEFEbhCRxiLSMPrwcqCIPC4iG0Rkadz280RkhYisEpGRMdt7AiW4gYTWUTMH9OwJ77wDX9lyXcZk\nPa9J4zLc7ag3gCWRx1sej50A9IrdICLVgHGR7ccBQ0SkfeTtQuA0oAi3PrnJcnXrwjnnwIwZYZfE\nGJMqr4P7kl6/U1Xni0jLuM1dgNWqugZARCbjpltfoaqjI9suBex/0xwRvUV12WVhl8QYkwqvvadq\nAtcDZ0Y2zQEeVdVkp6NrCqyLeb0el0j2U9V/JHluk4F694abboLt213NwxiTnTwlDWA8UBP4S+T1\nsMi20G4fDRw4cP/zgoICOnTo4HuMBQsW+H7OfI7TtOk53HbbCjp3/iywGH6zOJkZw+J4U1JSwvLl\ny309p9ekcaqqdop5/ZqIvJdC3M+AFjGvm0W2eTZ16tQUwntXVFRkcXyKs2EDLFt2FH4VIR++Z9ka\nJ5euJZfiiA+TwHltCN8rIsfGBD4G2JtAHKFsT6jFQGsRaSkitYDBwPMJnM9kob594YUXYG8inxxj\nTEbxmjRuBl4XkTkiMhd4DfillwNFpBjX66qtiKwVkeGquhcYAcwGlgGTVTWhOpRNWJh9jjkGjjwS\nFi4MuyTG5Bc/Jyz02nvq3yLSBmgX2bRSVXd6PLbc+paqzgRmeiplOfz6Bpj06tfP9aLq1i3skiTv\nvffg2GPhBz8IuyTGeFNYWEhhYSFjx6a+gndVy72eHfk6AOgNtI48eke2GZOQXBgdfuKJMHp02KUw\nJhxV1TR64G5FXVjOewpM871EJqedfDJs3QorVrj1NrLV9u1hl8CYcFS13Osdkad3quonse+JSNID\n/vwQXU/D1tTILiLQp4+rbWRz0rDGfJNN5syZ41sbsNeG8PL6tz7rSwmSZIswZa++fd3a4dls376w\nS2CMd34uwlRpTSMyH9RxwCFxbRgHA3V8KYHJO2edBYMHw//+B40ahV2a5KiGXQJjwlFVTaMd8GOg\nAa5dI/roDFwdbNFMrqpVC3r1cmM2spUqTJ0Kf/hD2CUxJr2qatOYDkwXka6q+t80lcnkgb59YdIk\nuDqL//UYNQo+/BBuDmw5MmMyj9c2jetEpEH0hYgcKiJPBFQmkwfOPx/mzYMtW8IuSfJ8mJGhjA0b\nXM8yYzKZ16TRUVU3R1+o6ibgpGCK5I2NCM9uDRq49cNffjnskiRH1f+k0agRDBvm7zmNAX9HhHtN\nGtVE5NDoi8iqfV4nOwyE9Z7Kftk+0M/vpAHwxRf+n9OYtPWeivFH4L8iMiXy+iLgt76UwOStPn3g\njjtgzx6oEeq/IIkLoqZhTDbwVNOILIg0ANgQeQxQ1SeDLJjJfc2bQ8uWMH9+2CVJjtek8cor8P33\nwZbFmHTxensKoCGwVVXHAV+GPSLc5IZsvkXlNWn86EfwwAPBlsWYdPGUNETkDmAk8OvIpprAP4Mq\nlMkf/fq50eHZNlgumfIOGgTvvut/WYxJJ681jf5AH2ArgKp+DhwUVKFM/jjhBPf1/ffDLUcyEmnT\niA4GzNZalTFRXpPGLlVV3My2iEj94Ipk8olI9t6isoZwk4+8Jo1nRORRoIGIXA28Cvw1uGKZfJKN\nSSPbbqcZ4xevK/fdJyLnAt/h5qO6XVVfCbRkVbCp0XPHGWfAJ5/AunWuR1W2sJqGyRZpnxo9cjvq\nNVW9GVfDqCsiNX0pQZJscF/uqFEDeveG558PuyTeWU3DZBM/B/d5vT01D6gtIk2BWcAwYKIvJTCG\nYG9RTZoEb77p7zn9Hty3atXh/p3MmAB5TRqiqttwA/zGq+pFuHU2jPFFr16wcCF8+63/5/7JT+DG\nG/0/b6K9pyozduyP9j8/4wx47rnS9z78ED7+2G3fsyfBQhrjM89JQ0S6AkOBGZFt1YMokIi0F5Hx\nIvKMiFwXRAyTeX7wA/dHcebMYM6fycuz7thR+lzVjZCPvVXXpg2ceKLbbmuTm7B5TRo/ww3se05V\nl4nIMcDrQRRIVVeo6vXAJcAPg4hhMlO/fsHdovI7aSTaphGtlZR3XOxMv9HxKvH77dyZWDxjguJ1\n7ql5qtpHVe+NvP5YVW/ycqyIPC4iG0Rkadz280RkhYisEpGRce9dCLwIvOTtMkwuuPBCmDULdu3y\n/9xhreldWbKIWreu9Pm2bcGWx5hUJTL3VLImAL1iN4hINWBcZPtxwJDIeuQAqOoLqtob+Ekaymcy\nRKNG0L49BLFMShC9nZJpCC/vmBEj/Dm3MekQeNJQ1fnAprjNXYDVqrpGVXcDk4G+ACLSQ0T+LCKP\nUNp+YvJEtgz0S7b3lNfkVdF+1tXXhC2sVQyaAjGVctbjEgmqOheYG0ahTPj69YNzz4Vx4/z9b9v+\n2BrjD09JQ0R+D9wFbMeN0+gI/J+qhjbT7cCBA/c/LygooEOHDr7HWLBgge/ntDhV27v3x/zudwto\n1Sq+gppsjCK+/XYzxcWJN5GVH6eItWs/ZdOmg4GGFBcXVxobYOnSpUBH3n9/KcXFH5S7T6yPP/6Y\n4uKF+9/ft28vUJ0pU56hbt3k+92m4zOQLZ+zfIhTUlLC8uXL/T2pqlb5AN6NfO0PPA4cArzn5djI\ncS2BpTGvTwdmxbweBYxM4HyaDpMmTbI4IcS5+WbV0aP9iwGqHTokV5by4oDq4MGqnTu751XFBtUx\nY0q/VrRP7OOyy8q+X7u2+/rtt8ldR2XX47ds+ZzlY5zI305Pf2crenht04jWSHoDU1Q10SFYEnlE\nLQZai0hLEakFDAayaBIJE6ToGhuZLNFbZ8neHtuyJbnjjAmK16TxooisAE4G/i0iRwA7qjgGABEp\nBt4A2orIWhEZrqp7gRHAbGAZMFlVE6pDjRkzxrcJuExmOf10+OorWL067JJULNn2lldfdQP1vBo9\nOrk4xsSaM2eOb3NPeZ3ldlSkXeNbVd0rIluJ9HbycOyBN2zd9plA0uN//foGmMxTrRr07+8WLRo1\nyp9z+t0QLpJY4ojuG10PfdcuqF276nLZCHDjh+iM4GPHjk35XF5nub0I2B1JGKNxS702STm6MRUY\nONAlDb+EnTRshLfJFV5vT92mqt+LSHegJ64xfHxwxTL5rkcP+PRTWLPGn/MFkTRizz1rlr/nNyZT\neU0a0Zl7egOPqeoMoFYwRfLG2jRyW40a0KdP2dleM0lsTWPdOjj//Mr3j09a0WO//rri/e+6C6K9\nJW2EuEmFn20aXpPGZ5HlXi8BXhKR2gkcGwhbhCn3DRjg7y2qMMUnjejrwytZRuO22+A//wmuTCZ/\nhLEI08XAy0AvVd0MNARu9qUExlSgZ0/44AP43/+SP0d0dlu/Z7lNtE0jUf/4R3DnNiYVXme53QZ8\nBPQSkRuBI1V1dqAlM3mvdm244ILUblHt3u2+BjFzbpSX5OG1TaV27dTKYkzQvPae+hkwCTgy8vin\niJQzN6cx/ho4EKZNS/74aLLwu7dSUDUNa7swmc7r7akrgdNU9XZVvR03DcjVwRXLGKdXL7e+d0UN\nxlWJJg2/axph/XFfscLFtvEbJiyel3ultAcVkeeh/k9kvafyQ/36rm3j+SQnmdm92y0lG2TSSOb2\nVEW3q6o611tvua83W4uiSUAYvacmAItEZIyIjAEW4sZqhMZ6T+WPVAb67dzpkkbYt6f8ShpRDz/s\nPbYxae89par3A8OBbyKP4ar6gC8lMKYKP/4xzJsH332X+LHRpLFnjz9LvkbPEftHPx23qmw9EJMp\nqpx7SkSqA8tUtT3wdvBFMqasgw+GM86AGTNgyJDEjo3O8VSrlntep05qZYlNGkHUNIzJdFXWNCIz\n0q4UkRZpKI8x5Ur2FtXOnWWTRqqi4z327Sv9w289nkw+8brc66HAMhF5E9ga3aiqfQIplTFx+vaF\n//s/2LYN6tXzflw0adSu7U/SiNY0Ym91RZNHIrWPZNcAtxqKCZvXpHFboKUwpgqHHQanngozZ7pa\nh1exNQ0/GsPLq2lEv+7bB9Wrl3+c1z/2lhRMpqs0aYhIa+AoVZ0bt7078EWQBTMm3iWXwNNPJ580\n0lHT8KqifStqrLdkYjJFVW0aDwDl9Vn5NvKeMWkzYAC8/HJiS6BGG8L9uj0VrWlEV/OOPo/9Wh6v\nf/Sr6uFlycOEraqkcZSqvh+/MbLt6EBK5JEN7ss/hx0G3brBCy94PybI21NRsbenKuK195QlBROE\ndA7ua1DJe3V9KUGSbHBffrrkEpg82fv+6W4IT5UlDROEdA7ue0tEDphjSkSuApb4UgJjEtCvH8yZ\nA1u31vS0fzoawlu1Kt3mVaJtGlEjbJpQE7Kqek/9HHhORIZSmiROwa3a1z/IghlTnkMOgbPPhrfe\nasbVHqbM3LnTJYwgG8Kj/GjTCOp4Y/xSadJQ1Q3AD0XkLOD4yOYZqvpakIUSkb64pWUPAp5Q1VeC\njGeyyyWXwN13t/S0r9+3p8prCI/yo6bh1/7GBMXTOA1VfR14PeCyxMabDkwXkQbAHwBLGma/Cy+E\nK644nC+/hCOOqHzfbdvcTLl+3Z5KpKaxYEHq8aJs1LnJFGlZ51tEHheRDSKyNG77eSKyQkRWicjI\ncg4dDdh8nqaM+vWhU6cvPC3OtGWLm7DQ75pGeUkjflv37qXPU517ymoaJlOkJWngplbvFbtBRKoB\n4yLbjwOGiEj7mPfvAV5S1XfTVEaTRU4/fQ1PPVX1ftGkEURNI5HbU6nOsGtJw2SKtCQNVZ0PbIrb\n3AVYraprVHU3MBnoCxBZSvYcYJCIXJOOMprs0qnT57z/PqxdW/l+sUnD7zaNeJX9YY+/vZRoEti7\nt+p9jEmHdNU0ytMUWBfzen1kG6r6kKqeqqo3qOpjoZTOZLRatfZx0UXw5JOV77d1a3C3pxKpaVib\nhMkVXicszDgDYyYgKigooEOHDr7HWOBnS6bF8T1G48aHMW5cV44++sUK/yivWlXI4sUr+fTTJmzf\n/j0HHbQq4Tix1q49BOjN559/wZYttYGG+9979tmpHHJI7D2wov3Pli8vAUo/o9OmTQMGJFSWeMXF\nxQkfk66fTTpYnKqVlJSwfPlyX88ZZtL4DIhdo6NZZJsnU5Nd/zNBRUVFVe9kcUKJM2RIL4qL4Zhj\niujatfx9xo+HH/+4CXv2QOPGUFR0SsJxYq/l3Xfh17+GI49sTM2a8Omnpfv17z+QRo1KXw8dWvq8\noKADM2bE7juAG25IuCgVlisdx2VaDIuTOPGhypvO21MSeUQtBlqLSEsRqQUMBp5PY3lMlhOByy6D\nv/+94n02b3YDAmvXTn+X21h2e8rkinR1uS0G3gDaishaERkeWRFwBDAbWAZMVlXP9SibsNAADBsG\nU6bAjh3lv//VV24sRxAr98ULcnCfManwc8LCtNyeUtVy61yqOhOYmcw5/foGmOzWvDmcdBJMn+5G\nisdSha+/drPj1q4N35U3yX+Coolh1y6oEffbY4nAZKrCwkIKCwsZO3ZsyucKs/eUMb646ip49NED\nt3/3HdSpUzr3lF8TFkZvddWuXfY9q2mYfGBJw2S9AQNg+XIoKSm7/euv4fDD3fO6dd2UIqnat8+d\na+fOA5NEuts0ViXWEcwYX2Rt0rA2DRNVq5arbfzlL2W3r1/vekwBNGgA336beqy9e0uTxu7dZd9L\nd02jWze49lr4zHOfQ5Ov0rkIU8ayRZhMrGuvheLisu0Wn3wCxxzjnh96KGyKn5MgCbt2wUEHua+7\nd7uEFZXuW04rV7pkeMIJ8ItfwMaN6Y1vskc6F2EyJis0awbnnw/jxpVu+/jj0gWSGjTwJ2ns3u1G\nmEdrGrFJI5ER4X4kmIYN4d57Ydky2LMHCgpg1Ch3W86YoFjSMDnjttvggQdKaxvvvOP+CwdX09i8\nOfUY0ZpGNGnUjFlAMKzG7caN4cEH3cDDzZuhbVu4/XZ/rteYeJY0TM5o3x5693Z/MHfvhjfeYP9I\ncb9vT0WTRmwPqrB7TzVvDo88Am+95dpz2rSBu+6C77/3P5bJX1mbNKwh3JTnj3+EqVPdWuInnOBu\nW0FpTSPVP9aV3Z6KPXeYXWpbtYInnnBJc8UKOPZY+O1vreaRz6whHGsIN+Vr2BDmzYPOnctOLxId\nq5Hqf927drmxH9Wrw/btFbdpxCeNINo0qtKmDfzznzB3Lqxe7ZLH5Mmd2LAh+Ngms1hDuDGVaNUK\nfvMbaNE1AS6WAAASVElEQVSi7PYmTeDzz1M7965dLlHUru3W6sjEmka8ggKYOBGWLIEdO2pSUAA3\n3ghr1oRdMpONLGmYvNG0aepJI3pLKjoqPLYhvLKaRiIDAYNy9NFw+eVvUVLibrF17gyXX+4GRhrj\nlSUNkzeaNEl9INyuXS5R1KnjXsfOP1VZIsiklfcaNYJ77oGPPnK3sAoL4YIL4OWXM6uGZDKTJQ2T\nN/yoaURvTx18sHtdUe+p+D++e/aUfZ0Jf5wbNIBbb3VrggwaBLfcAh06uDVItm4Nu3QmU1nSMHmj\nadOq1xSvSvT2VLSmUb166XuVtWnEJ41MUrcuXHGFG+cxfjzMng0tW7okYu0eJp4lDZM32rVLfZK/\nHTtc7SJ6W6pazG9QZTWN+HmqMqGmEU/E3ap67jlYvNjdUuvc2XVfnj07sXEoJndZ0jB5o317N24h\nFVu3Qv36pQ3gBx1U+l621jTK06qVG/Oydq0bMHnLLdC6Ndx5p9U+8p0lDZM3WrSAb75JbaxGNGlE\nx13EJo1sa9Pwon59uPpqNyXLM8/Ahg2u9tGzJ0ya5MaqmPyStUnDRoSbRFWr5mobH3yQ/DmiSSM6\np9WJJ5a+V1kiiL89lW1E4JRT4OGHXQ+0q6+GJ5907UTXXguvv559tal8YiPCsRHhJjk//CEsWJD8\n8Vu3Qr168Oc/wxdfuCnJoyqracSvT54tNY3y1KnjltadNQuWLnW3sn71K9el+ZprYOnSRlmfJHON\njQg3JknduqWeNOrXd43hjRqVHacROxajqqSRK5o1c9OxL1kCCxe6cR/PPtuRRo1cj6wZM/xZZtdk\nDksaJq+ccQb85z/J30qJJo3y7NhR+jw+acS+V977ueCYY+Dmm+HOO2fzzjvQsSPcfbdLrsOGwbRp\n/qyeaMKVcUlDRFqJyN9E5Jmwy2JyT9Om7o9bss1hW7a4KTjKEzsgLj4pxP+3nYtJI1aLFvDzn8P8\n+W6RqNNPd9O2N2sG3bu7ucHefDOzRsobbzIuaajqJ6p6VdjlMLnr4ovh6aeTO/brr91MurGijeKV\nJY0tW8q+zqc/lk2awE9/6sZ6bNzoFsvatAmGD4ejjoLBg+Hxx91Ki7meTHNB4ElDRB4XkQ0isjRu\n+3kiskJEVonIyKDLYUzU4MFuzY1E15dQdUnjsMPKbn/2WTj3XNi2rey+seJj5etAubp1oVcvuP9+\nVwN55x33vXv1Vdfe1LIlXHopTJjg1ni3JJJ50lHTmAD0it0gItWAcZHtxwFDRKR93HFxKxAY44/o\neuKPPprYcVu3umlD6tYtu71tW9eVt7L5mr76quzrfE0a8Zo3hyuvhKeecvOCRZPH7Nmup1ufPmGX\n0MQLPGmo6nwgfqHNLsBqVV2jqruByUBfABFpKCLjgROtBmKCMno03HcffPml92O++ebAWkbUQQeV\nrk0OB/6H/N13ZSc3TPX21EMPpXZ8JhJxCfjaa10SefllG32eicJq02gKrIt5vT6yDVX9RlWvV9U2\nqnpvKKUzOa+gAIYMgZEJ/FuycSMccUT57zVrButiPtHl3VY59NDS57G3ssqzenXZea3iXX555ccb\nE5QaVe+SmQYOHLj/eUFBAR06dPA9xoJUOvRbnIyP0bFjDUaPPp8RI5bStWv5/9LGxlm0qDnVqx9N\ncfF/Dtjvk0+asHBhO4qLXwfg++9rAYPK7LNly07AVTemT38dOKvM+4888izXXeeOefPNYh5/vDrD\nh19SZp/TTlvDokUtmTx5CvXqJT6CLlt+NgDr1x/MqlW96N59Pc2bb6ZFi800bvwdhx++jWrVNKc+\nz0HFKSkpYbnfq2ypauAPoCWwNOb16cCsmNejgJEJnE/TYdKkSRYnQ+P4FWPJEtXDD1ddsKDqOPfe\nq/qLX5S/3/r1qocdprp3r3v9v/+puvqG6rRppc+jj2eeOXCbatnnsa+jjxtucF93707uerPpZ7Nv\nn+rChaoTJqj+/OeqPXuqtmihWqeO6nHHqZ522qd6992qs2apbtzoS8hy5dLvTeRvZ0p/z9NV0xDK\nNmwvBlqLSEvgC2AwMCRNZTFmv86d3RxK/fvDv/4FXbtWvO+KFXDqqeW/17Spu/307rvunLHTaPTv\n79pCvv7arVdx/fUHNozHOvLIA7dNmOC6+h5/vJvivUbW3iPwTgROO809Ym3b5m7fPfbYZ3z5ZUvu\nvRfeftt9/0880Y3DOeYYN71Jq1Zumdv4zgsmeYF/9ESkGCgEDhORtcAdqjpBREYAs3HtKo+rakJ1\nqOjcUzb/lEnVeefBxInQty/8/vdw2WWls9jGWrgQbryx4vMMG+YGsD322IETFDZs6JLGdde5Bt7V\nqys+T2yD+sqVcPjhZceG3HSTp8vKWfXqQadO0K3bpxQV/RBwvdFWr3ZzYX3yiZuU8oUX3PM1a9z3\nr1kzNzCzXr2yj1q1XK+42Ee1aqXPly9vz+7drj3rqKPcVCnRlRuzxZw5c3yb4DXwpKGqRRVsnwnM\nTPa8fk2+ZQy4LrivveYax6dNg3Hj3KjmqJUrXe+pjh0rPsf117vlUn/2M/eHKNZ990H01nLr1u6P\nWqtW7o9arFq1yk450rZtateVL6pVczWwdu0OfG/fPtedd/16V0uJf+zc6XqzRR/79pU+37ULNm2q\ny7//7XraffGFS06HHupm/S0sdI+OHSvvuBC26D/YY8eOTflceVDJNcab44+Ht95y8yWddJK7rXTk\nkUexcqVLBNdeW/ltoSOOcIsUXXZZ6RiQ6HobffqUjjno2hUeeAB69HBJ47DDYNSoF4Ef07w5fPRR\noJeZd6pVc7WMZs2SO764+B2Kigr2v963z9VeFi1y09E88ojrWXfmmXDOOW699caN/Sl7Jsrg3GhM\n+tWuDWPGuPaL1q3djK3nn+9uSfy//1f18ddd52oQgwe71zNmHLhPjx5uwsTo+uJ160KTJu6e1Ny5\n8OGH/lyLCUa1aqU/40cecZ+VZcvc67fecrXNQYPgv/8Nu6TByNqahrVpmCAdcYSb8rtFi1coKir3\nDmu5ROCJJ+Dss13t5IwzDtwnOkAwul75xo2l7zVtmkKhTWgaN3ZJY/Bg1yb15JNQVOSSy623us9D\nee1k6ZJVbRpBsTYNk6kOOggWL658n0WLXCfaQYMOnMzQZLeDD3YTNF5zDRQXu84T1aq5ObdOPtn1\nrmva1NUwd+92Pek2bnTjgD77zN2y/Phjdwusbl13W+3MM91CV8myNg1jslyXLu7riy+6hm9rx8g9\nNWu69q1LL3ULfy1YANOnwx13uLXWd+xwbWSHH+4eNWoczRlnuNkKevd2XYW3b3czDWTSWuyWNIwJ\nUadO7qsljdwl4tYQ6d698v2Ki/9T7q3QU04JqGBJsoZwY4wxnmVt0hgzZoxvDTvGGJPL5syZ41s7\ncNbenrKGcGOM8cbPhvCsrWkYY4xJP0saxhhjPLOkYYwxxjNLGsYYYzyzpGGMMcYzSxrGGGM8s6Rh\njDHGM0saxhhjPMvapGEjwo0xxhsbEY6NCDfGGK9sRLgxxphQWNIwxhjjWcbdnhKResBfgJ3AXFUt\nDrlIxhhjIjKxpjEAmKKq1wJ9wixISUmJxcnQOLl0LbkWJ5euJRfjpCrwpCEij4vIBhFZGrf9PBFZ\nISKrRGRkzFvNgHWR53uDLl9lli9fbnEyNE4uXUuuxcmla8nFOKlKR01jAtArdoOIVAPGRbYfBwwR\nkfaRt9fhEgeApKF8Ffryyy8tTobGyaVrybU4uXQtuRgnVYEnDVWdD2yK29wFWK2qa1R1NzAZ6Bt5\n7zlgkIg8DLwQdPkqk2sfllyKk0vXkmtxculacjFOqsJqCG9K6S0ogPW4RIKqbgOuqOoEIumphFic\nzI2TS9eSa3Fy6VpyMU4qMq73lBeqmvnfWWOMyUFh9Z76DGgR87pZZJsxxpgMlq6kIZRt1F4MtBaR\nliJSCxgMPJ+mshhjjElSOrrcFgNvAG1FZK2IDFfVvcAIYDawDJisqtnR38wYY/KYqGrYZTDGGJMl\nMnFEeNJEpIeIzBOR8SJyZoBx6onIYhG5IMAY7SPX8YyIXBdgnL4i8piIPCUi5wYYp5WI/E1Engkw\nRj0RmSgij4pIUUAxAr+OSJx0/VzS8jmLxAr09yaNv/8iIneJyIMiMizAON0j1/JXEZkfYJzmIvJc\n5HM9sqr9cyppAAp8D9TGdeMNykjg6QDPj6quUNXrgUuAHwYYZ7qqXgNcD1wcYJxPVPWqoM4fEfgU\nNGm6jnT+XNLyOYsI+vcmXb//fXGdd3YFGUdV50d+Ni8Cfw8qDnAC7vfmKuDEqnbOyKSRxNQjAKjq\nPFXtDYwC7gwihoj0BEqAL/EwYj3ZOJF9LsR9YF4KMk7EaODhNMTxLB1T0KTrelKI4+nnkkqcRD5n\nycZJ9PcmmRiJ/P6nEgdoByxQ1V8BNwQYJ6oI8DxxaxJxFgJXicirwKwqA6hqxj2A7riMtzRmWzXg\nQ6AlUBN4F2gfeW8YcD/QOPK6FvBMADH+BDweifUy8FzQ1xLZ9mKAcZoA9wBnp+lnMyXAz8FQ4ILI\n8+IgYsTs4/k6ko2TyM8l1evx+jlL4WdzVyK/Nyn+bKr8/ffhczYo8nxywJ+B5sCjQX4GgF8C3b1+\nrjNycJ+qzheRlnGb9089AiAi0alHVqjqk8CTItJfRHoBh+DmtvI9RnRHEbkU+CrAa+khIqNwVe0Z\nAcYZAZwDHCwirVX1sYDiNBSR8cCJIjJSVe/1+5pwU9CME5HeeJyCJtEYItIQ+G0i15FknIR+LinE\n6YG7refpc5ZsHFUdHdnm6fcmyWvpj5vPrsrf/1TiANOAh0TkDGBugHEArsTN3+dZEnFmAWNEZCjw\nSVXnz8ikUYEKpx6JUtXncH84AosRE+sfQcZR1bkk8IFMIc5DwENpiPMN7v58qlKegibFGH5dR1Vx\n/Pi5eInjx+esyjhRKf7eVBrDh99/r3G2A361a1X6PVPVMUHHUdVlwEVeT5SRbRrGGGMyUzYljXRM\nPZKu6U0sTmbHyrXvWy7FyaVryco4mZw00jH1SLqmN7E4mR0r175vuRQnl64lN+Ik0iqfrgeue9nn\nuHXC1wLDI9vPB1YCq4FRmR7D4mR+rFz7vuVSnFy6llyKY9OIGGOM8SyTb08ZY4zJMJY0jDHGeGZJ\nwxhjjGeWNIwxxnhmScMYY4xnljSMMcZ4ZknDGGOMZ5Y0TE4Tkb0i8raIvBP5ekvYZYoSkSkicnQl\n798uIr+L29ZJREoiz18RkUOCLaUxZVnSMLluq6p2VtWTIl9/n+oJRaS6D+foAFRT1U8r2e0p3Ip6\nsQZTuiDPP4CfploWYxJhScPkunJXiRORT0RkjIgsEZH3RKRtZHu9yMpnCyPvXRjZfpmITBeRfwOv\nivMXESkRkdkiMkNEBojIWSLyXEycniIyrZwiDAWmx+x3roi8ISJvicjTIlJPVVcD34jIqTHHXYxL\nJuDWDBmSyjfHmERZ0jC5rm7c7anYdQM2qurJwCPAryLbbgX+raqnA2cD94lI3ch7JwEDVPUs3MJF\nLVS1A251wq4Aqvo60E5EDoscMxy32mO8bsASgMi+o4FzVPWUyPZfRvabTCQxiMjpwNeq+lEk1mag\nlogcmuw3x5hEZdMiTMYkY5uqdq7gvWiNYAnQP/L8R8CFInJz5HUtSqeUfkVVv4087w5MAVDVDSLy\nesx5nwR+IiITgdNxSSVeY9x62UT26QAsEBHBLcf538h7TwMLgF/gblU9FXeeL3FL9m6q4BqN8ZUl\nDZPPdka+7qX0d0GAgZFbQ/tF/svf6vG8E3G3jnbi1lzeV84+24A6MTFnq+rQ+J1UdX3kVlohMBCX\nYGLVAbZ7LJcxKbPbUybXldumUYmXgZv2HyxyYgX7LQAGRto2jgIKo2+o6he4qalvpeL1nZcDrSPP\nFwLdROTYSMx6ItImZt/JwJ+Aj1T187jzHAV8WvVlGeMPSxom19WJa9OIdmGtaE2A3wA1RWSpiHwA\n3FnBflNx6ywvw/ViWgJ8G/P+JGCdqq6s4PiXgLMAVPUr4HLgKRF5D3gDaBez7xTc7avi2BOIyMnA\nwgpqMsYEwtbTMCZJIlJfVbeKSENgEdBNVTdG3nsIeFtVy61piEgd4LXIMUn9EorIA8D0SOO7MWlh\nbRrGJO9FEWmAa7i+MyZhvAVswTVel0tVd4jIHUBTXI0lGe9bwjDpZjUNY4wxnlmbhjHGGM8saRhj\njPHMkoYxxhjPLGkYY4zxzJKGMcYYzyxpGGOM8ez/A7bQnvd2o04sAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fc3263c25f8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"energies = gd157.energy['294K']\n",
"total_xs = total.xs['294K'](energies)\n",
"plt.loglog(energies, total_xs)\n",
"plt.xlabel('Energy (eV)')\n",
"plt.ylabel('Cross section (b)')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Reaction Data\n",
"\n",
"Most of the interesting data for an `IncidentNeutron` instance is contained within the `reactions` attribute, which is a dictionary mapping MT values to `Reaction` objects."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[<Reaction: MT=2 (n,elastic)>,\n",
" <Reaction: MT=16 (n,2n)>,\n",
" <Reaction: MT=17 (n,3n)>,\n",
" <Reaction: MT=22 (n,na)>,\n",
" <Reaction: MT=24 (n,2na)>,\n",
" <Reaction: MT=28 (n,np)>,\n",
" <Reaction: MT=41 (n,2np)>,\n",
" <Reaction: MT=51 (n,n1)>,\n",
" <Reaction: MT=52 (n,n2)>,\n",
" <Reaction: MT=53 (n,n3)>]\n"
]
}
],
"source": [
"pprint(list(gd157.reactions.values())[:10])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's suppose we want to look more closely at the (n,2n) reaction. This reaction has an energy threshold"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Threshold = 6400881.0 eV\n"
]
}
],
"source": [
"n2n = gd157[16]\n",
"print('Threshold = {} eV'.format(n2n.xs['294K'].x[0]))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The (n,2n) cross section, like all basic cross sections, is represented by the `Tabulated1D` class. The energy and cross section values in the table can be directly accessed with the `x` and `y` attributes. Using the `x` and `y` has the nice benefit of automatically acounting for reaction thresholds."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"{'294K': <openmc.data.function.Tabulated1D at 0x7fc3263ca4e0>}"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"n2n.xs"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(6400881.0, 20000000.0)"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fc32631dc18>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"xs = n2n.xs['294K']\n",
"plt.plot(xs.x, xs.y)\n",
"plt.xlabel('Energy (eV)')\n",
"plt.ylabel('Cross section (b)')\n",
"plt.xlim((xs.x[0], xs.x[-1]))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To get information on the energy and angle distribution of the neutrons emitted in the reaction, we need to look at the `products` attribute."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<Product: neutron, emission=prompt, yield=polynomial>,\n",
" <Product: photon, emission=prompt, yield=tabulated>]"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"n2n.products"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<openmc.data.correlated.CorrelatedAngleEnergy at 0x7fc326323eb8>]"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"neutron = n2n.products[0]\n",
"neutron.distribution"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We see that the neutrons emitted have a correlated angle-energy distribution. Let's look at the `energy_out` attribute to see what the outgoing energy distributions are."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<openmc.stats.univariate.Tabular at 0x7fc3263d9b00>,\n",
" <openmc.stats.univariate.Tabular at 0x7fc3263dcb38>,\n",
" <openmc.stats.univariate.Tabular at 0x7fc3263dccc0>,\n",
" <openmc.stats.univariate.Tabular at 0x7fc3263dce10>,\n",
" <openmc.stats.univariate.Tabular at 0x7fc326362048>,\n",
" <openmc.stats.univariate.Tabular at 0x7fc3263622b0>,\n",
" <openmc.stats.univariate.Tabular at 0x7fc3263625c0>,\n",
" <openmc.stats.univariate.Tabular at 0x7fc326362940>,\n",
" <openmc.stats.univariate.Tabular at 0x7fc326362d30>,\n",
" <openmc.stats.univariate.Tabular at 0x7fc3263681d0>,\n",
" <openmc.stats.univariate.Tabular at 0x7fc3263686a0>,\n",
" <openmc.stats.univariate.Tabular at 0x7fc326368b70>,\n",
" <openmc.stats.univariate.Tabular at 0x7fc32636f128>,\n",
" <openmc.stats.univariate.Tabular at 0x7fc32636f6d8>,\n",
" <openmc.stats.univariate.Tabular at 0x7fc32636fcf8>,\n",
" <openmc.stats.univariate.Tabular at 0x7fc326376390>,\n",
" <openmc.stats.univariate.Tabular at 0x7fc326376a58>,\n",
" <openmc.stats.univariate.Tabular at 0x7fc32637c198>,\n",
" <openmc.stats.univariate.Tabular at 0x7fc32637c898>,\n",
" <openmc.stats.univariate.Tabular at 0x7fc32637cfd0>,\n",
" <openmc.stats.univariate.Tabular at 0x7fc3263837b8>,\n",
" <openmc.stats.univariate.Tabular at 0x7fc326383f98>,\n",
" <openmc.stats.univariate.Tabular at 0x7fc3263897f0>,\n",
" <openmc.stats.univariate.Tabular at 0x7fc32638f080>,\n",
" <openmc.stats.univariate.Tabular at 0x7fc32638f908>,\n",
" <openmc.stats.univariate.Tabular at 0x7fc326396208>,\n",
" <openmc.stats.univariate.Tabular at 0x7fc326396a20>,\n",
" <openmc.stats.univariate.Tabular at 0x7fc32639c320>,\n",
" <openmc.stats.univariate.Tabular at 0x7fc32639cc18>,\n",
" <openmc.stats.univariate.Tabular at 0x7fc326323588>]"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dist = neutron.distribution[0]\n",
"dist.energy_out"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here we see we have a tabulated outgoing energy distribution for each incoming energy. Note that the same probability distribution classes that we could use to create a source definition are also used within the `openmc.data` package. Let's plot every fifth distribution to get an idea of what they look like."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nIjHGGBOS/wft2ckz6ND5XgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fc3236f62e8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for e_in, e_out_dist in zip(dist.energy[::5], dist.energy_out[::5]):\n",
" plt.semilogy(e_out_dist.x, e_out_dist.p, label='E={:.2f} MeV'.format(e_in/1e6))\n",
"plt.ylim(ymax=1e-6)\n",
"plt.legend()\n",
"plt.xlabel('Outgoing energy (eV)')\n",
"plt.ylabel('Probability/eV')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"There is also `summed_reactions` attribute for cross sections (like total) which are built from summing up other cross sections."
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[<Reaction: MT=101 (n,disappear)>,\n",
" <Reaction: MT=27 (n,absorption)>,\n",
" <Reaction: MT=4 (n,level)>,\n",
" <Reaction: MT=3>,\n",
" <Reaction: MT=1 (n,total)>]\n"
]
}
],
"source": [
"pprint(list(gd157.summed_reactions.values()))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that the cross sections for these reactions are represented by the `Sum` class rather than `Tabulated1D`. They do not support the `x` and `y` attributes."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"{'294K': <openmc.data.function.Sum at 0x7fc3263b16a0>}"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gd157[27].xs"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Unresolved resonance probability tables\n",
"\n",
"We can also look at unresolved resonance probability tables which are stored in a `ProbabilityTables` object. In the following example, we'll create a plot showing what the total cross section probability tables look like as a function of incoming energy."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.text.Text at 0x7fc3234bba90>"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nAdQe9WAAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fc32374eac8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig = plt.figure()\n",
"ax = fig.add_subplot(111)\n",
"cm = matplotlib.cm.Spectral_r\n",
"\n",
"# Determine size of probability tables\n",
"urr = gd157.urr['294K']\n",
"n_energy = urr.table.shape[0]\n",
"n_band = urr.table.shape[2]\n",
"\n",
"for i in range(n_energy):\n",
" # Get bounds on energy\n",
" if i > 0:\n",
" e_left = urr.energy[i] - 0.5*(urr.energy[i] - urr.energy[i-1])\n",
" else:\n",
" e_left = urr.energy[i] - 0.5*(urr.energy[i+1] - urr.energy[i])\n",
"\n",
" if i < n_energy - 1:\n",
" e_right = urr.energy[i] + 0.5*(urr.energy[i+1] - urr.energy[i])\n",
" else:\n",
" e_right = urr.energy[i] + 0.5*(urr.energy[i] - urr.energy[i-1])\n",
" \n",
" for j in range(n_band):\n",
" # Determine maximum probability for a single band\n",
" max_prob = np.diff(urr.table[i,0,:]).max()\n",
" \n",
" # Determine bottom of band\n",
" if j > 0:\n",
" xs_bottom = urr.table[i,1,j] - 0.5*(urr.table[i,1,j] - urr.table[i,1,j-1])\n",
" value = (urr.table[i,0,j] - urr.table[i,0,j-1])/max_prob\n",
" else:\n",
" xs_bottom = urr.table[i,1,j] - 0.5*(urr.table[i,1,j+1] - urr.table[i,1,j])\n",
" value = urr.table[i,0,j]/max_prob\n",
"\n",
" # Determine top of band\n",
" if j < n_band - 1:\n",
" xs_top = urr.table[i,1,j] + 0.5*(urr.table[i,1,j+1] - urr.table[i,1,j])\n",
" else:\n",
" xs_top = urr.table[i,1,j] + 0.5*(urr.table[i,1,j] - urr.table[i,1,j-1])\n",
" \n",
" # Draw rectangle with appropriate color\n",
" ax.add_patch(Rectangle((e_left, xs_bottom), e_right - e_left, xs_top - xs_bottom,\n",
" color=cm(value)))\n",
"\n",
"# Overlay total cross section\n",
"ax.plot(gd157.energy['294K'], total.xs['294K'](gd157.energy['294K']), 'k')\n",
"\n",
"# Make plot pretty and labeled\n",
"ax.set_xlim(1.0, 1.0e5)\n",
"ax.set_ylim(1e-1, 1e4)\n",
"ax.set_xscale('log')\n",
"ax.set_yscale('log')\n",
"ax.set_xlabel('Energy (eV)')\n",
"ax.set_ylabel('Cross section(b)')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Converting ACE to HDF5\n",
"\n",
"The `openmc.data` package can also read ACE files and output HDF5 files. ACE files can be read with the `openmc.data.IncidentNeutron.from_ace(...)` factory method."
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<IncidentNeutron: Gd157>"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"filename = '/opt/data/ace/nndc/293.6K/Gd_157_293.6K.ace'\n",
"gd157_ace = openmc.data.IncidentNeutron.from_ace(filename)\n",
"gd157_ace"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can store this formerly ACE data as HDF5 with the `export_to_hdf5()` method."
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"gd157_ace.export_to_hdf5('gd157.h5', 'w')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"With few exceptions, the HDF5 file encodes the same data as the ACE file."
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
" 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
" 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gd157_reconstructed = openmc.data.IncidentNeutron.from_hdf5('gd157.h5')\n",
"gd157_ace[16].xs['294K'].y - gd157_reconstructed[16].xs['294K'].y"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And one of the best parts of using HDF5 is that it is a widely used format with lots of third-party support. You can use `h5py`, for example, to inspect the data."
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"reaction_002, (n,elastic)\n",
"reaction_016, (n,2n)\n",
"reaction_017, (n,3n)\n",
"reaction_022, (n,na)\n",
"reaction_024, (n,2na)\n",
"reaction_028, (n,np)\n",
"reaction_041, (n,2np)\n",
"reaction_051, (n,n1)\n",
"reaction_052, (n,n2)\n",
"reaction_053, (n,n3)\n"
]
}
],
"source": [
"h5file = h5py.File('gd157.h5', 'r')\n",
"main_group = h5file['Gd157/reactions']\n",
"for name, obj in sorted(list(main_group.items()))[:10]:\n",
" if 'reaction_' in name:\n",
" print('{}, {}'.format(name, obj.attrs['label'].decode()))"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[<HDF5 group \"/Gd157/reactions/reaction_016/product_0\" (2 members)>,\n",
" <HDF5 group \"/Gd157/reactions/reaction_016/294K\" (1 members)>,\n",
" <HDF5 group \"/Gd157/reactions/reaction_016/product_1\" (2 members)>]\n"
]
}
],
"source": [
"n2n_group = main_group['reaction_016']\n",
"pprint(list(n2n_group.values()))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So we see that the hierarchy of data within the HDF5 mirrors the hierarchy of Python objects that we manipulated before."
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0.00000000e+00, 3.02679600e-13, 1.29110100e-02,\n",
" 6.51111000e-02, 3.92627000e-01, 5.75226800e-01,\n",
" 6.96960000e-01, 7.39937800e-01, 9.63545000e-01,\n",
" 1.14213000e+00, 1.30802000e+00, 1.46350000e+00,\n",
" 1.55760000e+00, 1.64055000e+00, 1.68896000e+00,\n",
" 1.71140000e+00, 1.73945000e+00, 1.78207000e+00,\n",
" 1.81665000e+00, 1.84528000e+00, 1.86540900e+00,\n",
" 1.86724000e+00, 1.88155800e+00, 1.88156000e+00,\n",
" 1.88180000e+00, 1.89447000e+00, 1.86957000e+00,\n",
" 1.82120000e+00, 1.71600000e+00, 1.60054000e+00,\n",
" 1.43162000e+00, 1.28346000e+00, 1.10166000e+00,\n",
" 1.06530000e+00, 9.30730000e-01, 8.02980000e-01,\n",
" 7.77740000e-01])"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"n2n_group['294K/xs'].value"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 0
}