OpenMC/docs/source/pythonapi/examples/pandas-dataframes.ipynb
2016-04-08 12:26:02 -04:00

2451 lines
135 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": [
"import glob\n",
"from IPython.display import Image\n",
"import matplotlib.pylab as pylab\n",
"import scipy.stats\n",
"import numpy as np\n",
"\n",
"import openmc\n",
"\n",
"%matplotlib inline"
]
},
{
"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('H-1')\n",
"b10 = openmc.Nuclide('B-10')\n",
"o16 = openmc.Nuclide('O-16')\n",
"u235 = openmc.Nuclide('U-235')\n",
"u238 = openmc.Nuclide('U-238')\n",
"zr90 = openmc.Nuclide('Zr-90')"
]
},
{
"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 MaterialsFile, add Materials\n",
"materials_file = openmc.MaterialsFile()\n",
"materials_file.add_material(fuel)\n",
"materials_file.add_material(water)\n",
"materials_file.add_material(zircaloy)\n",
"materials_file.default_xs = '71c'\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.dimension = (17, 17)\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, put the geometry into a `GeometryFile` object, 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": [
"# Instantiate a GeometryFile\n",
"geometry_file = openmc.GeometryFile()\n",
"geometry_file.geometry = geometry\n",
"\n",
"# Export to \"geometry.xml\"\n",
"geometry_file.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 SettingsFile\n",
"settings_file = openmc.SettingsFile()\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 PlotsFile, add Plot, and export to \"plots.xml\"\n",
"plot_file = openmc.PlotsFile()\n",
"plot_file.add_plot(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",
"executor = openmc.Executor()\n",
"executor.plot_geometry(output=False)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AECBABF2xKKPsAAAPZSURBVGje7Zs7buMwEIZ9iey5\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+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA0LTA4VDEyOjAxOjIzLTA0OjAwqpTBSwAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNC0wOFQxMjowMToyMy0wNDowMNvJefcAAAAASUVORK5C\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 TalliesFile\n",
"tallies_file = openmc.TalliesFile()\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.Filter()\n",
"mesh_filter.mesh = mesh\n",
"\n",
"# Instantiate energy Filter\n",
"energy_filter = openmc.Filter()\n",
"energy_filter.type = 'energy'\n",
"energy_filter.bins = np.array([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 TalliesFile\n",
"tallies_file.add_mesh(mesh)\n",
"tallies_file.add_tally(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.Filter(type='cell', bins=[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 TalliesFile\n",
"tallies_file.add_tally(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.Filter(type='distribcell', bins=[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 TalliesFile\n",
"tallies_file.add_tally(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",
" .d88888b. 888b d888 .d8888b.\n",
" d88P\" \"Y88b 8888b d8888 d88P Y88b\n",
" 888 888 88888b.d88888 888 888\n",
" 888 888 88888b. .d88b. 88888b. 888Y88888P888 888 \n",
" 888 888 888 \"88b d8P Y8b 888 \"88b 888 Y888P 888 888 \n",
" 888 888 888 888 88888888 888 888 888 Y8P 888 888 888\n",
" Y88b. .d88P 888 d88P Y8b. 888 888 888 \" 888 Y88b d88P\n",
" \"Y88888P\" 88888P\" \"Y8888 888 888 888 888 \"Y8888P\"\n",
"__________________888______________________________________________________\n",
" 888\n",
" 888\n",
"\n",
" Copyright: 2011-2015 Massachusetts Institute of Technology\n",
" License: http://mit-crpg.github.io/openmc/license.html\n",
" Version: 0.7.1\n",
" Git SHA1: 9a6ecd72597338b40d2b72378e5ad6dd65df2364\n",
" Date/Time: 2016-04-08 12:01:24\n",
" MPI Processes: 1\n",
"\n",
" ===========================================================================\n",
" ========================> INITIALIZATION <=========================\n",
" ===========================================================================\n",
"\n",
" Reading settings XML file...\n",
" Reading cross sections XML file...\n",
" Reading geometry XML file...\n",
" Reading materials XML file...\n",
" Reading tallies XML file...\n",
" Building neighboring cells lists for each surface...\n",
" Loading ACE cross section table: 92235.71c\n",
" Loading ACE cross section table: 92238.71c\n",
" Loading ACE cross section table: 8016.71c\n",
" Loading ACE cross section table: 1001.71c\n",
" Loading ACE cross section table: 5010.71c\n",
" Loading ACE cross section table: 40090.71c\n",
" Maximum neutron transport energy: 20.0000 MeV for 92235.71c\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 = 5.4700E-01 seconds\n",
" Reading cross sections = 1.4200E-01 seconds\n",
" Total time in simulation = 1.4279E+01 seconds\n",
" Time in transport only = 1.4263E+01 seconds\n",
" Time in inactive batches = 2.3020E+00 seconds\n",
" Time in active batches = 1.1977E+01 seconds\n",
" Time synchronizing fission bank = 1.0000E-03 seconds\n",
" Sampling source sites = 1.0000E-03 seconds\n",
" SEND/RECV source sites = 0.0000E+00 seconds\n",
" Time accumulating tallies = 1.0000E-03 seconds\n",
" Total time for finalization = 0.0000E+00 seconds\n",
" Total time elapsed = 1.4854E+01 seconds\n",
" Calculation Rate (inactive) = 5430.06 neutrons/second\n",
" Calculation Rate (active) = 3131.00 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 with MPI!\n",
"executor.run_simulation()"
]
},
{
"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": "code",
"execution_count": 22,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [],
"source": [
"# Load the summary file and link with statepoint\n",
"su = openmc.Summary('summary.h5')\n",
"sp.link_with_summary(su)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Analyze the mesh fission rate tally**"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Tally\n",
"\tID =\t10000\n",
"\tName =\tmesh tally\n",
"\tFilters =\t\n",
" \t\tmesh\t[1]\n",
" \t\tenergy\t[ 0.00000000e+00 6.25000000e-07 2.00000000e+01]\n",
"\tNuclides =\ttotal \n",
"\tScores =\t[u'fission', u'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": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[[ 0.1508711 ]]\n",
"\n",
" [[ 0.05389822]]\n",
"\n",
" [[ 0.19633 ]]\n",
"\n",
" [[ 0.12963172]]]\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'], filters=['mesh', 'energy'], \\\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": 25,
"metadata": {
"collapsed": false
},
"outputs": [
{
"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.34e-04</td>\n",
" <td>3.54e-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.71e-04</td>\n",
" <td>8.62e-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.03e-05</td>\n",
" <td>7.05e-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.87e-04</td>\n",
" <td>1.76e-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>3.67e-04</td>\n",
" <td>3.61e-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>8.94e-04</td>\n",
" <td>8.80e-05</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>1.04e-04</td>\n",
" <td>5.36e-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>2.76e-04</td>\n",
" <td>1.40e-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>6.04e-04</td>\n",
" <td>5.57e-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>1.47e-03</td>\n",
" <td>1.36e-04</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>1.41e-04</td>\n",
" <td>6.69e-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>3.72e-04</td>\n",
" <td>1.82e-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>6.45e-04</td>\n",
" <td>4.59e-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>1.57e-03</td>\n",
" <td>1.12e-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>1.82e-04</td>\n",
" <td>9.37e-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>4.76e-04</td>\n",
" <td>2.47e-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>7.28e-04</td>\n",
" <td>7.49e-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>1.77e-03</td>\n",
" <td>1.83e-04</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>1.81e-04</td>\n",
" <td>1.04e-05</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>4.72e-04</td>\n",
" <td>2.67e-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.34e-04 \n",
"1 1 1 1 0.00e+00 6.25e-07 nu-fission 5.71e-04 \n",
"2 1 1 1 6.25e-07 2.00e+01 fission 7.03e-05 \n",
"3 1 1 1 6.25e-07 2.00e+01 nu-fission 1.87e-04 \n",
"4 1 2 1 0.00e+00 6.25e-07 fission 3.67e-04 \n",
"5 1 2 1 0.00e+00 6.25e-07 nu-fission 8.94e-04 \n",
"6 1 2 1 6.25e-07 2.00e+01 fission 1.04e-04 \n",
"7 1 2 1 6.25e-07 2.00e+01 nu-fission 2.76e-04 \n",
"8 1 3 1 0.00e+00 6.25e-07 fission 6.04e-04 \n",
"9 1 3 1 0.00e+00 6.25e-07 nu-fission 1.47e-03 \n",
"10 1 3 1 6.25e-07 2.00e+01 fission 1.41e-04 \n",
"11 1 3 1 6.25e-07 2.00e+01 nu-fission 3.72e-04 \n",
"12 1 4 1 0.00e+00 6.25e-07 fission 6.45e-04 \n",
"13 1 4 1 0.00e+00 6.25e-07 nu-fission 1.57e-03 \n",
"14 1 4 1 6.25e-07 2.00e+01 fission 1.82e-04 \n",
"15 1 4 1 6.25e-07 2.00e+01 nu-fission 4.76e-04 \n",
"16 1 5 1 0.00e+00 6.25e-07 fission 7.28e-04 \n",
"17 1 5 1 0.00e+00 6.25e-07 nu-fission 1.77e-03 \n",
"18 1 5 1 6.25e-07 2.00e+01 fission 1.81e-04 \n",
"19 1 5 1 6.25e-07 2.00e+01 nu-fission 4.72e-04 \n",
"\n",
" std. dev. \n",
" \n",
"0 3.54e-05 \n",
"1 8.62e-05 \n",
"2 7.05e-06 \n",
"3 1.76e-05 \n",
"4 3.61e-05 \n",
"5 8.80e-05 \n",
"6 5.36e-06 \n",
"7 1.40e-05 \n",
"8 5.57e-05 \n",
"9 1.36e-04 \n",
"10 6.69e-06 \n",
"11 1.82e-05 \n",
"12 4.59e-05 \n",
"13 1.12e-04 \n",
"14 9.37e-06 \n",
"15 2.47e-05 \n",
"16 7.49e-05 \n",
"17 1.83e-04 \n",
"18 1.04e-05 \n",
"19 2.67e-05 "
]
},
"execution_count": 25,
"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",
"import pandas as pd\n",
"pd.set_option('display.float_format', '{:.2e}'.format)\n",
"\n",
"# Print the first twenty rows in the dataframe\n",
"df.head(20)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f0ce58b4d10>"
]
},
"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": 27,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.colorbar.Colorbar at 0x7f0cdaf3ec50>"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f0ce5866f10>"
]
},
"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",
"pylab.imshow(mean, interpolation='nearest')\n",
"pylab.title('fission rate')\n",
"pylab.xlabel('x')\n",
"pylab.ylabel('y')\n",
"pylab.colorbar()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Analyze the cell+nuclides scatter-y2 rate tally**"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Tally\n",
"\tID =\t10001\n",
"\tName =\tcell tally\n",
"\tFilters =\t\n",
" \t\tcell\t[10000]\n",
"\tNuclides =\tU-235 U-238 \n",
"\tScores =\t[u'scatter-Y0,0', u'scatter-Y1,-1', u'scatter-Y1,0', u'scatter-Y1,1', u'scatter-Y2,-2', u'scatter-Y2,-1', u'scatter-Y2,0', u'scatter-Y2,1', u'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": 29,
"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>U-235</td>\n",
" <td>scatter-Y0,0</td>\n",
" <td>3.86e-02</td>\n",
" <td>1.11e-03</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>10000</td>\n",
" <td>U-235</td>\n",
" <td>scatter-Y1,-1</td>\n",
" <td>2.75e-04</td>\n",
" <td>2.96e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>10000</td>\n",
" <td>U-235</td>\n",
" <td>scatter-Y1,0</td>\n",
" <td>-5.55e-05</td>\n",
" <td>4.33e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>10000</td>\n",
" <td>U-235</td>\n",
" <td>scatter-Y1,1</td>\n",
" <td>-4.22e-04</td>\n",
" <td>3.51e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>10000</td>\n",
" <td>U-235</td>\n",
" <td>scatter-Y2,-2</td>\n",
" <td>5.88e-05</td>\n",
" <td>2.04e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>10000</td>\n",
" <td>U-235</td>\n",
" <td>scatter-Y2,-1</td>\n",
" <td>1.00e-04</td>\n",
" <td>2.49e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>10000</td>\n",
" <td>U-235</td>\n",
" <td>scatter-Y2,0</td>\n",
" <td>-8.09e-05</td>\n",
" <td>1.59e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>10000</td>\n",
" <td>U-235</td>\n",
" <td>scatter-Y2,1</td>\n",
" <td>1.93e-04</td>\n",
" <td>2.14e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>10000</td>\n",
" <td>U-235</td>\n",
" <td>scatter-Y2,2</td>\n",
" <td>1.12e-04</td>\n",
" <td>1.86e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>10000</td>\n",
" <td>U-238</td>\n",
" <td>scatter-Y0,0</td>\n",
" <td>2.34e+00</td>\n",
" <td>1.34e-02</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>10000</td>\n",
" <td>U-238</td>\n",
" <td>scatter-Y1,-1</td>\n",
" <td>2.32e-02</td>\n",
" <td>2.97e-03</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>10000</td>\n",
" <td>U-238</td>\n",
" <td>scatter-Y1,0</td>\n",
" <td>7.50e-04</td>\n",
" <td>2.55e-03</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>10000</td>\n",
" <td>U-238</td>\n",
" <td>scatter-Y1,1</td>\n",
" <td>-2.73e-02</td>\n",
" <td>3.28e-03</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>10000</td>\n",
" <td>U-238</td>\n",
" <td>scatter-Y2,-2</td>\n",
" <td>-2.36e-03</td>\n",
" <td>1.21e-03</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>10000</td>\n",
" <td>U-238</td>\n",
" <td>scatter-Y2,-1</td>\n",
" <td>-1.80e-04</td>\n",
" <td>1.49e-03</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>10000</td>\n",
" <td>U-238</td>\n",
" <td>scatter-Y2,0</td>\n",
" <td>3.23e-03</td>\n",
" <td>2.25e-03</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>10000</td>\n",
" <td>U-238</td>\n",
" <td>scatter-Y2,1</td>\n",
" <td>3.75e-03</td>\n",
" <td>1.97e-03</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>10000</td>\n",
" <td>U-238</td>\n",
" <td>scatter-Y2,2</td>\n",
" <td>2.07e-03</td>\n",
" <td>1.60e-03</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" cell nuclide score mean std. dev.\n",
"0 10000 U-235 scatter-Y0,0 3.86e-02 1.11e-03\n",
"1 10000 U-235 scatter-Y1,-1 2.75e-04 2.96e-04\n",
"2 10000 U-235 scatter-Y1,0 -5.55e-05 4.33e-04\n",
"3 10000 U-235 scatter-Y1,1 -4.22e-04 3.51e-04\n",
"4 10000 U-235 scatter-Y2,-2 5.88e-05 2.04e-04\n",
"5 10000 U-235 scatter-Y2,-1 1.00e-04 2.49e-04\n",
"6 10000 U-235 scatter-Y2,0 -8.09e-05 1.59e-04\n",
"7 10000 U-235 scatter-Y2,1 1.93e-04 2.14e-04\n",
"8 10000 U-235 scatter-Y2,2 1.12e-04 1.86e-04\n",
"9 10000 U-238 scatter-Y0,0 2.34e+00 1.34e-02\n",
"10 10000 U-238 scatter-Y1,-1 2.32e-02 2.97e-03\n",
"11 10000 U-238 scatter-Y1,0 7.50e-04 2.55e-03\n",
"12 10000 U-238 scatter-Y1,1 -2.73e-02 3.28e-03\n",
"13 10000 U-238 scatter-Y2,-2 -2.36e-03 1.21e-03\n",
"14 10000 U-238 scatter-Y2,-1 -1.80e-04 1.49e-03\n",
"15 10000 U-238 scatter-Y2,0 3.23e-03 2.25e-03\n",
"16 10000 U-238 scatter-Y2,1 3.75e-03 1.97e-03\n",
"17 10000 U-238 scatter-Y2,2 2.07e-03 1.60e-03"
]
},
"execution_count": 29,
"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": 30,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[[ 0.00159927 0.01341406]\n",
" [ 0.00018637 0.00111048]]]\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=['U-238', 'U-235'], value='std_dev')\n",
"print(data)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Analyze the distribcell tally**"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Tally\n",
"\tID =\t10002\n",
"\tName =\tdistribcell tally\n",
"\tFilters =\t\n",
" \t\tdistribcell\t[10002]\n",
"\tNuclides =\ttotal \n",
"\tScores =\t[u'absorption', u'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": 32,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[[ 0.05767856]]]\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=['distribcell'],\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 **without** OpenCG info"
]
},
{
"cell_type": "code",
"execution_count": 33,
"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>distribcell</th>\n",
" <th>score</th>\n",
" <th>mean</th>\n",
" <th>std. dev.</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>558</th>\n",
" <td>279</td>\n",
" <td>absorption</td>\n",
" <td>8.19e-05</td>\n",
" <td>7.82e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>559</th>\n",
" <td>279</td>\n",
" <td>scatter</td>\n",
" <td>1.33e-02</td>\n",
" <td>6.19e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>560</th>\n",
" <td>280</td>\n",
" <td>absorption</td>\n",
" <td>1.00e-04</td>\n",
" <td>7.93e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>561</th>\n",
" <td>280</td>\n",
" <td>scatter</td>\n",
" <td>1.40e-02</td>\n",
" <td>5.61e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>562</th>\n",
" <td>281</td>\n",
" <td>absorption</td>\n",
" <td>9.52e-05</td>\n",
" <td>7.08e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>563</th>\n",
" <td>281</td>\n",
" <td>scatter</td>\n",
" <td>1.51e-02</td>\n",
" <td>6.50e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>564</th>\n",
" <td>282</td>\n",
" <td>absorption</td>\n",
" <td>9.85e-05</td>\n",
" <td>9.47e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>565</th>\n",
" <td>282</td>\n",
" <td>scatter</td>\n",
" <td>1.53e-02</td>\n",
" <td>4.63e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>566</th>\n",
" <td>283</td>\n",
" <td>absorption</td>\n",
" <td>1.08e-04</td>\n",
" <td>1.34e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>567</th>\n",
" <td>283</td>\n",
" <td>scatter</td>\n",
" <td>1.65e-02</td>\n",
" <td>7.04e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>568</th>\n",
" <td>284</td>\n",
" <td>absorption</td>\n",
" <td>1.13e-04</td>\n",
" <td>7.91e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>569</th>\n",
" <td>284</td>\n",
" <td>scatter</td>\n",
" <td>1.67e-02</td>\n",
" <td>5.51e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>570</th>\n",
" <td>285</td>\n",
" <td>absorption</td>\n",
" <td>1.23e-04</td>\n",
" <td>9.53e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>571</th>\n",
" <td>285</td>\n",
" <td>scatter</td>\n",
" <td>1.88e-02</td>\n",
" <td>7.25e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>572</th>\n",
" <td>286</td>\n",
" <td>absorption</td>\n",
" <td>1.44e-04</td>\n",
" <td>1.34e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>573</th>\n",
" <td>286</td>\n",
" <td>scatter</td>\n",
" <td>1.90e-02</td>\n",
" <td>7.07e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>574</th>\n",
" <td>287</td>\n",
" <td>absorption</td>\n",
" <td>1.26e-04</td>\n",
" <td>8.66e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>575</th>\n",
" <td>287</td>\n",
" <td>scatter</td>\n",
" <td>1.97e-02</td>\n",
" <td>7.23e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>576</th>\n",
" <td>288</td>\n",
" <td>absorption</td>\n",
" <td>1.25e-04</td>\n",
" <td>9.59e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>577</th>\n",
" <td>288</td>\n",
" <td>scatter</td>\n",
" <td>2.01e-02</td>\n",
" <td>6.75e-04</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" distribcell score mean std. dev.\n",
"558 279 absorption 8.19e-05 7.82e-06\n",
"559 279 scatter 1.33e-02 6.19e-04\n",
"560 280 absorption 1.00e-04 7.93e-06\n",
"561 280 scatter 1.40e-02 5.61e-04\n",
"562 281 absorption 9.52e-05 7.08e-06\n",
"563 281 scatter 1.51e-02 6.50e-04\n",
"564 282 absorption 9.85e-05 9.47e-06\n",
"565 282 scatter 1.53e-02 4.63e-04\n",
"566 283 absorption 1.08e-04 1.34e-05\n",
"567 283 scatter 1.65e-02 7.04e-04\n",
"568 284 absorption 1.13e-04 7.91e-06\n",
"569 284 scatter 1.67e-02 5.51e-04\n",
"570 285 absorption 1.23e-04 9.53e-06\n",
"571 285 scatter 1.88e-02 7.25e-04\n",
"572 286 absorption 1.44e-04 1.34e-05\n",
"573 286 scatter 1.90e-02 7.07e-04\n",
"574 287 absorption 1.26e-04 8.66e-06\n",
"575 287 scatter 1.97e-02 7.23e-04\n",
"576 288 absorption 1.25e-04 9.59e-06\n",
"577 288 scatter 2.01e-02 6.75e-04"
]
},
"execution_count": 33,
"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": "markdown",
"metadata": {},
"source": [
"Print the distribcell tally dataframe **with** OpenCG info"
]
},
{
"cell_type": "code",
"execution_count": 34,
"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>cell</th>\n",
" <th>univ</th>\n",
" <th colspan=\"4\" halign=\"left\">lat</th>\n",
" <th>cell</th>\n",
" <th>univ</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>10003</td>\n",
" <td>0</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>9</td>\n",
" <td>0</td>\n",
" <td>10002</td>\n",
" <td>10000</td>\n",
" <td>279</td>\n",
" <td>absorption</td>\n",
" <td>8.19e-05</td>\n",
" <td>7.82e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>559</th>\n",
" <td>10003</td>\n",
" <td>0</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>9</td>\n",
" <td>0</td>\n",
" <td>10002</td>\n",
" <td>10000</td>\n",
" <td>279</td>\n",
" <td>scatter</td>\n",
" <td>1.33e-02</td>\n",
" <td>6.19e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>560</th>\n",
" <td>10003</td>\n",
" <td>0</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>8</td>\n",
" <td>0</td>\n",
" <td>10002</td>\n",
" <td>10000</td>\n",
" <td>280</td>\n",
" <td>absorption</td>\n",
" <td>1.00e-04</td>\n",
" <td>7.93e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>561</th>\n",
" <td>10003</td>\n",
" <td>0</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>8</td>\n",
" <td>0</td>\n",
" <td>10002</td>\n",
" <td>10000</td>\n",
" <td>280</td>\n",
" <td>scatter</td>\n",
" <td>1.40e-02</td>\n",
" <td>5.61e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>562</th>\n",
" <td>10003</td>\n",
" <td>0</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>7</td>\n",
" <td>0</td>\n",
" <td>10002</td>\n",
" <td>10000</td>\n",
" <td>281</td>\n",
" <td>absorption</td>\n",
" <td>9.52e-05</td>\n",
" <td>7.08e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>563</th>\n",
" <td>10003</td>\n",
" <td>0</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>7</td>\n",
" <td>0</td>\n",
" <td>10002</td>\n",
" <td>10000</td>\n",
" <td>281</td>\n",
" <td>scatter</td>\n",
" <td>1.51e-02</td>\n",
" <td>6.50e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>564</th>\n",
" <td>10003</td>\n",
" <td>0</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>6</td>\n",
" <td>0</td>\n",
" <td>10002</td>\n",
" <td>10000</td>\n",
" <td>282</td>\n",
" <td>absorption</td>\n",
" <td>9.85e-05</td>\n",
" <td>9.47e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>565</th>\n",
" <td>10003</td>\n",
" <td>0</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>6</td>\n",
" <td>0</td>\n",
" <td>10002</td>\n",
" <td>10000</td>\n",
" <td>282</td>\n",
" <td>scatter</td>\n",
" <td>1.53e-02</td>\n",
" <td>4.63e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>566</th>\n",
" <td>10003</td>\n",
" <td>0</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>5</td>\n",
" <td>0</td>\n",
" <td>10002</td>\n",
" <td>10000</td>\n",
" <td>283</td>\n",
" <td>absorption</td>\n",
" <td>1.08e-04</td>\n",
" <td>1.34e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>567</th>\n",
" <td>10003</td>\n",
" <td>0</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>5</td>\n",
" <td>0</td>\n",
" <td>10002</td>\n",
" <td>10000</td>\n",
" <td>283</td>\n",
" <td>scatter</td>\n",
" <td>1.65e-02</td>\n",
" <td>7.04e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>568</th>\n",
" <td>10003</td>\n",
" <td>0</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>10002</td>\n",
" <td>10000</td>\n",
" <td>284</td>\n",
" <td>absorption</td>\n",
" <td>1.13e-04</td>\n",
" <td>7.91e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>569</th>\n",
" <td>10003</td>\n",
" <td>0</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>10002</td>\n",
" <td>10000</td>\n",
" <td>284</td>\n",
" <td>scatter</td>\n",
" <td>1.67e-02</td>\n",
" <td>5.51e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>570</th>\n",
" <td>10003</td>\n",
" <td>0</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>10002</td>\n",
" <td>10000</td>\n",
" <td>285</td>\n",
" <td>absorption</td>\n",
" <td>1.23e-04</td>\n",
" <td>9.53e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>571</th>\n",
" <td>10003</td>\n",
" <td>0</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>10002</td>\n",
" <td>10000</td>\n",
" <td>285</td>\n",
" <td>scatter</td>\n",
" <td>1.88e-02</td>\n",
" <td>7.25e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>572</th>\n",
" <td>10003</td>\n",
" <td>0</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>10002</td>\n",
" <td>10000</td>\n",
" <td>286</td>\n",
" <td>absorption</td>\n",
" <td>1.44e-04</td>\n",
" <td>1.34e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>573</th>\n",
" <td>10003</td>\n",
" <td>0</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>10002</td>\n",
" <td>10000</td>\n",
" <td>286</td>\n",
" <td>scatter</td>\n",
" <td>1.90e-02</td>\n",
" <td>7.07e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>574</th>\n",
" <td>10003</td>\n",
" <td>0</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>10002</td>\n",
" <td>10000</td>\n",
" <td>287</td>\n",
" <td>absorption</td>\n",
" <td>1.26e-04</td>\n",
" <td>8.66e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>575</th>\n",
" <td>10003</td>\n",
" <td>0</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>10002</td>\n",
" <td>10000</td>\n",
" <td>287</td>\n",
" <td>scatter</td>\n",
" <td>1.97e-02</td>\n",
" <td>7.23e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>576</th>\n",
" <td>10003</td>\n",
" <td>0</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>10002</td>\n",
" <td>10000</td>\n",
" <td>288</td>\n",
" <td>absorption</td>\n",
" <td>1.25e-04</td>\n",
" <td>9.59e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>577</th>\n",
" <td>10003</td>\n",
" <td>0</td>\n",
" <td>10001</td>\n",
" <td>16</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>10002</td>\n",
" <td>10000</td>\n",
" <td>288</td>\n",
" <td>scatter</td>\n",
" <td>2.01e-02</td>\n",
" <td>6.75e-04</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" level 1 level 2 level 3 distribcell score \\\n",
" cell univ lat cell univ \n",
" id id id x y z id id \n",
"558 10003 0 10001 16 9 0 10002 10000 279 absorption \n",
"559 10003 0 10001 16 9 0 10002 10000 279 scatter \n",
"560 10003 0 10001 16 8 0 10002 10000 280 absorption \n",
"561 10003 0 10001 16 8 0 10002 10000 280 scatter \n",
"562 10003 0 10001 16 7 0 10002 10000 281 absorption \n",
"563 10003 0 10001 16 7 0 10002 10000 281 scatter \n",
"564 10003 0 10001 16 6 0 10002 10000 282 absorption \n",
"565 10003 0 10001 16 6 0 10002 10000 282 scatter \n",
"566 10003 0 10001 16 5 0 10002 10000 283 absorption \n",
"567 10003 0 10001 16 5 0 10002 10000 283 scatter \n",
"568 10003 0 10001 16 4 0 10002 10000 284 absorption \n",
"569 10003 0 10001 16 4 0 10002 10000 284 scatter \n",
"570 10003 0 10001 16 3 0 10002 10000 285 absorption \n",
"571 10003 0 10001 16 3 0 10002 10000 285 scatter \n",
"572 10003 0 10001 16 2 0 10002 10000 286 absorption \n",
"573 10003 0 10001 16 2 0 10002 10000 286 scatter \n",
"574 10003 0 10001 16 1 0 10002 10000 287 absorption \n",
"575 10003 0 10001 16 1 0 10002 10000 287 scatter \n",
"576 10003 0 10001 16 0 0 10002 10000 288 absorption \n",
"577 10003 0 10001 16 0 0 10002 10000 288 scatter \n",
"\n",
" mean std. dev. \n",
" \n",
" \n",
"558 8.19e-05 7.82e-06 \n",
"559 1.33e-02 6.19e-04 \n",
"560 1.00e-04 7.93e-06 \n",
"561 1.40e-02 5.61e-04 \n",
"562 9.52e-05 7.08e-06 \n",
"563 1.51e-02 6.50e-04 \n",
"564 9.85e-05 9.47e-06 \n",
"565 1.53e-02 4.63e-04 \n",
"566 1.08e-04 1.34e-05 \n",
"567 1.65e-02 7.04e-04 \n",
"568 1.13e-04 7.91e-06 \n",
"569 1.67e-02 5.51e-04 \n",
"570 1.23e-04 9.53e-06 \n",
"571 1.88e-02 7.25e-04 \n",
"572 1.44e-04 1.34e-05 \n",
"573 1.90e-02 7.07e-04 \n",
"574 1.26e-04 8.66e-06 \n",
"575 1.97e-02 7.23e-04 \n",
"576 1.25e-04 9.59e-06 \n",
"577 2.01e-02 6.75e-04 "
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Get a pandas dataframe for the distribcell tally data\n",
"df = tally.get_pandas_dataframe(summary=su, nuclides=False)\n",
"\n",
"# Print the last twenty rows in the dataframe\n",
"df.tail(20)"
]
},
{
"cell_type": "code",
"execution_count": 35,
"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.19e-04</td>\n",
" <td>2.24e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>2.42e-04</td>\n",
" <td>9.14e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>1.90e-05</td>\n",
" <td>3.44e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>2.02e-04</td>\n",
" <td>1.56e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>4.05e-04</td>\n",
" <td>2.20e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>6.07e-04</td>\n",
" <td>2.89e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>9.19e-04</td>\n",
" <td>4.95e-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.19e-04 2.24e-05\n",
"std 2.42e-04 9.14e-06\n",
"min 1.90e-05 3.44e-06\n",
"25% 2.02e-04 1.56e-05\n",
"50% 4.05e-04 2.20e-05\n",
"75% 6.07e-04 2.89e-05\n",
"max 9.19e-04 4.95e-05"
]
},
"execution_count": 35,
"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": 36,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mann-Whitney Test p-value: 0.607166663014\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 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": 37,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mann-Whitney Test p-value: 1.2077327566e-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',)] < 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 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": 38,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/wboyd/anaconda2/lib/python2.7/site-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 0x7f0cdaf19d10>"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nulZkiAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f0cdb64c650>"
]
},
"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": 39,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f0cdae10fd0>"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\ng/YIuXYBdJEAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f0cdae109d0>"
]
},
"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",
"pylab.title('Scattering Rates')\n",
"pylab.xlabel('Mean')\n",
"pylab.legend(['KDE', 'Histogram'])"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.11"
}
},
"nbformat": 4,
"nbformat_minor": 0
}