OpenMC/docs/source/pythonapi/examples/pandas-dataframes.ipynb
2016-09-22 03:00:49 -04:00

2243 lines
168 KiB
Text

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This notebook demonstrates how systematic analysis of tally scores is possible using Pandas dataframes. A dataframe can be automatically generated using the `Tally.get_pandas_dataframe(...)` method. Furthermore, by linking the tally data in a statepoint file with geometry and material information from a summary file, the dataframe can be shown with user-supplied labels.\n",
"\n",
"**Note:** that this Notebook was created using the latest Pandas v0.16.1. Everything in the Notebook will wun with older versions of Pandas, but the multi-indexing option in >v0.15.0 makes the tables look prettier."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import glob\n",
"from IPython.display import Image\n",
"import matplotlib.pyplot as plt\n",
"import scipy.stats\n",
"import numpy as np\n",
"import pandas as pd\n",
"\n",
"import openmc"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Generate Input Files"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First we need to define materials that will be used in the problem. Before defining a material, we must create nuclides that are used in the material."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Instantiate some Nuclides\n",
"h1 = openmc.Nuclide('H1')\n",
"b10 = openmc.Nuclide('B10')\n",
"o16 = openmc.Nuclide('O16')\n",
"u235 = openmc.Nuclide('U235')\n",
"u238 = openmc.Nuclide('U238')\n",
"zr90 = openmc.Nuclide('Zr90')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"With the nuclides we defined, we will now create three materials for the fuel, water, and cladding of the fuel pin."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# 1.6 enriched fuel\n",
"fuel = openmc.Material(name='1.6% Fuel')\n",
"fuel.set_density('g/cm3', 10.31341)\n",
"fuel.add_nuclide(u235, 3.7503e-4)\n",
"fuel.add_nuclide(u238, 2.2625e-2)\n",
"fuel.add_nuclide(o16, 4.6007e-2)\n",
"\n",
"# borated water\n",
"water = openmc.Material(name='Borated Water')\n",
"water.set_density('g/cm3', 0.740582)\n",
"water.add_nuclide(h1, 4.9457e-2)\n",
"water.add_nuclide(o16, 2.4732e-2)\n",
"water.add_nuclide(b10, 8.0042e-6)\n",
"\n",
"# zircaloy\n",
"zircaloy = openmc.Material(name='Zircaloy')\n",
"zircaloy.set_density('g/cm3', 6.55)\n",
"zircaloy.add_nuclide(zr90, 7.2758e-3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"With our three materials, we can now create a materials file object that can be exported to an actual XML file."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Instantiate a Materials collection\n",
"materials_file = openmc.Materials((fuel, water, zircaloy))\n",
"\n",
"# Export to \"materials.xml\"\n",
"materials_file.export_to_xml()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now let's move on to the geometry. This problem will be a square array of fuel pins for which we can use OpenMC's lattice/universe feature. The basic universe will have three regions for the fuel, the clad, and the surrounding coolant. The first step is to create the bounding surfaces for fuel and clad, as well as the outer bounding surfaces of the problem."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Create cylinders for the fuel and clad\n",
"fuel_outer_radius = openmc.ZCylinder(x0=0.0, y0=0.0, R=0.39218)\n",
"clad_outer_radius = openmc.ZCylinder(x0=0.0, y0=0.0, R=0.45720)\n",
"\n",
"# Create boundary planes to surround the geometry\n",
"# Use both reflective and vacuum boundaries to make life interesting\n",
"min_x = openmc.XPlane(x0=-10.71, boundary_type='reflective')\n",
"max_x = openmc.XPlane(x0=+10.71, boundary_type='vacuum')\n",
"min_y = openmc.YPlane(y0=-10.71, boundary_type='vacuum')\n",
"max_y = openmc.YPlane(y0=+10.71, boundary_type='reflective')\n",
"min_z = openmc.ZPlane(z0=-10.71, boundary_type='reflective')\n",
"max_z = openmc.ZPlane(z0=+10.71, boundary_type='reflective')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"With the surfaces defined, we can now construct a fuel pin cell from cells that are defined by intersections of half-spaces created by the surfaces."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Create a Universe to encapsulate a fuel pin\n",
"pin_cell_universe = openmc.Universe(name='1.6% Fuel Pin')\n",
"\n",
"# Create fuel Cell\n",
"fuel_cell = openmc.Cell(name='1.6% Fuel')\n",
"fuel_cell.fill = fuel\n",
"fuel_cell.region = -fuel_outer_radius\n",
"pin_cell_universe.add_cell(fuel_cell)\n",
"\n",
"# Create a clad Cell\n",
"clad_cell = openmc.Cell(name='1.6% Clad')\n",
"clad_cell.fill = zircaloy\n",
"clad_cell.region = +fuel_outer_radius & -clad_outer_radius\n",
"pin_cell_universe.add_cell(clad_cell)\n",
"\n",
"# Create a moderator Cell\n",
"moderator_cell = openmc.Cell(name='1.6% Moderator')\n",
"moderator_cell.fill = water\n",
"moderator_cell.region = +clad_outer_radius\n",
"pin_cell_universe.add_cell(moderator_cell)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Using the pin cell universe, we can construct a 17x17 rectangular lattice with a 1.26 cm pitch."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Create fuel assembly Lattice\n",
"assembly = openmc.RectLattice(name='1.6% Fuel - 0BA')\n",
"assembly.pitch = (1.26, 1.26)\n",
"assembly.lower_left = [-1.26 * 17. / 2.0] * 2\n",
"assembly.universes = [[pin_cell_universe] * 17] * 17"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"OpenMC requires that there is a \"root\" universe. Let us create a root cell that is filled by the pin cell universe and then assign it to the root universe."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Create root Cell\n",
"root_cell = openmc.Cell(name='root cell')\n",
"root_cell.fill = assembly\n",
"\n",
"# Add boundary planes\n",
"root_cell.region = +min_x & -max_x & +min_y & -max_y & +min_z & -max_z\n",
"\n",
"# Create root Universe\n",
"root_universe = openmc.Universe(universe_id=0, name='root universe')\n",
"root_universe.add_cell(root_cell)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We now must create a geometry that is assigned a root universe and export it to XML."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Create Geometry and set root Universe\n",
"geometry = openmc.Geometry()\n",
"geometry.root_universe = root_universe"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Export to \"geometry.xml\"\n",
"geometry.export_to_xml()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"With the geometry and materials finished, we now just need to define simulation parameters. In this case, we will use 5 inactive batches and 15 minimum active batches each with 2500 particles. We also tell OpenMC to turn tally triggers on, which means it will keep running until some criterion on the uncertainty of tallies is reached."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# OpenMC simulation parameters\n",
"min_batches = 20\n",
"max_batches = 200\n",
"inactive = 5\n",
"particles = 2500\n",
"\n",
"# Instantiate a Settings object\n",
"settings_file = openmc.Settings()\n",
"settings_file.batches = min_batches\n",
"settings_file.inactive = inactive\n",
"settings_file.particles = particles\n",
"settings_file.output = {'tallies': False}\n",
"settings_file.trigger_active = True\n",
"settings_file.trigger_max_batches = max_batches\n",
"\n",
"# Create an initial uniform spatial source distribution over fissionable zones\n",
"bounds = [-10.71, -10.71, -10, 10.71, 10.71, 10.]\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",
"# Export to \"settings.xml\"\n",
"settings_file.export_to_xml()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let us also create a plot file that we can use to verify that our pin cell geometry was created successfully."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Instantiate a Plot\n",
"plot = openmc.Plot(plot_id=1)\n",
"plot.filename = 'materials-xy'\n",
"plot.origin = [0, 0, 0]\n",
"plot.width = [21.5, 21.5]\n",
"plot.pixels = [250, 250]\n",
"plot.color = 'mat'\n",
"\n",
"# Instantiate a Plots collection and export to \"plots.xml\"\n",
"plot_file = openmc.Plots([plot])\n",
"plot_file.export_to_xml()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"With the plots.xml file, we can now generate and view the plot. OpenMC outputs plots in .ppm format, which can be converted into a compressed format like .png with the convert utility."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Run openmc in plotting mode\n",
"openmc.plot_geometry(output=False)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AJFRQaG5EgTGUAAAPZSURBVGje7Zs7buMwEIZ9iey5\n0gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwgwIcgg8Cc4fCTSK5W4OeF\nkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7E08mlia+rn7VcKXP8sRs\nzFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WBzfiz20hXORmP9fi/bM9E\neUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4lXju8K3DKv9NThOZ3q2K\nmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3OafPX40NGgST2r+uvQkXXp6\ncKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcublfKGt6apotG/NVx3SInW\ntLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJbf8qlPynYmpKCh7OB1fzN\nalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utrJTy8/06TXh0r/5JOa2Jm\nYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU4YuBTPa/8P67l/6r44ds\n+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m/65n+S8p/itN15v0UkW3\n/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB6R3Cqn55U4rv4kfH3zaS\ngQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6bjT6rym9I/v/03/b+LHS\n4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv6h9B/Bfxr9j1Hz2eN/hO\n8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wXfP8Mvf9G37/D/ovuP8Se\nP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7+O+E8zdP/8XOf8Hnz9Dz\nb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589jz5/Y8ej9h4D+W7qQmf57\nefqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m4fwXuH+M3n+OO3++AX9c\nlR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA5LTIxVDE2OjI2OjI3LTA0OjAwGr4jUAAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wOS0yMVQxNjoyNjoyNy0wNDowMGvjm+wAAAAASUVORK5C\nYII=\n",
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Convert OpenMC's funky ppm to png\n",
"!convert materials-xy.ppm materials-xy.png\n",
"\n",
"# Display the materials plot inline\n",
"Image(filename='materials-xy.png')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As we can see from the plot, we have a nice array of pin cells with fuel, cladding, and water! Before we run our simulation, we need to tell the code what we want to tally. The following code shows how to create a variety of tallies."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Instantiate an empty Tallies object\n",
"tallies_file = openmc.Tallies()\n",
"tallies_file._tallies = []"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Instantiate a fission rate mesh Tally"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Instantiate a tally Mesh\n",
"mesh = openmc.Mesh(mesh_id=1)\n",
"mesh.type = 'regular'\n",
"mesh.dimension = [17, 17]\n",
"mesh.lower_left = [-10.71, -10.71]\n",
"mesh.width = [1.26, 1.26]\n",
"\n",
"# Instantiate tally Filter\n",
"mesh_filter = openmc.MeshFilter(mesh.id)\n",
"mesh_filter.mesh = mesh\n",
"\n",
"# Instantiate energy Filter\n",
"energy_filter = openmc.EnergyFilter([0, 0.625e-6, 20.])\n",
"\n",
"# Instantiate the Tally\n",
"tally = openmc.Tally(name='mesh tally')\n",
"tally.filters = [mesh_filter, energy_filter]\n",
"tally.scores = ['fission', 'nu-fission']\n",
"\n",
"# Add mesh and Tally to Tallies\n",
"tallies_file.append(tally)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Instantiate a cell Tally with nuclides"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Instantiate tally Filter\n",
"cell_filter = openmc.CellFilter(fuel_cell.id)\n",
"\n",
"# Instantiate the tally\n",
"tally = openmc.Tally(name='cell tally')\n",
"tally.filters = [cell_filter]\n",
"tally.scores = ['scatter-y2']\n",
"tally.nuclides = [u235, u238]\n",
"\n",
"# Add mesh and tally to Tallies\n",
"tallies_file.append(tally)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Create a \"distribcell\" Tally. The distribcell filter allows us to tally multiple repeated instances of the same cell throughout the geometry."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Instantiate tally Filter\n",
"distribcell_filter = openmc.DistribcellFilter(moderator_cell.id)\n",
"\n",
"# Instantiate tally Trigger for kicks\n",
"trigger = openmc.Trigger(trigger_type='std_dev', threshold=5e-5)\n",
"trigger.scores = ['absorption']\n",
"\n",
"# Instantiate the Tally\n",
"tally = openmc.Tally(name='distribcell tally')\n",
"tally.filters = [distribcell_filter]\n",
"tally.scores = ['absorption', 'scatter']\n",
"tally.triggers = [trigger]\n",
"\n",
"# Add mesh and tally to Tallies\n",
"tallies_file.append(tally)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Export to \"tallies.xml\"\n",
"tallies_file.export_to_xml()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we a have a complete set of inputs, so we can go ahead and run our simulation."
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
" %%%%%%%%%%%%%%%\n",
" %%%%%%%%%%%%%%%%%%%%%%%%\n",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n",
" %%%%%%%%%%%%%%%%%%%%%%%%\n",
" %%%%%%%%%%%%%%%%%%%%%%%%\n",
" ############### %%%%%%%%%%%%%%%%%%%%%%%%\n",
" ################## %%%%%%%%%%%%%%%%%%%%%%%\n",
" ################### %%%%%%%%%%%%%%%%%%%%%%%\n",
" #################### %%%%%%%%%%%%%%%%%%%%%%\n",
" ##################### %%%%%%%%%%%%%%%%%%%%%\n",
" ###################### %%%%%%%%%%%%%%%%%%%%\n",
" ####################### %%%%%%%%%%%%%%%%%%\n",
" ####################### %%%%%%%%%%%%%%%%%\n",
" ###################### %%%%%%%%%%%%%%%%%\n",
" #################### %%%%%%%%%%%%%%%%%\n",
" ################# %%%%%%%%%%%%%%%%%\n",
" ############### %%%%%%%%%%%%%%%%\n",
" ############ %%%%%%%%%%%%%%%\n",
" ######## %%%%%%%%%%%%%%\n",
" %%%%%%%%%%%\n",
"\n",
" | The OpenMC Monte Carlo Code\n",
" 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 | 57371d217a270b4013af4e33ca20b0053654b190\n",
" Date/Time | 2016-09-21 16:26:28\n",
" MPI Processes | 1\n",
"\n",
" ===========================================================================\n",
" ========================> INITIALIZATION <=========================\n",
" ===========================================================================\n",
"\n",
" Reading settings XML file...\n",
" Reading geometry XML file...\n",
" Reading cross sections XML file...\n",
" Reading materials XML file...\n",
" Reading U235 from /home/smharper/openmc/data/nndc_hdf5/U235.h5\n",
" Reading U238 from /home/smharper/openmc/data/nndc_hdf5/U238.h5\n",
" Reading O16 from /home/smharper/openmc/data/nndc_hdf5/O16.h5\n",
" Reading H1 from /home/smharper/openmc/data/nndc_hdf5/H1.h5\n",
" Reading B10 from /home/smharper/openmc/data/nndc_hdf5/B10.h5\n",
" Reading Zr90 from /home/smharper/openmc/data/nndc_hdf5/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",
" Initializing source particles...\n",
"\n",
" ===========================================================================\n",
" ====================> K EIGENVALUE SIMULATION <====================\n",
" ===========================================================================\n",
"\n",
" Bat./Gen. k Average k \n",
" ========= ======== ==================== \n",
" 1/1 0.55921 \n",
" 2/1 0.63816 \n",
" 3/1 0.68834 \n",
" 4/1 0.71192 \n",
" 5/1 0.67935 \n",
" 6/1 0.68274 \n",
" 7/1 0.66339 0.67307 +/- 0.00967\n",
" 8/1 0.65835 0.66816 +/- 0.00743\n",
" 9/1 0.66697 0.66786 +/- 0.00527\n",
" 10/1 0.70498 0.67528 +/- 0.00847\n",
" 11/1 0.68596 0.67706 +/- 0.00714\n",
" 12/1 0.68481 0.67817 +/- 0.00614\n",
" 13/1 0.68369 0.67886 +/- 0.00536\n",
" 14/1 0.68785 0.67986 +/- 0.00483\n",
" 15/1 0.66145 0.67802 +/- 0.00470\n",
" 16/1 0.71831 0.68168 +/- 0.00561\n",
" 17/1 0.68428 0.68190 +/- 0.00512\n",
" 18/1 0.67527 0.68139 +/- 0.00474\n",
" 19/1 0.68166 0.68141 +/- 0.00439\n",
" 20/1 0.65475 0.67963 +/- 0.00446\n",
" Triggers unsatisfied, max unc./thresh. is 1.07581 for absorption in tally 10002\n",
" The estimated number of batches is 23\n",
" Creating state point statepoint.020.h5...\n",
" 21/1 0.64538 0.67749 +/- 0.00469\n",
" 22/1 0.73275 0.68074 +/- 0.00547\n",
" 23/1 0.71674 0.68274 +/- 0.00553\n",
" Triggers satisfied for batch 23\n",
" Creating state point statepoint.023.h5...\n",
"\n",
" ===========================================================================\n",
" ======================> SIMULATION FINISHED <======================\n",
" ===========================================================================\n",
"\n",
"\n",
" =======================> TIMING STATISTICS <=======================\n",
"\n",
" Total time for initialization = 3.1800E-01 seconds\n",
" Reading cross sections = 1.8300E-01 seconds\n",
" Total time in simulation = 1.1861E+01 seconds\n",
" Time in transport only = 1.1845E+01 seconds\n",
" Time in inactive batches = 2.1290E+00 seconds\n",
" Time in active batches = 9.7320E+00 seconds\n",
" Time synchronizing fission bank = 2.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 = 0.0000E+00 seconds\n",
" Total time elapsed = 1.2197E+01 seconds\n",
" Calculation Rate (inactive) = 5871.30 neutrons/second\n",
" Calculation Rate (active) = 3853.27 neutrons/second\n",
"\n",
" ============================> RESULTS <============================\n",
"\n",
" k-effective (Collision) = 0.67952 +/- 0.00434\n",
" k-effective (Track-length) = 0.68274 +/- 0.00553\n",
" k-effective (Absorption) = 0.68095 +/- 0.00369\n",
" Combined k-effective = 0.67994 +/- 0.00349\n",
" Leakage Fraction = 0.34133 +/- 0.00332\n",
"\n"
]
},
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Remove old HDF5 (summary, statepoint) files\n",
"!rm statepoint.*\n",
"\n",
"# Run OpenMC!\n",
"openmc.run()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Tally Data Processing"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# We do not know how many batches were needed to satisfy the \n",
"# tally trigger(s), so find the statepoint file(s)\n",
"statepoints = glob.glob('statepoint.*.h5')\n",
"\n",
"# Load the last statepoint file\n",
"sp = openmc.StatePoint(statepoints[-1])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Analyze the mesh fission rate tally**"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Tally\n",
"\tID =\t10000\n",
"\tName =\tmesh tally\n",
"\tFilters =\t\n",
" \t\tMeshFilter\t[1]\n",
" \t\tEnergyFilter\t[ 0.00000000e+00 6.25000000e-07 2.00000000e+01]\n",
"\tNuclides =\ttotal \n",
"\tScores =\t['fission', 'nu-fission']\n",
"\tEstimator =\ttracklength\n",
"\n"
]
}
],
"source": [
"# Find the mesh tally with the StatePoint API\n",
"tally = sp.get_tally(name='mesh tally')\n",
"\n",
"# Print a little info about the mesh tally to the screen\n",
"print(tally)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Use the new Tally data retrieval API with pure NumPy"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[[ 0.1501735 ]]\n",
"\n",
" [[ 0.21402727]]\n",
"\n",
" [[ 0.05936257]]\n",
"\n",
" [[ 0.13436703]]]\n"
]
}
],
"source": [
"# Get the relative error for the thermal fission reaction \n",
"# rates in the four corner pins \n",
"data = tally.get_values(scores=['fission'],\n",
" filters=[openmc.MeshFilter, openmc.EnergyFilter], \\\n",
" filter_bins=[((1,1),(1,17), (17,1), (17,17)), \\\n",
" ((0., 0.625e-6),)], value='rel_err')\n",
"print(data)"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/usr/local/lib/python3.5/dist-packages/numpy/lib/shape_base.py:873: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n",
" return c.reshape(shape_out)\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"3\" halign=\"left\">mesh 1</th>\n",
" <th>energy low [MeV]</th>\n",
" <th>energy high [MeV]</th>\n",
" <th>score</th>\n",
" <th>mean</th>\n",
" <th>std. dev.</th>\n",
" </tr>\n",
" <tr>\n",
" <th></th>\n",
" <th>x</th>\n",
" <th>y</th>\n",
" <th>z</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0.00e+00</td>\n",
" <td>6.25e-07</td>\n",
" <td>fission</td>\n",
" <td>2.20e-04</td>\n",
" <td>3.31e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0.00e+00</td>\n",
" <td>6.25e-07</td>\n",
" <td>nu-fission</td>\n",
" <td>5.37e-04</td>\n",
" <td>8.06e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>6.25e-07</td>\n",
" <td>2.00e+01</td>\n",
" <td>fission</td>\n",
" <td>7.43e-05</td>\n",
" <td>7.91e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>6.25e-07</td>\n",
" <td>2.00e+01</td>\n",
" <td>nu-fission</td>\n",
" <td>1.97e-04</td>\n",
" <td>1.96e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>0.00e+00</td>\n",
" <td>6.25e-07</td>\n",
" <td>fission</td>\n",
" <td>2.32e-04</td>\n",
" <td>4.97e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>0.00e+00</td>\n",
" <td>6.25e-07</td>\n",
" <td>nu-fission</td>\n",
" <td>5.65e-04</td>\n",
" <td>1.21e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>6.25e-07</td>\n",
" <td>2.00e+01</td>\n",
" <td>fission</td>\n",
" <td>6.96e-05</td>\n",
" <td>6.90e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>6.25e-07</td>\n",
" <td>2.00e+01</td>\n",
" <td>nu-fission</td>\n",
" <td>1.86e-04</td>\n",
" <td>1.90e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>0.00e+00</td>\n",
" <td>6.25e-07</td>\n",
" <td>fission</td>\n",
" <td>2.43e-04</td>\n",
" <td>3.24e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>0.00e+00</td>\n",
" <td>6.25e-07</td>\n",
" <td>nu-fission</td>\n",
" <td>5.91e-04</td>\n",
" <td>7.90e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>6.25e-07</td>\n",
" <td>2.00e+01</td>\n",
" <td>fission</td>\n",
" <td>7.27e-05</td>\n",
" <td>4.76e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>6.25e-07</td>\n",
" <td>2.00e+01</td>\n",
" <td>nu-fission</td>\n",
" <td>1.93e-04</td>\n",
" <td>1.14e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>0.00e+00</td>\n",
" <td>6.25e-07</td>\n",
" <td>fission</td>\n",
" <td>2.61e-04</td>\n",
" <td>4.48e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>0.00e+00</td>\n",
" <td>6.25e-07</td>\n",
" <td>nu-fission</td>\n",
" <td>6.35e-04</td>\n",
" <td>1.09e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>6.25e-07</td>\n",
" <td>2.00e+01</td>\n",
" <td>fission</td>\n",
" <td>6.00e-05</td>\n",
" <td>4.53e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>6.25e-07</td>\n",
" <td>2.00e+01</td>\n",
" <td>nu-fission</td>\n",
" <td>1.59e-04</td>\n",
" <td>1.17e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>1</td>\n",
" <td>5</td>\n",
" <td>1</td>\n",
" <td>0.00e+00</td>\n",
" <td>6.25e-07</td>\n",
" <td>fission</td>\n",
" <td>2.23e-04</td>\n",
" <td>2.89e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>1</td>\n",
" <td>5</td>\n",
" <td>1</td>\n",
" <td>0.00e+00</td>\n",
" <td>6.25e-07</td>\n",
" <td>nu-fission</td>\n",
" <td>5.43e-04</td>\n",
" <td>7.04e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>1</td>\n",
" <td>5</td>\n",
" <td>1</td>\n",
" <td>6.25e-07</td>\n",
" <td>2.00e+01</td>\n",
" <td>fission</td>\n",
" <td>7.93e-05</td>\n",
" <td>7.77e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>1</td>\n",
" <td>5</td>\n",
" <td>1</td>\n",
" <td>6.25e-07</td>\n",
" <td>2.00e+01</td>\n",
" <td>nu-fission</td>\n",
" <td>2.07e-04</td>\n",
" <td>1.94e-05</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" mesh 1 energy low [MeV] energy high [MeV] score mean \\\n",
" x y z \n",
"0 1 1 1 0.00e+00 6.25e-07 fission 2.20e-04 \n",
"1 1 1 1 0.00e+00 6.25e-07 nu-fission 5.37e-04 \n",
"2 1 1 1 6.25e-07 2.00e+01 fission 7.43e-05 \n",
"3 1 1 1 6.25e-07 2.00e+01 nu-fission 1.97e-04 \n",
"4 1 2 1 0.00e+00 6.25e-07 fission 2.32e-04 \n",
"5 1 2 1 0.00e+00 6.25e-07 nu-fission 5.65e-04 \n",
"6 1 2 1 6.25e-07 2.00e+01 fission 6.96e-05 \n",
"7 1 2 1 6.25e-07 2.00e+01 nu-fission 1.86e-04 \n",
"8 1 3 1 0.00e+00 6.25e-07 fission 2.43e-04 \n",
"9 1 3 1 0.00e+00 6.25e-07 nu-fission 5.91e-04 \n",
"10 1 3 1 6.25e-07 2.00e+01 fission 7.27e-05 \n",
"11 1 3 1 6.25e-07 2.00e+01 nu-fission 1.93e-04 \n",
"12 1 4 1 0.00e+00 6.25e-07 fission 2.61e-04 \n",
"13 1 4 1 0.00e+00 6.25e-07 nu-fission 6.35e-04 \n",
"14 1 4 1 6.25e-07 2.00e+01 fission 6.00e-05 \n",
"15 1 4 1 6.25e-07 2.00e+01 nu-fission 1.59e-04 \n",
"16 1 5 1 0.00e+00 6.25e-07 fission 2.23e-04 \n",
"17 1 5 1 0.00e+00 6.25e-07 nu-fission 5.43e-04 \n",
"18 1 5 1 6.25e-07 2.00e+01 fission 7.93e-05 \n",
"19 1 5 1 6.25e-07 2.00e+01 nu-fission 2.07e-04 \n",
"\n",
" std. dev. \n",
" \n",
"0 3.31e-05 \n",
"1 8.06e-05 \n",
"2 7.91e-06 \n",
"3 1.96e-05 \n",
"4 4.97e-05 \n",
"5 1.21e-04 \n",
"6 6.90e-06 \n",
"7 1.90e-05 \n",
"8 3.24e-05 \n",
"9 7.90e-05 \n",
"10 4.76e-06 \n",
"11 1.14e-05 \n",
"12 4.48e-05 \n",
"13 1.09e-04 \n",
"14 4.53e-06 \n",
"15 1.17e-05 \n",
"16 2.89e-05 \n",
"17 7.04e-05 \n",
"18 7.77e-06 \n",
"19 1.94e-05 "
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Get a pandas dataframe for the mesh tally data\n",
"df = tally.get_pandas_dataframe(nuclides=False)\n",
"\n",
"# Set the Pandas float display settings\n",
"pd.options.display.float_format = '{:.2e}'.format\n",
"\n",
"# Print the first twenty rows in the dataframe\n",
"df.head(20)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nmVkp/R/reEAzQVSIxgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f2640187eb8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Create a boxplot to view the distribution of\n",
"# fission and nu-fission rates in the pins\n",
"bp = df.boxplot(column='mean', by='score')"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.colorbar.Colorbar at 0x7f263bef29e8>"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f263f7b3128>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Extract thermal nu-fission rates from pandas\n",
"fiss = df[df['score'] == 'nu-fission']\n",
"fiss = fiss[fiss['energy low [MeV]'] == 0.0]\n",
"\n",
"# Extract mean and reshape as 2D NumPy arrays\n",
"mean = fiss['mean'].reshape((17,17))\n",
"\n",
"plt.imshow(mean, interpolation='nearest')\n",
"plt.title('fission rate')\n",
"plt.xlabel('x')\n",
"plt.ylabel('y')\n",
"plt.colorbar()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Analyze the cell+nuclides scatter-y2 rate tally**"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Tally\n",
"\tID =\t10001\n",
"\tName =\tcell tally\n",
"\tFilters =\t\n",
" \t\tCellFilter\t[10000]\n",
"\tNuclides =\tU235 U238 \n",
"\tScores =\t['scatter-Y0,0', 'scatter-Y1,-1', 'scatter-Y1,0', 'scatter-Y1,1', 'scatter-Y2,-2', 'scatter-Y2,-1', 'scatter-Y2,0', 'scatter-Y2,1', 'scatter-Y2,2']\n",
"\tEstimator =\tanalog\n",
"\n"
]
}
],
"source": [
"# Find the cell Tally with the StatePoint API\n",
"tally = sp.get_tally(name='cell tally')\n",
"\n",
"# Print a little info about the cell tally to the screen\n",
"print(tally)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"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>cell</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>10000</td>\n",
" <td>U235</td>\n",
" <td>scatter-Y0,0</td>\n",
" <td>3.84e-02</td>\n",
" <td>1.32e-03</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>10000</td>\n",
" <td>U235</td>\n",
" <td>scatter-Y1,-1</td>\n",
" <td>3.61e-04</td>\n",
" <td>3.13e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>10000</td>\n",
" <td>U235</td>\n",
" <td>scatter-Y1,0</td>\n",
" <td>-2.38e-04</td>\n",
" <td>4.69e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>10000</td>\n",
" <td>U235</td>\n",
" <td>scatter-Y1,1</td>\n",
" <td>-5.08e-04</td>\n",
" <td>3.83e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>10000</td>\n",
" <td>U235</td>\n",
" <td>scatter-Y2,-2</td>\n",
" <td>6.68e-05</td>\n",
" <td>2.46e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>10000</td>\n",
" <td>U235</td>\n",
" <td>scatter-Y2,-1</td>\n",
" <td>6.47e-06</td>\n",
" <td>2.84e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>10000</td>\n",
" <td>U235</td>\n",
" <td>scatter-Y2,0</td>\n",
" <td>-1.41e-04</td>\n",
" <td>1.75e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>10000</td>\n",
" <td>U235</td>\n",
" <td>scatter-Y2,1</td>\n",
" <td>1.61e-04</td>\n",
" <td>2.33e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>10000</td>\n",
" <td>U235</td>\n",
" <td>scatter-Y2,2</td>\n",
" <td>-1.80e-05</td>\n",
" <td>1.97e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>10000</td>\n",
" <td>U238</td>\n",
" <td>scatter-Y0,0</td>\n",
" <td>2.33e+00</td>\n",
" <td>1.35e-02</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>10000</td>\n",
" <td>U238</td>\n",
" <td>scatter-Y1,-1</td>\n",
" <td>2.53e-02</td>\n",
" <td>3.23e-03</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>10000</td>\n",
" <td>U238</td>\n",
" <td>scatter-Y1,0</td>\n",
" <td>7.10e-04</td>\n",
" <td>2.92e-03</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>10000</td>\n",
" <td>U238</td>\n",
" <td>scatter-Y1,1</td>\n",
" <td>-2.49e-02</td>\n",
" <td>3.52e-03</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>10000</td>\n",
" <td>U238</td>\n",
" <td>scatter-Y2,-2</td>\n",
" <td>-1.43e-03</td>\n",
" <td>1.17e-03</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>10000</td>\n",
" <td>U238</td>\n",
" <td>scatter-Y2,-1</td>\n",
" <td>6.84e-04</td>\n",
" <td>1.63e-03</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>10000</td>\n",
" <td>U238</td>\n",
" <td>scatter-Y2,0</td>\n",
" <td>2.85e-03</td>\n",
" <td>2.63e-03</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>10000</td>\n",
" <td>U238</td>\n",
" <td>scatter-Y2,1</td>\n",
" <td>3.97e-03</td>\n",
" <td>2.24e-03</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>10000</td>\n",
" <td>U238</td>\n",
" <td>scatter-Y2,2</td>\n",
" <td>2.26e-03</td>\n",
" <td>1.85e-03</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" cell nuclide score mean std. dev.\n",
"0 10000 U235 scatter-Y0,0 3.84e-02 1.32e-03\n",
"1 10000 U235 scatter-Y1,-1 3.61e-04 3.13e-04\n",
"2 10000 U235 scatter-Y1,0 -2.38e-04 4.69e-04\n",
"3 10000 U235 scatter-Y1,1 -5.08e-04 3.83e-04\n",
"4 10000 U235 scatter-Y2,-2 6.68e-05 2.46e-04\n",
"5 10000 U235 scatter-Y2,-1 6.47e-06 2.84e-04\n",
"6 10000 U235 scatter-Y2,0 -1.41e-04 1.75e-04\n",
"7 10000 U235 scatter-Y2,1 1.61e-04 2.33e-04\n",
"8 10000 U235 scatter-Y2,2 -1.80e-05 1.97e-04\n",
"9 10000 U238 scatter-Y0,0 2.33e+00 1.35e-02\n",
"10 10000 U238 scatter-Y1,-1 2.53e-02 3.23e-03\n",
"11 10000 U238 scatter-Y1,0 7.10e-04 2.92e-03\n",
"12 10000 U238 scatter-Y1,1 -2.49e-02 3.52e-03\n",
"13 10000 U238 scatter-Y2,-2 -1.43e-03 1.17e-03\n",
"14 10000 U238 scatter-Y2,-1 6.84e-04 1.63e-03\n",
"15 10000 U238 scatter-Y2,0 2.85e-03 2.63e-03\n",
"16 10000 U238 scatter-Y2,1 3.97e-03 2.24e-03\n",
"17 10000 U238 scatter-Y2,2 2.26e-03 1.85e-03"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Get a pandas dataframe for the cell tally data\n",
"df = tally.get_pandas_dataframe()\n",
"\n",
"# Print the first twenty rows in the dataframe\n",
"df.head(100)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Use the new Tally data retrieval API with pure NumPy"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[[ 0.00185463 0.01350521]\n",
" [ 0.00019723 0.00131654]]]\n"
]
}
],
"source": [
"# Get the standard deviations for two of the spherical harmonic\n",
"# scattering reaction rates \n",
"data = tally.get_values(scores=['scatter-Y2,2', 'scatter-Y0,0'], \n",
" nuclides=['U238', 'U235'], value='std_dev')\n",
"print(data)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Analyze the distribcell tally**"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Tally\n",
"\tID =\t10002\n",
"\tName =\tdistribcell tally\n",
"\tFilters =\t\n",
" \t\tDistribcellFilter\t[10002]\n",
"\tNuclides =\ttotal \n",
"\tScores =\t['absorption', 'scatter']\n",
"\tEstimator =\ttracklength\n",
"\n"
]
}
],
"source": [
"# Find the distribcell Tally with the StatePoint API\n",
"tally = sp.get_tally(name='distribcell tally')\n",
"\n",
"# Print a little info about the distribcell tally to the screen\n",
"print(tally)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Use the new Tally data retrieval API with pure NumPy"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[[ 0.05468423]]]\n"
]
}
],
"source": [
"# Get the relative error for the scattering reaction rates in\n",
"# the first 10 distribcell instances \n",
"data = tally.get_values(scores=['scatter'], filters=[openmc.DistribcellFilter],\n",
" filter_bins=[(i,) for i in range(10)], value='rel_err')\n",
"print(data)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Print the distribcell tally dataframe"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"2\" halign=\"left\">level 1</th>\n",
" <th colspan=\"4\" halign=\"left\">level 2</th>\n",
" <th colspan=\"2\" halign=\"left\">level 3</th>\n",
" <th>distribcell</th>\n",
" <th>score</th>\n",
" <th>mean</th>\n",
" <th>std. dev.</th>\n",
" </tr>\n",
" <tr>\n",
" <th></th>\n",
" <th>univ</th>\n",
" <th>cell</th>\n",
" <th colspan=\"4\" halign=\"left\">lat</th>\n",
" <th>univ</th>\n",
" <th>cell</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" <tr>\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>id</th>\n",
" <th>id</th>\n",
" <th>x</th>\n",
" <th>y</th>\n",
" <th>z</th>\n",
" <th>id</th>\n",
" <th>id</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>558</th>\n",
" <td>0</td>\n",
" <td>10003</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>7</td>\n",
" <td>0</td>\n",
" <td>10000</td>\n",
" <td>10002</td>\n",
" <td>279</td>\n",
" <td>absorption</td>\n",
" <td>8.72e-05</td>\n",
" <td>8.13e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>559</th>\n",
" <td>0</td>\n",
" <td>10003</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>7</td>\n",
" <td>0</td>\n",
" <td>10000</td>\n",
" <td>10002</td>\n",
" <td>279</td>\n",
" <td>scatter</td>\n",
" <td>1.37e-02</td>\n",
" <td>6.98e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>560</th>\n",
" <td>0</td>\n",
" <td>10003</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>8</td>\n",
" <td>0</td>\n",
" <td>10000</td>\n",
" <td>10002</td>\n",
" <td>280</td>\n",
" <td>absorption</td>\n",
" <td>1.03e-04</td>\n",
" <td>9.17e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>561</th>\n",
" <td>0</td>\n",
" <td>10003</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>8</td>\n",
" <td>0</td>\n",
" <td>10000</td>\n",
" <td>10002</td>\n",
" <td>280</td>\n",
" <td>scatter</td>\n",
" <td>1.41e-02</td>\n",
" <td>6.26e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>562</th>\n",
" <td>0</td>\n",
" <td>10003</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>9</td>\n",
" <td>0</td>\n",
" <td>10000</td>\n",
" <td>10002</td>\n",
" <td>281</td>\n",
" <td>absorption</td>\n",
" <td>9.41e-05</td>\n",
" <td>8.40e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>563</th>\n",
" <td>0</td>\n",
" <td>10003</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>9</td>\n",
" <td>0</td>\n",
" <td>10000</td>\n",
" <td>10002</td>\n",
" <td>281</td>\n",
" <td>scatter</td>\n",
" <td>1.50e-02</td>\n",
" <td>6.92e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>564</th>\n",
" <td>0</td>\n",
" <td>10003</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>10</td>\n",
" <td>0</td>\n",
" <td>10000</td>\n",
" <td>10002</td>\n",
" <td>282</td>\n",
" <td>absorption</td>\n",
" <td>9.56e-05</td>\n",
" <td>1.03e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>565</th>\n",
" <td>0</td>\n",
" <td>10003</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>10</td>\n",
" <td>0</td>\n",
" <td>10000</td>\n",
" <td>10002</td>\n",
" <td>282</td>\n",
" <td>scatter</td>\n",
" <td>1.52e-02</td>\n",
" <td>5.37e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>566</th>\n",
" <td>0</td>\n",
" <td>10003</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>11</td>\n",
" <td>0</td>\n",
" <td>10000</td>\n",
" <td>10002</td>\n",
" <td>283</td>\n",
" <td>absorption</td>\n",
" <td>1.06e-04</td>\n",
" <td>1.49e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>567</th>\n",
" <td>0</td>\n",
" <td>10003</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>11</td>\n",
" <td>0</td>\n",
" <td>10000</td>\n",
" <td>10002</td>\n",
" <td>283</td>\n",
" <td>scatter</td>\n",
" <td>1.64e-02</td>\n",
" <td>8.14e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>568</th>\n",
" <td>0</td>\n",
" <td>10003</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>12</td>\n",
" <td>0</td>\n",
" <td>10000</td>\n",
" <td>10002</td>\n",
" <td>284</td>\n",
" <td>absorption</td>\n",
" <td>1.16e-04</td>\n",
" <td>9.02e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>569</th>\n",
" <td>0</td>\n",
" <td>10003</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>12</td>\n",
" <td>0</td>\n",
" <td>10000</td>\n",
" <td>10002</td>\n",
" <td>284</td>\n",
" <td>scatter</td>\n",
" <td>1.64e-02</td>\n",
" <td>6.00e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>570</th>\n",
" <td>0</td>\n",
" <td>10003</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>13</td>\n",
" <td>0</td>\n",
" <td>10000</td>\n",
" <td>10002</td>\n",
" <td>285</td>\n",
" <td>absorption</td>\n",
" <td>1.25e-04</td>\n",
" <td>1.12e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>571</th>\n",
" <td>0</td>\n",
" <td>10003</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>13</td>\n",
" <td>0</td>\n",
" <td>10000</td>\n",
" <td>10002</td>\n",
" <td>285</td>\n",
" <td>scatter</td>\n",
" <td>1.87e-02</td>\n",
" <td>8.26e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>572</th>\n",
" <td>0</td>\n",
" <td>10003</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>14</td>\n",
" <td>0</td>\n",
" <td>10000</td>\n",
" <td>10002</td>\n",
" <td>286</td>\n",
" <td>absorption</td>\n",
" <td>1.47e-04</td>\n",
" <td>1.49e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>573</th>\n",
" <td>0</td>\n",
" <td>10003</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>14</td>\n",
" <td>0</td>\n",
" <td>10000</td>\n",
" <td>10002</td>\n",
" <td>286</td>\n",
" <td>scatter</td>\n",
" <td>1.94e-02</td>\n",
" <td>7.71e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>574</th>\n",
" <td>0</td>\n",
" <td>10003</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>15</td>\n",
" <td>0</td>\n",
" <td>10000</td>\n",
" <td>10002</td>\n",
" <td>287</td>\n",
" <td>absorption</td>\n",
" <td>1.31e-04</td>\n",
" <td>9.84e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>575</th>\n",
" <td>0</td>\n",
" <td>10003</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>15</td>\n",
" <td>0</td>\n",
" <td>10000</td>\n",
" <td>10002</td>\n",
" <td>287</td>\n",
" <td>scatter</td>\n",
" <td>1.97e-02</td>\n",
" <td>7.93e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>576</th>\n",
" <td>0</td>\n",
" <td>10003</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>16</td>\n",
" <td>0</td>\n",
" <td>10000</td>\n",
" <td>10002</td>\n",
" <td>288</td>\n",
" <td>absorption</td>\n",
" <td>1.23e-04</td>\n",
" <td>1.07e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>577</th>\n",
" <td>0</td>\n",
" <td>10003</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>16</td>\n",
" <td>0</td>\n",
" <td>10000</td>\n",
" <td>10002</td>\n",
" <td>288</td>\n",
" <td>scatter</td>\n",
" <td>1.97e-02</td>\n",
" <td>7.34e-04</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" level 1 level 2 level 3 distribcell score \\\n",
" univ cell lat univ cell \n",
" id id id x y z id id \n",
"558 0 10003 10001 16 7 0 10000 10002 279 absorption \n",
"559 0 10003 10001 16 7 0 10000 10002 279 scatter \n",
"560 0 10003 10001 16 8 0 10000 10002 280 absorption \n",
"561 0 10003 10001 16 8 0 10000 10002 280 scatter \n",
"562 0 10003 10001 16 9 0 10000 10002 281 absorption \n",
"563 0 10003 10001 16 9 0 10000 10002 281 scatter \n",
"564 0 10003 10001 16 10 0 10000 10002 282 absorption \n",
"565 0 10003 10001 16 10 0 10000 10002 282 scatter \n",
"566 0 10003 10001 16 11 0 10000 10002 283 absorption \n",
"567 0 10003 10001 16 11 0 10000 10002 283 scatter \n",
"568 0 10003 10001 16 12 0 10000 10002 284 absorption \n",
"569 0 10003 10001 16 12 0 10000 10002 284 scatter \n",
"570 0 10003 10001 16 13 0 10000 10002 285 absorption \n",
"571 0 10003 10001 16 13 0 10000 10002 285 scatter \n",
"572 0 10003 10001 16 14 0 10000 10002 286 absorption \n",
"573 0 10003 10001 16 14 0 10000 10002 286 scatter \n",
"574 0 10003 10001 16 15 0 10000 10002 287 absorption \n",
"575 0 10003 10001 16 15 0 10000 10002 287 scatter \n",
"576 0 10003 10001 16 16 0 10000 10002 288 absorption \n",
"577 0 10003 10001 16 16 0 10000 10002 288 scatter \n",
"\n",
" mean std. dev. \n",
" \n",
" \n",
"558 8.72e-05 8.13e-06 \n",
"559 1.37e-02 6.98e-04 \n",
"560 1.03e-04 9.17e-06 \n",
"561 1.41e-02 6.26e-04 \n",
"562 9.41e-05 8.40e-06 \n",
"563 1.50e-02 6.92e-04 \n",
"564 9.56e-05 1.03e-05 \n",
"565 1.52e-02 5.37e-04 \n",
"566 1.06e-04 1.49e-05 \n",
"567 1.64e-02 8.14e-04 \n",
"568 1.16e-04 9.02e-06 \n",
"569 1.64e-02 6.00e-04 \n",
"570 1.25e-04 1.12e-05 \n",
"571 1.87e-02 8.26e-04 \n",
"572 1.47e-04 1.49e-05 \n",
"573 1.94e-02 7.71e-04 \n",
"574 1.31e-04 9.84e-06 \n",
"575 1.97e-02 7.93e-04 \n",
"576 1.23e-04 1.07e-05 \n",
"577 1.97e-02 7.34e-04 "
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Get a pandas dataframe for the distribcell tally data\n",
"df = tally.get_pandas_dataframe(nuclides=False)\n",
"\n",
"# Print the last twenty rows in the dataframe\n",
"df.tail(20)"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th>mean</th>\n",
" <th>std. dev.</th>\n",
" </tr>\n",
" <tr>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" <tr>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>2.89e+02</td>\n",
" <td>2.89e+02</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>4.16e-04</td>\n",
" <td>2.42e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>2.39e-04</td>\n",
" <td>1.03e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>1.90e-05</td>\n",
" <td>3.80e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>1.99e-04</td>\n",
" <td>1.61e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>4.09e-04</td>\n",
" <td>2.37e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>6.00e-04</td>\n",
" <td>3.08e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>9.07e-04</td>\n",
" <td>5.38e-05</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" mean std. dev.\n",
" \n",
" \n",
"count 2.89e+02 2.89e+02\n",
"mean 4.16e-04 2.42e-05\n",
"std 2.39e-04 1.03e-05\n",
"min 1.90e-05 3.80e-06\n",
"25% 1.99e-04 1.61e-05\n",
"50% 4.09e-04 2.37e-05\n",
"75% 6.00e-04 3.08e-05\n",
"max 9.07e-04 5.38e-05"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Show summary statistics for absorption distribcell tally data\n",
"absorption = df[df['score'] == 'absorption']\n",
"absorption[['mean', 'std. dev.']].dropna().describe()\n",
"\n",
"# Note that the maximum standard deviation does indeed\n",
"# meet the 5e-4 threshold set by the tally trigger"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Perform a statistical test comparing the tally sample distributions for two categories of fuel pins."
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mann-Whitney Test p-value: 0.7234916721800682\n"
]
}
],
"source": [
"# Extract tally data from pins in the pins divided along y=x diagonal \n",
"multi_index = ('level 2', 'lat',)\n",
"lower = df[df[multi_index + ('x',)] + df[multi_index + ('y',)] < 16]\n",
"upper = df[df[multi_index + ('x',)] + df[multi_index + ('y',)] > 16]\n",
"lower = lower[lower['score'] == 'absorption']\n",
"upper = upper[upper['score'] == 'absorption']\n",
"\n",
"# Perform non-parametric Mann-Whitney U Test to see if the \n",
"# absorption rates (may) come from same sampling distribution\n",
"u, p = scipy.stats.mannwhitneyu(lower['mean'], upper['mean'])\n",
"print('Mann-Whitney Test p-value: {0}'.format(p))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that the symmetry implied by the y=x diagonal ensures that the two sampling distributions are identical. Indeed, as illustrated by the test above, for any reasonable significance level (*e.g.*, $\\alpha$=0.05) one would **not reject** the null hypothesis that the two sampling distributions are identical.\n",
"\n",
"Next, perform the same test but with two groupings of pins which are not symmetrically identical to one another."
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mann-Whitney Test p-value: 3.5054120724573393e-41\n"
]
}
],
"source": [
"# Extract tally data from pins in the pins divided along y=-x diagonal\n",
"multi_index = ('level 2', 'lat',)\n",
"lower = df[df[multi_index + ('x',)] > df[multi_index + ('y',)]]\n",
"upper = df[df[multi_index + ('x',)] < df[multi_index + ('y',)]]\n",
"lower = lower[lower['score'] == 'absorption']\n",
"upper = upper[upper['score'] == 'absorption']\n",
"\n",
"# Perform non-parametric Mann-Whitney U Test to see if the \n",
"# absorption rates (may) come from same sampling distribution\n",
"u, p = scipy.stats.mannwhitneyu(lower['mean'], upper['mean'])\n",
"print('Mann-Whitney Test p-value: {0}'.format(p))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that the asymmetry implied by the y=-x diagonal ensures that the two sampling distributions are *not* identical. Indeed, as illustrated by the test above, for any reasonable significance level (*e.g.*, $\\alpha$=0.05) one would **reject** the null hypothesis that the two sampling distributions are identical."
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/usr/local/lib/python3.5/dist-packages/ipykernel/__main__.py:4: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f263be8af60>"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nD382glnnrnD3SzOOvR+4zN2vmOg5zawH2LFjxw56enomelsiIiLTxs6dO1m0aBHAInff2ajrtFpL\nDsAngKvNbAewjWBk1GHA1QBmdi3wE3d/X/jzDGABYMCTgGea2QnAr9x9T55zioiISOtpuSDH3b8U\nzl9zMUGX0t1An7s/HBZ5FvBE5JBnAHcBxSard4bbrUBvznOKiIhIi2m5IAfA3a8Erkx5rTf284/I\nMVS+2jlFRESk9bTUPDkiIiIieSnIERERkbakIEdERETakoIcERERaUsKckRERKQtKcgRERGRtqQg\nR0RERNqSghwRERFpSwpyREREpC0pyBEREZG2pCBHRERE2pKCHBEREWlLCnJERESkLSnIERERkbZ0\nyFRXQNpfoVBgz549HHvssXR3d091dUREZJpQS440zOjoKKef/nLmz59Pf38/8+bN4/TTX86jjz46\n1VUTEZFpQEGOTFihUGDz5s2MjIyU7T/rrDVs3XoHsBF4ENjI1q13MDBwzlRUU0REphl1V8m4jY6O\nctZZaxgeHjq4r6+vn8HBjTz88MPh/o3A2eGrZzM25gwPr2FkZERdVyIi0lBqyZFxq9ZSs2fPnrDU\nithRKwHYvXv35FVURESmJQU5Mi6FQoHh4SHGxq4gaKl5NkFLzeUMDw/R2dkZlrwtduStABx77LGT\nV1kREZmWFOTIuGS11IyNjdHX109n51qClp4fAxvp7Dyfvr5+dVWJiEjDKciRcTnmmGPC/0pvqRkc\n3MiqVUuBNcBzgDWsWrWUwcGNk1dRERGZtpR4LOMyb948+vr62bp1LWNjTtCCcyudneezalWppeaK\nKy7jttteBcDKlSvVgiMiIpNGQY6M2+DgRgYGzmF4eM3BfatWBaOrqo286urqOrhPEwWKiEijqLtK\nxq2rq4stW26iUCgwNDREoVBgy5ab6OrqypwjRxMFiohIo6klRyasu7u7rBWmOPKq2hw555339kgQ\ntAK4ja1b1zIwcA5bttw06fcgIiLtR0GO1F3WyKtbbrlFEwWKiEjDqbtK6i5r5JWZhT9rokAREWkc\nBTlSd8WRV2lz5KxYUQxuNFGgiIg0joIcaYhqc+RkBUHqqhIRkXpQTo40RHHk1cjICLt3764YIl5t\n+LmIiEg9KMiRhoqPvCrKCoJEREQmSt1VMqXcfaqrICIibUpBjkwJTQYoIiKN1pJBjpmda2b3m9nj\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f263bf69358>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Extract the scatter tally data from pandas\n",
"scatter = df[df['score'] == 'scatter']\n",
"\n",
"scatter['rel. err.'] = scatter['std. dev.'] / scatter['mean']\n",
"\n",
"# Show a scatter plot of the mean vs. the std. dev.\n",
"scatter.plot(kind='scatter', x='mean', y='rel. err.', title='Scattering Rates')"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f263be1edd8>"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nGjWKpk2bsnTpUl544QWWLVvG/PnzjzjG9ddfT+fOnXniiSf48MMP+dOf/kSjRo144YUX6Nu3L08+\n+SRvvPEGDz74IN27d+fCCy8M5tKHl3Ou2i14UdylpaU5kWiXlpbmAAdpDlyJxdumr/Wa4eDXQsn/\n76N/jYRzqdzX48SJE52ZHXU544wzDu3fpk0bN3LkyEOfn3XWWe7KK6886jnuvvtuFxMTc8T6adOm\nOTNzjz/++GHrhwwZ4mJjY92qVaucc86lp6c7M3MPPPDAYfuNHDnSxcTEuMcee+zQujFjxjgzcykp\nKUecLz8//4h1kydPdjExMW7u3LlHHOPOO+88tK6wsNCdfPLJLjY21j311FOH1m/fvt3Fx8cfdk1K\nU9bXUcntQLKrwt/VugUjIiIRw8x4/vnnmT179hFLly5djvrahg0bsnTpUn788ccKn3fGjBnUqlWL\ne+6557D1DzzwAEVFRcyYMePQfmbGnXfeedh+99xzT6n9S8yM22+//Yj1derUOfTvgoICtmzZQo8e\nPXDOkZ6efsQxbr755kOfx8TEcM455+CcO+wWVEJCAp06dWLVqlUVeOf+0S0YERGJKN26dSv1MdwT\nTjjhiFszxY0dO5ZBgwbRsWNHTj/9dAYMGMBNN93EGWecccxzrl27lubNm1OvXr3D1iclJR3aDt4T\nRzExMbRt2/aw/Tp06FDmsUvuC7Bt2zbGjBnDv//9bzZv3nxovZmxY8eOI/Yv2ak3ISGBuLg4GjVq\ndMT6kv1IIpVaQEREpFro2bMnK1euZMKECZxxxhm8/PLLJCcn88orr/haV926dY9YN2TIEF5++WXu\nuusupk6dyqxZs5g5cybOOYqKio7Yv3hn2aOtA/+f9CkvBRAREak2GjZsyPDhw3njjTdYt24dXbp0\nYcyYMYe2lzXOSOvWrcnJyWHPnj2Hrc/IyAC8J24O7ldUVMTq1asP2++HH34od43bt2/n008/5be/\n/S2PPPIIV111FX379i21paQ6UwAREZFqoeSth/j4eDp06EBBQcGhdQdvsezcufOwfS+//HIOHDjA\nP//5z8PWjxs3jpiYGAYMGABA//79cc4depz3oH/84x/lHpX1YMtFyZaOcePGVXhk12imPiAiIhIx\nKnP7oHPnzvTu3ZuuXbvSqFEjFi5cyJQpU7j33nsP7dO1a1ecc9xzzz3079+f2NhYrr/+eq688kou\nvvhiHnroIVavXn3oMdz333+f0aNHH2qdSE5OZvDgwTz77LPk5uZy7rnnMmfOnEMtIOUJEMcffzy9\nevXiySefZN++fbRo0YKPP/6YNWvWRM3tk1BQABERqTYyov78x/oFXny7mR32+X333cd7773HrFmz\nKCgooHXr1vz5z3/m17/+9aF9rrnmGu69914mT558aCyQ66+/HjPj/fff55FHHuHf//43EydOpE2b\nNvz1r39l9OjRh9Xw+uuv06xZM1JTU5k2bRr9+vXj3//+Nx07diQuLq5c7zM1NZV77rmH8ePH45yj\nf//+zJgxg+bNm5e7FaSs/aKmFaUqn/H1a0HjgEg1onFA5KCyxm9Yu3ati4uLPzh2g69LXFy8W7t2\nrU9XyD/ffPONMzP35ptv+l3KMUXKOCBqARERiXKtWrUiMzMj6mfDjRb5+flHtHQ8++yzxMbG0qtX\nL5+qij4KICIi1UCrVq2q/S/+SPHkk0+SlpbGxRdfTK1atZg+fTozZ87k9ttvp0WLFn6XFzUUQERE\nRCrg/PPPZ/bs2fzxj39k9+7dtGrViscee4zf/e53fpcWVRRAREREKuCSSy7hkksu8buMqKdxQERE\nRCTs1AIiEkGysrKO6Eh4cCTGUB0PakZHQRGJbAogIhEiKyuLTp2SyM/Pq/LjxcXFk5mZoRAiIr5R\nABGJELm5uYGwMAlIKrZlOvD7EB4vg/z8FHJzcxVARMQ3CiAiEScJbyy9gyo7umTJ40m0q8xtOZFI\n+fpRABERiRKJiYnEx8eTkpLidykS5eLj40lMTPS1BgUQEZEo0apVKzIyImPEU4lukdARXQFERCSK\naMRTqS40DoiIiIiEnQKIiIiIhJ0CiIiIiIRdRAQQM+tpZu+ZWbaZFZnZwBLbJwTWF1+m+1WviIiI\nVE5EBBCgHvAtcBfgythnBtAEaBpYhoanNBEREQm1iHgKxjn3EfARgJlZGbsVOOd+Cl9VIiIiUlUi\npQWkPHqb2SYzW25m482skd8FiYiISHAiogWkHGYA/wFWA+2Bx4HpZnaec66sWzYiIiISoaIigDjn\n3ir26VIzWwKsBHoDn/lSlEgNlJWVVeoonJEwqqKIRJeoCCAlOedWm1ku0IGjBJDRo0eTkJBw2Lqh\nQ4cydKj6r4pUVFZWFp06JQVm2D1cXFw8mZkZCiEiUSY1NZXU1NTD1u3YsSMs547KAGJmLYETgQ1H\n22/cuHEkJ2sWUJFQyM3NDYSPSXgz7B6UQX5+Crm5uQogIlGmtD/K09PT6dq1a5WfOyICiJnVw2vN\nOPgETDszOxPYGlgexesDsjGw3xPACmBm+KsVqemSAAV7EamciAggwDl4t1JcYHk6sP5VvLFBugDD\ngIZADl7weMQ5tz/8pYqIiEhlRUQAcc7N4eiPBA8IVy0iIiJS9aJpHBARERGpJhRAREREJOwUQERE\nRCTsFEBEREQk7BRAREREJOwUQERERCTsFEBEREQk7BRAREREJOwUQERERCTsFEBEREQk7CJiKHYR\nCb+MjIxS1ycmJoZ0VtusrCxyc3NL3VZQUECdOnWqvIZodrTrp+sk0UwBRKTG2QDEkJKSUurWuLh4\nMjMzQvKLLSsri06dksjPzytjj1igsEpriGbHun66ThLNFEBEapztQBEwCUgqsS2D/PwUcnNzQ/JL\nLTc3N/DLs7RzTQd+X8q20NYQzY5+/XSdJLopgIjUWElAso/nyjjKNjmcrpFUP+qEKiIiImGnACIi\nIiJhpwAiIiIiYacAIiIiImGnACIiIiJhpwAiIiIiYacAIiIiImGnACIiIiJhpwAiIiIiYacAIiIi\nImGnACIiIiJhp7lgRCQiZWRklLo+mCnoQz2lfaiPJ1ITKYCISITZAMSQkpJS6taKTkEf6intQ308\nkZpKAUREIsx2oIhQTUEf6intQ308kZpKAUREIlSop6CP9OOJ1CzqhCoiIiJhpwAiIiIiYacAIiIi\nImGnACIiIiJhpwAiIiIiYacAIiIiImGnACIiIiJhpwAiIiIiYacAIiIiImGnACIiIiJhpwAiIiIi\nYacAIiIiImGnyehEqoGMjIxyrRN/ZWVlkZube8T6xMREzZ4rNY4CiEhU2wDEkJKS4nchcgxZWVl0\n6pREfn7eEdvi4uLJzMxQCJEaRQFEJKptB4qASXjTwxc3Hfh92CuS0uXm5gbCR8n/qwzy81PIzc1V\nAJEaRQFEpFpIApJLrNMtmMhU2v+VSM2jTqgiIiISdgogIiIiEnYKICIiIhJ2CiAiIiISdkEFEDNr\nF+pCREREpOYItgXkRzP7zMxSzCwupBWJiIhItRdsAEkGFgPPABvN7AUz6x66skSkUhIzoOsn0Afo\n+0/oNh6apYEV+l2ZiAgQ5DggzrlvgfvM7AFgIDACmGtmK4BXgNedcz+FrEoRKZ+T58Elv4HWc6Eo\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f263be1e1d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Plot a histogram and kernel density estimate for the scattering rates\n",
"scatter['mean'].plot(kind='hist', bins=25)\n",
"scatter['mean'].plot(kind='kde')\n",
"plt.title('Scattering Rates')\n",
"plt.xlabel('Mean')\n",
"plt.legend(['KDE', 'Histogram'])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"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
}