mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-23 19:45:34 -04:00
2416 lines
136 KiB
Text
2416 lines
136 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",
|
|
"from openmc.statepoint import StatePoint\n",
|
|
"from openmc.summary import Summary\n",
|
|
"from openmc.source import Source\n",
|
|
"from openmc.stats import Box\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, 'summary': True}\n",
|
|
"settings_file.trigger_active = True\n",
|
|
"settings_file.trigger_max_batches = max_batches\n",
|
|
"source_bounds = [-10.71, -10.71, -10, 10.71, 10.71, 10.]\n",
|
|
"settings_file.source = Source(space=Box(\n",
|
|
" source_bounds[:3], source_bounds[3:]))\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+ABDg0IE0OQtyQAAAPZSURBVGje7Zs7buMwEIZ9iey5\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+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTAxLTE0VDA3OjA4OjE5LTA2OjAwSFm98wAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wMS0xNFQwNzowODoxOS0wNjowMDkEBU8AAAAASUVORK5C\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.add_filter(mesh_filter)\n",
|
|
"tally.add_filter(energy_filter)\n",
|
|
"tally.add_score('fission')\n",
|
|
"tally.add_score('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.add_filter(cell_filter)\n",
|
|
"tally.add_score('scatter-y2')\n",
|
|
"tally.add_nuclide(u235)\n",
|
|
"tally.add_nuclide(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": true
|
|
},
|
|
"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.add_score('absorption')\n",
|
|
"\n",
|
|
"# Instantiate the Tally\n",
|
|
"tally = openmc.Tally(name='distribcell tally')\n",
|
|
"tally.add_filter(distribcell_filter)\n",
|
|
"tally.add_score('absorption')\n",
|
|
"tally.add_score('scatter')\n",
|
|
"tally.add_trigger(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: ea9fb637f63f9374c7436456141afa850b84acf9\n",
|
|
" Date/Time: 2016-01-14 07:08:19\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.54958 \n",
|
|
" 2/1 0.67628 \n",
|
|
" 3/1 0.70618 \n",
|
|
" 4/1 0.66601 \n",
|
|
" 5/1 0.70876 \n",
|
|
" 6/1 0.69708 \n",
|
|
" 7/1 0.68623 0.69166 +/- 0.00543\n",
|
|
" 8/1 0.69159 0.69163 +/- 0.00313\n",
|
|
" 9/1 0.69908 0.69349 +/- 0.00289\n",
|
|
" 10/1 0.63865 0.68253 +/- 0.01120\n",
|
|
" 11/1 0.65439 0.67784 +/- 0.01027\n",
|
|
" 12/1 0.68518 0.67889 +/- 0.00875\n",
|
|
" 13/1 0.69507 0.68091 +/- 0.00784\n",
|
|
" 14/1 0.70129 0.68317 +/- 0.00728\n",
|
|
" 15/1 0.71336 0.68619 +/- 0.00717\n",
|
|
" 16/1 0.68725 0.68629 +/- 0.00649\n",
|
|
" 17/1 0.72579 0.68958 +/- 0.00678\n",
|
|
" 18/1 0.67149 0.68819 +/- 0.00639\n",
|
|
" 19/1 0.67771 0.68744 +/- 0.00596\n",
|
|
" 20/1 0.68035 0.68697 +/- 0.00557\n",
|
|
" Triggers unsatisfied, max unc./thresh. is 1.09851 for absorption in tally 10002\n",
|
|
" The estimated number of batches is 24\n",
|
|
" Creating state point statepoint.020.h5...\n",
|
|
" 21/1 0.68105 0.68660 +/- 0.00522\n",
|
|
" 22/1 0.67168 0.68572 +/- 0.00498\n",
|
|
" 23/1 0.67520 0.68514 +/- 0.00473\n",
|
|
" 24/1 0.67940 0.68483 +/- 0.00449\n",
|
|
" Triggers satisfied for batch 24\n",
|
|
" Creating state point statepoint.024.h5...\n",
|
|
"\n",
|
|
" ===========================================================================\n",
|
|
" ======================> SIMULATION FINISHED <======================\n",
|
|
" ===========================================================================\n",
|
|
"\n",
|
|
"\n",
|
|
" =======================> TIMING STATISTICS <=======================\n",
|
|
"\n",
|
|
" Total time for initialization = 1.2110E+00 seconds\n",
|
|
" Reading cross sections = 9.4900E-01 seconds\n",
|
|
" Total time in simulation = 1.0453E+01 seconds\n",
|
|
" Time in transport only = 1.0440E+01 seconds\n",
|
|
" Time in inactive batches = 1.5590E+00 seconds\n",
|
|
" Time in active batches = 8.8940E+00 seconds\n",
|
|
" Time synchronizing fission bank = 4.0000E-03 seconds\n",
|
|
" Sampling source sites = 3.0000E-03 seconds\n",
|
|
" SEND/RECV source sites = 1.0000E-03 seconds\n",
|
|
" Time accumulating tallies = 0.0000E+00 seconds\n",
|
|
" Total time for finalization = 0.0000E+00 seconds\n",
|
|
" Total time elapsed = 1.1681E+01 seconds\n",
|
|
" Calculation Rate (inactive) = 8017.96 neutrons/second\n",
|
|
" Calculation Rate (active) = 4216.33 neutrons/second\n",
|
|
"\n",
|
|
" ============================> RESULTS <============================\n",
|
|
"\n",
|
|
" k-effective (Collision) = 0.68264 +/- 0.00405\n",
|
|
" k-effective (Track-length) = 0.68483 +/- 0.00449\n",
|
|
" k-effective (Absorption) = 0.68225 +/- 0.00336\n",
|
|
" Combined k-effective = 0.68275 +/- 0.00346\n",
|
|
" Leakage Fraction = 0.34345 +/- 0.00167\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 = 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 = 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.21161313]]\n",
|
|
"\n",
|
|
" [[ 0.07979747]]\n",
|
|
"\n",
|
|
" [[ 0.40532194]]\n",
|
|
"\n",
|
|
" [[ 0.19458598]]]\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 style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\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 [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",
|
|
" </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.0e+00 - 6.3e-07)</td>\n",
|
|
" <td>fission</td>\n",
|
|
" <td>0.000165</td>\n",
|
|
" <td>0.000035</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>1</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>(0.0e+00 - 6.3e-07)</td>\n",
|
|
" <td>nu-fission</td>\n",
|
|
" <td>0.000403</td>\n",
|
|
" <td>0.000085</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>1</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>(6.3e-07 - 2.0e+01)</td>\n",
|
|
" <td>fission</td>\n",
|
|
" <td>0.000077</td>\n",
|
|
" <td>0.000004</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>1</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>(6.3e-07 - 2.0e+01)</td>\n",
|
|
" <td>nu-fission</td>\n",
|
|
" <td>0.000207</td>\n",
|
|
" <td>0.000011</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>1</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>(0.0e+00 - 6.3e-07)</td>\n",
|
|
" <td>fission</td>\n",
|
|
" <td>0.000350</td>\n",
|
|
" <td>0.000043</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>5</th>\n",
|
|
" <td>1</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>(0.0e+00 - 6.3e-07)</td>\n",
|
|
" <td>nu-fission</td>\n",
|
|
" <td>0.000853</td>\n",
|
|
" <td>0.000105</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>6</th>\n",
|
|
" <td>1</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>(6.3e-07 - 2.0e+01)</td>\n",
|
|
" <td>fission</td>\n",
|
|
" <td>0.000106</td>\n",
|
|
" <td>0.000015</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>7</th>\n",
|
|
" <td>1</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>(6.3e-07 - 2.0e+01)</td>\n",
|
|
" <td>nu-fission</td>\n",
|
|
" <td>0.000274</td>\n",
|
|
" <td>0.000039</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>8</th>\n",
|
|
" <td>1</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>(0.0e+00 - 6.3e-07)</td>\n",
|
|
" <td>fission</td>\n",
|
|
" <td>0.000552</td>\n",
|
|
" <td>0.000060</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>9</th>\n",
|
|
" <td>1</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>(0.0e+00 - 6.3e-07)</td>\n",
|
|
" <td>nu-fission</td>\n",
|
|
" <td>0.001346</td>\n",
|
|
" <td>0.000146</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>10</th>\n",
|
|
" <td>1</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>(6.3e-07 - 2.0e+01)</td>\n",
|
|
" <td>fission</td>\n",
|
|
" <td>0.000148</td>\n",
|
|
" <td>0.000008</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>11</th>\n",
|
|
" <td>1</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>(6.3e-07 - 2.0e+01)</td>\n",
|
|
" <td>nu-fission</td>\n",
|
|
" <td>0.000384</td>\n",
|
|
" <td>0.000021</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>12</th>\n",
|
|
" <td>1</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>(0.0e+00 - 6.3e-07)</td>\n",
|
|
" <td>fission</td>\n",
|
|
" <td>0.000682</td>\n",
|
|
" <td>0.000054</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>13</th>\n",
|
|
" <td>1</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>(0.0e+00 - 6.3e-07)</td>\n",
|
|
" <td>nu-fission</td>\n",
|
|
" <td>0.001662</td>\n",
|
|
" <td>0.000132</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>14</th>\n",
|
|
" <td>1</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>(6.3e-07 - 2.0e+01)</td>\n",
|
|
" <td>fission</td>\n",
|
|
" <td>0.000162</td>\n",
|
|
" <td>0.000012</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>15</th>\n",
|
|
" <td>1</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>(6.3e-07 - 2.0e+01)</td>\n",
|
|
" <td>nu-fission</td>\n",
|
|
" <td>0.000424</td>\n",
|
|
" <td>0.000031</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>16</th>\n",
|
|
" <td>1</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>(0.0e+00 - 6.3e-07)</td>\n",
|
|
" <td>fission</td>\n",
|
|
" <td>0.000911</td>\n",
|
|
" <td>0.000076</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>17</th>\n",
|
|
" <td>1</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>(0.0e+00 - 6.3e-07)</td>\n",
|
|
" <td>nu-fission</td>\n",
|
|
" <td>0.002221</td>\n",
|
|
" <td>0.000186</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>18</th>\n",
|
|
" <td>1</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>(6.3e-07 - 2.0e+01)</td>\n",
|
|
" <td>fission</td>\n",
|
|
" <td>0.000178</td>\n",
|
|
" <td>0.000013</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>19</th>\n",
|
|
" <td>1</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>(6.3e-07 - 2.0e+01)</td>\n",
|
|
" <td>nu-fission</td>\n",
|
|
" <td>0.000464</td>\n",
|
|
" <td>0.000032</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" mesh 1 energy [MeV] score mean std. dev.\n",
|
|
" x y z \n",
|
|
"0 1 1 1 (0.0e+00 - 6.3e-07) fission 0.000165 0.000035\n",
|
|
"1 1 1 1 (0.0e+00 - 6.3e-07) nu-fission 0.000403 0.000085\n",
|
|
"2 1 1 1 (6.3e-07 - 2.0e+01) fission 0.000077 0.000004\n",
|
|
"3 1 1 1 (6.3e-07 - 2.0e+01) nu-fission 0.000207 0.000011\n",
|
|
"4 1 2 1 (0.0e+00 - 6.3e-07) fission 0.000350 0.000043\n",
|
|
"5 1 2 1 (0.0e+00 - 6.3e-07) nu-fission 0.000853 0.000105\n",
|
|
"6 1 2 1 (6.3e-07 - 2.0e+01) fission 0.000106 0.000015\n",
|
|
"7 1 2 1 (6.3e-07 - 2.0e+01) nu-fission 0.000274 0.000039\n",
|
|
"8 1 3 1 (0.0e+00 - 6.3e-07) fission 0.000552 0.000060\n",
|
|
"9 1 3 1 (0.0e+00 - 6.3e-07) nu-fission 0.001346 0.000146\n",
|
|
"10 1 3 1 (6.3e-07 - 2.0e+01) fission 0.000148 0.000008\n",
|
|
"11 1 3 1 (6.3e-07 - 2.0e+01) nu-fission 0.000384 0.000021\n",
|
|
"12 1 4 1 (0.0e+00 - 6.3e-07) fission 0.000682 0.000054\n",
|
|
"13 1 4 1 (0.0e+00 - 6.3e-07) nu-fission 0.001662 0.000132\n",
|
|
"14 1 4 1 (6.3e-07 - 2.0e+01) fission 0.000162 0.000012\n",
|
|
"15 1 4 1 (6.3e-07 - 2.0e+01) nu-fission 0.000424 0.000031\n",
|
|
"16 1 5 1 (0.0e+00 - 6.3e-07) fission 0.000911 0.000076\n",
|
|
"17 1 5 1 (0.0e+00 - 6.3e-07) nu-fission 0.002221 0.000186\n",
|
|
"18 1 5 1 (6.3e-07 - 2.0e+01) fission 0.000178 0.000013\n",
|
|
"19 1 5 1 (6.3e-07 - 2.0e+01) nu-fission 0.000464 0.000032"
|
|
]
|
|
},
|
|
"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",
|
|
"# 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/j8k35yq9tqQdwAAAABJRU5ErkJggg==\n",
|
|
"text/plain": [
|
|
"<matplotlib.figure.Figure at 0x7f38f16e1750>"
|
|
]
|
|
},
|
|
"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 instance at 0x7f38eda14c20>"
|
|
]
|
|
},
|
|
"execution_count": 27,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"/usr/local/lib/python2.7/dist-packages/matplotlib/collections.py:590: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison\n",
|
|
" if self._edgecolors == str('face'):\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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\nAAAASUVORK5CYII=\n",
|
|
"text/plain": [
|
|
"<matplotlib.figure.Figure at 0x7f38edb52dd0>"
|
|
]
|
|
},
|
|
"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 [MeV]'] == '(0.0e+00 - 6.3e-07)']\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 style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\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>0.038027</td>\n",
|
|
" <td>0.001350</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>0.000071</td>\n",
|
|
" <td>0.000383</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>-0.000579</td>\n",
|
|
" <td>0.000250</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>-0.000176</td>\n",
|
|
" <td>0.000282</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>0.000105</td>\n",
|
|
" <td>0.000224</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>-0.000077</td>\n",
|
|
" <td>0.000221</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>0.000134</td>\n",
|
|
" <td>0.000181</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>-0.000117</td>\n",
|
|
" <td>0.000308</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>0.000039</td>\n",
|
|
" <td>0.000211</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.340987</td>\n",
|
|
" <td>0.014310</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>0.022817</td>\n",
|
|
" <td>0.002458</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>0.001589</td>\n",
|
|
" <td>0.003051</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>-0.027146</td>\n",
|
|
" <td>0.002511</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>-0.004146</td>\n",
|
|
" <td>0.001722</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>0.001765</td>\n",
|
|
" <td>0.002474</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>0.006038</td>\n",
|
|
" <td>0.001917</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>0.000167</td>\n",
|
|
" <td>0.001438</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>-0.001684</td>\n",
|
|
" <td>0.001535</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 0.038027 0.001350\n",
|
|
"1 10000 U-235 scatter-Y1,-1 0.000071 0.000383\n",
|
|
"2 10000 U-235 scatter-Y1,0 -0.000579 0.000250\n",
|
|
"3 10000 U-235 scatter-Y1,1 -0.000176 0.000282\n",
|
|
"4 10000 U-235 scatter-Y2,-2 0.000105 0.000224\n",
|
|
"5 10000 U-235 scatter-Y2,-1 -0.000077 0.000221\n",
|
|
"6 10000 U-235 scatter-Y2,0 0.000134 0.000181\n",
|
|
"7 10000 U-235 scatter-Y2,1 -0.000117 0.000308\n",
|
|
"8 10000 U-235 scatter-Y2,2 0.000039 0.000211\n",
|
|
"9 10000 U-238 scatter-Y0,0 2.340987 0.014310\n",
|
|
"10 10000 U-238 scatter-Y1,-1 0.022817 0.002458\n",
|
|
"11 10000 U-238 scatter-Y1,0 0.001589 0.003051\n",
|
|
"12 10000 U-238 scatter-Y1,1 -0.027146 0.002511\n",
|
|
"13 10000 U-238 scatter-Y2,-2 -0.004146 0.001722\n",
|
|
"14 10000 U-238 scatter-Y2,-1 0.001765 0.002474\n",
|
|
"15 10000 U-238 scatter-Y2,0 0.006038 0.001917\n",
|
|
"16 10000 U-238 scatter-Y2,1 0.000167 0.001438\n",
|
|
"17 10000 U-238 scatter-Y2,2 -0.001684 0.001535"
|
|
]
|
|
},
|
|
"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.00153535 0.0143096 ]\n",
|
|
" [ 0.00021107 0.00135025]]]\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.04318886]]]\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"# Get the relative error for the scattering reaction rates in\n",
|
|
"# the first 30 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 style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\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>0.000102</td>\n",
|
|
" <td>0.000016</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>559</th>\n",
|
|
" <td>279</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.013889</td>\n",
|
|
" <td>0.000964</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>560</th>\n",
|
|
" <td>280</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000087</td>\n",
|
|
" <td>0.000012</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>561</th>\n",
|
|
" <td>280</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.014347</td>\n",
|
|
" <td>0.000652</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>562</th>\n",
|
|
" <td>281</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000087</td>\n",
|
|
" <td>0.000010</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>563</th>\n",
|
|
" <td>281</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.014283</td>\n",
|
|
" <td>0.000715</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>564</th>\n",
|
|
" <td>282</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000111</td>\n",
|
|
" <td>0.000012</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>565</th>\n",
|
|
" <td>282</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.016374</td>\n",
|
|
" <td>0.000865</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>566</th>\n",
|
|
" <td>283</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000090</td>\n",
|
|
" <td>0.000008</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>567</th>\n",
|
|
" <td>283</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.015839</td>\n",
|
|
" <td>0.000795</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>568</th>\n",
|
|
" <td>284</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000103</td>\n",
|
|
" <td>0.000012</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>569</th>\n",
|
|
" <td>284</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.017182</td>\n",
|
|
" <td>0.000660</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>570</th>\n",
|
|
" <td>285</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000111</td>\n",
|
|
" <td>0.000014</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>571</th>\n",
|
|
" <td>285</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.017565</td>\n",
|
|
" <td>0.000862</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>572</th>\n",
|
|
" <td>286</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000125</td>\n",
|
|
" <td>0.000014</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>573</th>\n",
|
|
" <td>286</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.018128</td>\n",
|
|
" <td>0.000931</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>574</th>\n",
|
|
" <td>287</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000124</td>\n",
|
|
" <td>0.000016</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>575</th>\n",
|
|
" <td>287</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.017253</td>\n",
|
|
" <td>0.000902</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>576</th>\n",
|
|
" <td>288</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000119</td>\n",
|
|
" <td>0.000016</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>577</th>\n",
|
|
" <td>288</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.018482</td>\n",
|
|
" <td>0.000861</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" distribcell score mean std. dev.\n",
|
|
"558 279 absorption 0.000102 0.000016\n",
|
|
"559 279 scatter 0.013889 0.000964\n",
|
|
"560 280 absorption 0.000087 0.000012\n",
|
|
"561 280 scatter 0.014347 0.000652\n",
|
|
"562 281 absorption 0.000087 0.000010\n",
|
|
"563 281 scatter 0.014283 0.000715\n",
|
|
"564 282 absorption 0.000111 0.000012\n",
|
|
"565 282 scatter 0.016374 0.000865\n",
|
|
"566 283 absorption 0.000090 0.000008\n",
|
|
"567 283 scatter 0.015839 0.000795\n",
|
|
"568 284 absorption 0.000103 0.000012\n",
|
|
"569 284 scatter 0.017182 0.000660\n",
|
|
"570 285 absorption 0.000111 0.000014\n",
|
|
"571 285 scatter 0.017565 0.000862\n",
|
|
"572 286 absorption 0.000125 0.000014\n",
|
|
"573 286 scatter 0.018128 0.000931\n",
|
|
"574 287 absorption 0.000124 0.000016\n",
|
|
"575 287 scatter 0.017253 0.000902\n",
|
|
"576 288 absorption 0.000119 0.000016\n",
|
|
"577 288 scatter 0.018482 0.000861"
|
|
]
|
|
},
|
|
"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 style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\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>0</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000113</td>\n",
|
|
" <td>0.000013</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.017337</td>\n",
|
|
" <td>0.000749</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000204</td>\n",
|
|
" <td>0.000021</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.027631</td>\n",
|
|
" <td>0.001348</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000319</td>\n",
|
|
" <td>0.000025</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>5</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.040052</td>\n",
|
|
" <td>0.001427</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>6</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000388</td>\n",
|
|
" <td>0.000022</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>7</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.048578</td>\n",
|
|
" <td>0.001561</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>8</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000511</td>\n",
|
|
" <td>0.000030</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>9</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.057903</td>\n",
|
|
" <td>0.001988</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>10</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000481</td>\n",
|
|
" <td>0.000033</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>11</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.061211</td>\n",
|
|
" <td>0.001989</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>12</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000542</td>\n",
|
|
" <td>0.000045</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>13</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.070888</td>\n",
|
|
" <td>0.002497</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>14</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000587</td>\n",
|
|
" <td>0.000047</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>15</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.078107</td>\n",
|
|
" <td>0.002794</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>16</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000627</td>\n",
|
|
" <td>0.000033</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>17</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.082031</td>\n",
|
|
" <td>0.001740</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>18</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>9</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>9</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000667</td>\n",
|
|
" <td>0.000028</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>19</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>9</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>9</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.088516</td>\n",
|
|
" <td>0.002037</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",
|
|
"0 10003 0 10001 0 0 0 10002 10000 0 absorption \n",
|
|
"1 10003 0 10001 0 0 0 10002 10000 0 scatter \n",
|
|
"2 10003 0 10001 0 1 0 10002 10000 1 absorption \n",
|
|
"3 10003 0 10001 0 1 0 10002 10000 1 scatter \n",
|
|
"4 10003 0 10001 0 2 0 10002 10000 2 absorption \n",
|
|
"5 10003 0 10001 0 2 0 10002 10000 2 scatter \n",
|
|
"6 10003 0 10001 0 3 0 10002 10000 3 absorption \n",
|
|
"7 10003 0 10001 0 3 0 10002 10000 3 scatter \n",
|
|
"8 10003 0 10001 0 4 0 10002 10000 4 absorption \n",
|
|
"9 10003 0 10001 0 4 0 10002 10000 4 scatter \n",
|
|
"10 10003 0 10001 0 5 0 10002 10000 5 absorption \n",
|
|
"11 10003 0 10001 0 5 0 10002 10000 5 scatter \n",
|
|
"12 10003 0 10001 0 6 0 10002 10000 6 absorption \n",
|
|
"13 10003 0 10001 0 6 0 10002 10000 6 scatter \n",
|
|
"14 10003 0 10001 0 7 0 10002 10000 7 absorption \n",
|
|
"15 10003 0 10001 0 7 0 10002 10000 7 scatter \n",
|
|
"16 10003 0 10001 0 8 0 10002 10000 8 absorption \n",
|
|
"17 10003 0 10001 0 8 0 10002 10000 8 scatter \n",
|
|
"18 10003 0 10001 0 9 0 10002 10000 9 absorption \n",
|
|
"19 10003 0 10001 0 9 0 10002 10000 9 scatter \n",
|
|
"\n",
|
|
" mean std. dev. \n",
|
|
" \n",
|
|
" \n",
|
|
"0 0.000113 0.000013 \n",
|
|
"1 0.017337 0.000749 \n",
|
|
"2 0.000204 0.000021 \n",
|
|
"3 0.027631 0.001348 \n",
|
|
"4 0.000319 0.000025 \n",
|
|
"5 0.040052 0.001427 \n",
|
|
"6 0.000388 0.000022 \n",
|
|
"7 0.048578 0.001561 \n",
|
|
"8 0.000511 0.000030 \n",
|
|
"9 0.057903 0.001988 \n",
|
|
"10 0.000481 0.000033 \n",
|
|
"11 0.061211 0.001989 \n",
|
|
"12 0.000542 0.000045 \n",
|
|
"13 0.070888 0.002497 \n",
|
|
"14 0.000587 0.000047 \n",
|
|
"15 0.078107 0.002794 \n",
|
|
"16 0.000627 0.000033 \n",
|
|
"17 0.082031 0.001740 \n",
|
|
"18 0.000667 0.000028 \n",
|
|
"19 0.088516 0.002037 "
|
|
]
|
|
},
|
|
"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.head(20)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 35,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\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>289.000000</td>\n",
|
|
" <td>289.000000</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>mean</th>\n",
|
|
" <td>0.000419</td>\n",
|
|
" <td>0.000024</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>std</th>\n",
|
|
" <td>0.000237</td>\n",
|
|
" <td>0.000010</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>min</th>\n",
|
|
" <td>0.000015</td>\n",
|
|
" <td>0.000003</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>25%</th>\n",
|
|
" <td>0.000207</td>\n",
|
|
" <td>0.000017</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>50%</th>\n",
|
|
" <td>0.000415</td>\n",
|
|
" <td>0.000023</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>75%</th>\n",
|
|
" <td>0.000615</td>\n",
|
|
" <td>0.000030</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>max</th>\n",
|
|
" <td>0.000901</td>\n",
|
|
" <td>0.000055</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" mean std. dev.\n",
|
|
" \n",
|
|
" \n",
|
|
"count 289.000000 289.000000\n",
|
|
"mean 0.000419 0.000024\n",
|
|
"std 0.000237 0.000010\n",
|
|
"min 0.000015 0.000003\n",
|
|
"25% 0.000207 0.000017\n",
|
|
"50% 0.000415 0.000023\n",
|
|
"75% 0.000615 0.000030\n",
|
|
"max 0.000901 0.000055"
|
|
]
|
|
},
|
|
"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.456115837774\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": 37,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Mann-Whitney Test p-value: 4.59783355073e-42\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": 38,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"/usr/local/lib/python2.7/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 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 0x7f38ed931d10>"
|
|
]
|
|
},
|
|
"execution_count": 38,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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\nTkSuQmCC\n",
|
|
"text/plain": [
|
|
"<matplotlib.figure.Figure at 0x7f38edafbf90>"
|
|
]
|
|
},
|
|
"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 0x7f38ed6f4210>"
|
|
]
|
|
},
|
|
"execution_count": 39,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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\nwXh7GWfQoEFRh1AjaurCcmlKCiJSrrC+eKR6wkzYaj4SEZE4JQUREYlTUhARkTglBRERiVNSEJFa\nJTc3l8mTJ8dfjx07ln322Yf333+frKwscnJyyMnJoW3btvTt25dJkyZ9r3yjRo3i2+Xk5HDNNdek\nuhppS0lBRGoVM4v3vhk1ahRXXXUVr732Gp07dwZg48aNFBUVMWfOHE4++WTOOussRo0aVaL8K6+8\nQlFRUXwaPnx4JHVJR0oKIlLruDuPPfYYN9xwAxMnTuSYY4753jatW7fmmmuuYdiwYdx0000RRFk7\nKSmISK3z8MMPc/vtt/P222/Ts2fPCrc966yzWLt2LZ9++ml8me6/KJ9uXhORKrHf18wNVH575b6g\n3Z1JkybRp08funfvvsft27dvD8A333wTL3/mmWdSr95/v/7uueceLr300krFkamUFESkSir7ZV5T\nzIxHH32UO++8k1/+8peMHDmywu2//PJLAPbZZ594+Zdffpk+ffqEHmttpOYjEal12rRpw+TJk5ky\nZQq/+tWvKtz2xRdfpE2bNnTr1i1F0dVuSgoiUiu1a9eOyZMn88Ybb3D99dfHlxdfL1izZg0PPfQQ\nd9xxB3fffXeJsrqmUD41H4lIrdWpUyfefvttevfuzerVqwFo3rw57k7jxo056qijGDduHKecckqJ\ncn379iU7Ozv++pRTTuH5559PaezpSklBRGqVpUuXlnidm5vL8uXLASgoKKh0eSlJzUciIhKnpCAi\nInFKCiIiEqekICIicUoKIiISp6QgIiJxSgoiIhKnpCAiInFKCiKSUbp37877778fdRi1lpKCiCSl\n+IlnYU7JKP04ToAnn3ySE088EYC5c+fSu3fvCvexbNkysrKy2L17d9X+GBlMw1yISCWEOZBcckmh\nMglkT8IaGG/Xrl0lxlaqTXSmICIZJTc3l7fffhuAGTNmcOSRR9KsWTPatm3LDTfcABA/k2jevDk5\nOTl8+OGHuDt/+MMfyM3NpU2bNlx88cV8++238f0+9dRTdOnShZYtW8a3Kz7OsGHDOOecc7jwwgtp\n1qwZo0aN4t///jfHHnssLVq0oH379lx99dXs2LEjvr+srCweeeQRDjzwQJo2bcptt93G4sWLOfbY\nY2nevDkDBgwosX2qKCmISK1T0S/8xLOIa6+9luuuu46NGzeyZMkSzj33XACmTJkCwMaNGykqKqJX\nr1488cQTjBo1infffZclS5awadMmrrrqKgDmzZvHlVdeyZgxY1i1ahUbN25k5cqVJY47fvx4zj33\nXDZu3MjAgQPJzs7mgQce4Ouvv2batGlMnjyZhx9+uESZiRMnMmvWLKZPn86f/vQnhgwZwpgxY1i+\nfDmFhYWMGTOmRv5elaGkIGmrOu3OkrmKH6fZokWL+HTllVeW+dlo0KABn332GV999RWNGjWiV69e\n8X2UNnr0aH7961+Tm5tL48aNufvuuxk7diy7du1i3Lhx9OvXj+OOO4769etzxx13fO94xx13HP36\n9QNgr732omfPnhx99NFkZWXRpUsXhg4dynvvvVeizI033kiTJk3Iz8/n0EMP5bTTTiM3N5emTZty\n2mmnMWvWrJr6syVNSUHSnJeapK4rfpzm+vXr49PDDz9c5hf9yJEjWbhwIXl5eRx99NG8+uqr5e53\n1apVdOnSJf66c+fO7Ny5kzVr1rBq1So6duwYX7f33nuz7777liifuB5g4cKFnH766bRr145mzZpx\n66238vXXX5fYpk2bNiX2Wfr1pk2b9vDXqHlKCiJS65XXnHTAAQdQUFDAunXruOmmmzjnnHPYsmVL\nmWcV7du3Z9myZfHXy5cvp169erRt25Z27dqxYsWK+LotW7Z87wu+9D6vuOIK8vPzWbRoERs3buSu\nu+6qFb2dlBREJGM9/fTTrFu3DoBmzZphZmRlZdGqVSuysrJYvHhxfNvzzz+f+++/n2XLlrFp0yZu\nueUWBgwYQFZWFv3792fChAlMmzaN7du3M2zYsD32XNq0aRM5OTk0atSIBQsW8Mgjj+wx3sR9RvXI\nUCUFEakEC3GqRlTlXG9688036d69Ozk5OVx33XWMHTuWhg0b0qhRI2699VaOP/54WrRowYwZM/jF\nL37BhRdeSO/evdlvv/1o1KgRDz74IACHHHIIDz74IAMGDKB9+/bk5OTQunVrGjZsWO7x77nnHgoK\nCmjatClDhw5lwIABJbYpK97S66O4hmZhZSMz6wQ8BbQm1hj8uLsPN7N9gGeALsAy4OfuvqFUWc/k\nB2sXFBQwcODAqMMITU3VL/YfovTnwCJ/6Hpdef/Mov9bp6tNmzbRokULFi1aVOI6RKqU994Ey6uV\nScI8U9gBXOfuhwDHAFeaWR5wM/CWux8ETA5ei4iktQkTJrB582a+++47brjhBg477LBIEkLYQksK\n7r7a3T8J5jcB84EOQD9gVLDZKODMsGIQEakp48ePp0OHDnTo0IHFixczduzYqEMKRUqGuTCzXOBw\n4EOgjbuvCVatAdqUU0xEJG2MGDGCESNGRB1G6EJPCmbWBHgeuNbdixIvnLi7m1mZjZb9+/ePz+fl\n5ZGfnx92qCkzderUqEMIVdj1KygoCHX/e6L3T9JBQUEB8+bNY/78+TW639AuNAOYWX3gFeB1d/9r\nsGwBcJK7rzazdsA77n5wqXK60FyL6UJz7aYLzemvVl5ottj/6JHAvOKEEBgPXBzMXwy8FFYMIiJS\nOWE2Hx0PXADMMbPiATx+A/wReNbMLiXokhpiDCJSDRprqu4JLSm4+78o/0zkJ2EdV0RqRiY2HWV6\n019N0B3NIiISp6QgIiJxSgoiIhKnpCAiInFKCiIiEqekICIicUoKIiISp6QgIiJxSgoiIhKnpCAi\nInFKCiIiEqekICIicUoKIiISl5LHcYqEqazhnTNxhE+RVFBSkAyRmAT0DACRqlLzkYiIxCkpiIhI\nnJKCiIjEKSmIiEickoKIiMQpKYiISJySgoiIxCkpiIhInJKCiIjEKSmIiEickoKIiMQpKYiISJyS\ngoiIxCkpiIhInJKCiIjEKSmIiEicHrIjEqGynhoH4T45LopjSu2hpCASudJfxql4clwUx5TaQM1H\nIiISp6QgIiJxoSYFM/uHma0xs8KEZcPMbIWZzQqmU8OMQUREkhf2mcITQOkvfQfuc/fDg+mNkGMQ\nEZEkhZoU3H0KsL6MVbqqJSKShqK6pnC1mc02s5Fm1jyiGEREpJQoksIjQFegB7AKuDeCGEREpAwp\nv0/B3dcWz5vZ34EJZW3Xv3//+HxeXh75+fnhB5ciU6dOjTqEUIVdv4KCghrZZtCgQWUuHz16dIXl\nUvH+JRN/WMfM5M9nptVt3rx5zJ8/v2Z36u6hTkAuUJjwul3C/HVAQRllPJONHj066hBCVVP1Axy8\n1PT9z8b3t0vu85Ps/kuryfevqjGEecxM/nxmct3c4+9jtb6zQz1TMLMxwA+Blmb2BXA7cJKZ9Yh9\nMFkKXBZmDCIikrxQk4K7n1/G4n+EeUwREak63dEsIiJxe0wKZvaCmf3MzJRAREQyXDJf9I8Ag4BF\nZvZHM+sWckwiIhKRPSYFd3/L3QcCPYFlwGQz+8DMBptZ/bADFBGR1EmqScjM9gUuAX4JfAwMB44A\n3gotMhERSbk99j4ysxeBg4F/An3dfVWwaqyZzQwzOJHaQk8zk0yRTJfUEe7+WuICM2vo7tvc/YiQ\n4hKphfQ0M6n9kmk+uquMZdNqOhAREYleuWcKZtYOaA/sbWY9if3scaAp0Cg14YmISCpV1Hz0P8DF\nQAdKjmRaBNwSZlAiIhKNcpOCuz8JPGlm/d39+dSFJCIiUamo+ehCd/8nkGtm1yeuIjYS332hRyci\nIilVUfNR8XWDHEp2qzC+381CREQyQEXNR48F/w5LWTQiIhKpZAbE+7OZNTWz+mY22cy+MrMLUxGc\n1B1m9r2pNu0/bGXFX9vqILVDMvcp/I+7fwucTmzso/2B/xdmUFJXeamptu0/bLU9fqkNkkkKxU1M\npwPj3H0j+kSKiGSkZIa5mGBmC4CtwBVm1jqYFxGRDJPM0Nk3A8cDR7j7duA74IywAxMRkdRL9hnN\nBwNdEp6f4MBT4YQkIiJRSWbo7KeB/YBPgF0Jq5QUREQyTDJnCkcA+a6B4UVEMl4yvY/mAu3CDkRE\nRKKXzJlCK2Cemc0AtgXL3N37hReWSPlSedNWeccaNGhQlcvrpFvSWTJJYVjwr/PfR0npUy0RSvUT\nzso6XrIx6GlsUrvsMSm4+7tmlgsc4O6TzKxRMuVERKT2SWbso6HAc8BjwaKOwIthBiUiItFI5kLz\nlcAJwLcA7r4QaB1mUCIiEo1kksI2dy++wIyZ1UPXFCRdZG+DfYDmSyFrZ9TRiNR6yVwbeM/MbgUa\nmdnJwK+ACeGGJbIH+70Fx90DXd6HTUDWD6HRV7DiGJgLm3dsplH9RnvcjYiUlExSuBm4FCgELgNe\nA/4eZlAi5coGTh8Mue/BO3fAMy/CjsbAcmiwCfabBD3eoesDXbm217Vcd8x17F1/76ijFqk1kul9\ntMvMXgJecve1KYhJpGz1tsJAYGsRPDwXdpQ6E9jeBBacCQvg3eHvctu7t5H3tzzuPeXeSMIVqY3K\nTQoWu+vmduAqYr/PMLNdwIPAHRr2QlLLod+lsAUY9wx4doVb57fOj83kwjkLz4ELgFcXw/r9ww40\nrejpbFJZFV1ovo7YkNlHuXsLd28BHB0suy4VwYnEHfE4tFwQ6wy9h4QQEzydbJnDY9thCTCkF/T+\nQ+zidJ2iJ7ZJ8ipKChcBA919afECd18CDArWiaRGs8+hz2/hxX9CVToY7a4PHwCPzYQOM+DyHpD7\nbg0HKZIZKrqmUM/d15Ve6O7rgm6pIqnxk5thxlWwLr96+9nYBcaMh4NfgrMugqXAxHWwuVWNhCmS\nCSo6U9hRxXVxZvYPM1tjZoUJy/Yxs7fMbKGZTTSz5skGK3VQ+49i3U4/uKHm9rngTPjbPNgM/Ko7\nHD4SbHfN7V+kFqsoKRxmZkVlTcChSe7/CeDUUstuBt5y94OAycFrkbL9+BZ47/ag22kN2t4EJgJP\nvwlHjIDBvWPdWUXquHKTgrtnu3tOOVNSzUfuPgVYX2pxP2BUMD8KOLNKkUvmawu0mgefXBLeMVb3\ngJFTYeYQOPV/4XJ4YPoDfPntl+EdUySNRXFtoI27rwnm1wBtIohBaoNjgQ+vhl0Nwj2OZ8Psi2H2\nRbBfFp+c+gm/f+/3dGzaEU4H1vwNNnaG71rDroaxh9Lu/rSMHSUs210fNgJqlZJaJtILxu7uZqY+\ncvJ9OSvhIOD1oSk8qMESeOKMJ9h++nZmr57N0aOOhtZz4cDXoPE6yN4eu2vHynrGVMKyetugCbDx\nIPjiOFh2Eiz8Wew6hkgaiyIprDGztu6+2szaAWXeJd2/f//4fF5eHvn51ex5kkamTp0adQihqpH6\n/WAU/AfY2qL6+6qk79/w9UjpLShxVlDesmyDfV+Azv+CA1+FU6+FL8DyLLZpBT+HCgoKqhTr6NGj\nkypX0TEz+fOZaXWbN28e8+fPr9mdunuoE5ALFCa8/jNwUzB/M/DHMsp4Jhs9enTUIYSqKvUDHDyY\ndjtXHeR0TFxWPCWzrKrlQt5XgyLnMJwhRzlXH+j0fNzJKrtcxX+f8mOtWrmSZTP585nJdXOPv4/V\n+s5OZujsKjOzMcRuG+pmZl+Y2WDgj8DJZrYQ6BO8FvmvTtMAgxVRB1LDtjeBOcCID2H8CDh0TGzM\n4YNfQncaS7oItfnI3c8vZ9VPwjyu1HI9noBZg8nc3soGn/8QRk2GA7Lg5N/BsffCm/fDyiOjDk7q\nuFDPFEQqLXsb5D8Pcy6IOpIUMFgEPPpJrNvt+X3hzIshJ+q4pC5TUpD0st9kWHsIFHWIOpLU8WyY\ndSk89CkUtYcr4M737mTzDnVVktRTUpD0kj8O5vff83aZaFtTmHw3PA6Faws5+KGDKSgsKO58IZIS\nSgqSPrJ2QLfxMP/sqCOJ1gZ49txnGX32aO6ddi/H/eO4WB8+XYyWFFBSkJQzs+9NQGw462/2j909\nLJzY5UT+PeTfXH7E5bE7qy/rGRu8b68NoRyv+L0YNGhQyfdF6hQlBYlIGQ9+yXtRZwmlZFkWF/e4\nGP4GTPojdJsA13WGgafDUcTutq6xEV71MB6JeJgLkRIOfA1Gvxp1FOnJgcX/E5safgsHvQL7vQrH\nnhk7c1h+AnwOM76cweFtD6d+dv2oI5ZaSklB0kNLAK/+g3Tqgm1NoXAgFA4CFkHOl9BlCnR+mSET\nhrBk/RL6dO3DRYddFGsL0KB8UglqPpL0cCCw6DRiYwhJpRR1gLkD4DWYfflslv/vcs46+Czun34/\nXEmsR5dIkpQUJD0cCHz206ijyAgt9m7BJT0u4V+/+Be8Avzod3DOedCgKOrQpBZQUpDoNSiCDsDS\nPlFHknmWAo99HGtyGtwbmqyKOiJJc0oKEr39JscGv9veJOpIMtPOvWHC47DgLLjoJ7BX1AFJOlNS\nkOgd8HpsDCAJkcF7t8GiU+F8YjcKipRBSUGit98kWBx1EOmlzJv7aqLcW3+BbUCf39VcsJJRlBQk\nWs2WQ8Oicp6/V5dV9UayPZTzLHgJOOxp6Dq5+mFKxlFSkGjlvhN7frGkzmZi1xj6Xgb1tkQdjaQZ\nJQWJVtd3YOmPoo6i7vnsp7D6B3CCHnwoJSkpSIQ8OFNQUojEG3+Fox+CnJVRRyJpRElBotNiKWRv\nh6+6RR1J3fRtJ5j1C+j9h6gjkTSipCDRiZ8laGiLyEy9CQ55FlpEHYikCyUFiY6uJ0Rvc0uYcSWc\nGHUgki6UFCQirp5H6WLG1ZAHNFkddSSSBpQUJBr7fgYYfHNA1JHI5pZQCBz94PdWVfUmOqm9lBQk\nGrnFTUf6okkL04EjH4MGm0qt0JPY6holBYlGV3VFTSvfEHt6W/cxUUciEVNSkGjkvquLzOnmo8vh\nyEejjkIipqQgqdcK2LkXbOgadSSSaPEpsPc30P6jqCORCCkpSOrlorOEdORZMPMynS3UcUoKknpd\n0fWEdDVrMOQ9Dw03Rh2JRERJQVJqt+/WmUI6+65NLGHnj4s6EomIkoKk1Ny1c2ErsXF3JD3Nvgh+\n8FTUUUhElBQkpd5Z+k7sYfKSvj77KbSaB82jDkSioKQgKfXOsndgWdRRSIV2NYD/nAeHRR2IREFJ\nQVJm1+5dvP/5+zpTqA1mXwQ/AN3JXPcoKUjKzF4zm9aNW0PpkRQk/Xx5FOwGOk2LOhJJMSUFSZl3\nlr7Dj3LV66h2MJgDHPbPqAORFIssKZjZMjObY2azzGxGVHFI6ryz7B36dO0TdRiSrELgkOdiT8eT\nOiPKMwUHTnL3w9396AjjkBTYuXsnU5ZP4aTck6IORZK1AViXBwe8EXUkkkJRNx9p3OQ6YubKmXRp\n1oVWjVtFHYpURuEgOHR01FFICtWL8NgOTDKzXcBj7j4iwlgkJK+++iqbNm3i5a9fpsPODjzzzDNR\nhySV8Z9z4Sc3QcNvYVvUwUgqRJkUjnf3VWbWCnjLzBa4+5Tilf37949vmJeXR35+fhQxhmLq1KlR\nhxCqxPpdeeWNbNmSz44Bs8n+uCvvfqY7ZWuVLfvGHpma9wJ8AgUFBVFHVC2Z9n9v3rx5zJ8/v0b3\nGVlScPdVwb/rzOxF4GggnhSef/75qEJLiYEDB0YdQqiK63f99bezoeh+aH8Mu595nR1bdwMtow1O\nKqdwEPQcAZ9kxuc2E+pQnpp4ZGok1xTMrJGZ5QTzjYFTiPV1kEzUYQ58fRBsbRF1JFIVn/aNPWOh\nSdSBSCpEdaG5DTDFzD4BPgRecfeJEcUiYes6HZaqK2qttXNvWHAmdI86EEmFSJqP3H0p0COKY0sE\ncj+ED26LOgqpjsJB8JMno45CUiDqLqmS4Tx7N3QohM9PjDoUqY6lP4IcWPDVgqgjkZApKUiotrfb\nCqsPhu05UYci1eHZUAij5+iehUynpCCh2t5pMyzSWUJGKITRhaNx18ipmUxJQUK1rfNmWHxC1GFI\nTVgFe9Xbi2krNHJqJlNSkNB8sfELdu+9E1aq20qmmP/MfI6//HjMLD5JZlFSkNBMXDyRBisaxdqj\nJTMULoFDWkLWdvQAnsykpCCheXPxmzT8olHUYUhN2tA1diPiAW9GHYmERElBQrFr9y4mLZkUO1OQ\nzDLnAo2cmsGUFCQUM76cQYemHcj+LsoxFyUU886FA1+HBkVRRyIhUFKQUIz/dDx9D+obdRgShs0t\nYzcj5r0YdSQSAiUFCcXLn77MGd3OiDoMCYuakDKWkoLUuNXbV7Nh6waO6nBU1KFIWBb2hQ4zNHJq\nBlJSkBo387uZ9OvWjyzTxytj7WgEn/bTyKkZSP9rpcZ9tOkjNR3VBXMugEOjDkJqmpKC1Ki1361l\nxfYV9Omq5ydkvKV9oCl8+tWnUUciNUhJQWrUuHnj6NG4Bw3rNYw6FAmbZ8Pc2CB5kjmUFKRGFRQW\ncFzOcVGHIakyB56a/RS7du+KOhKpIUoKUmM+3/A5C75awKGN1NBcZ6yCdjntmLBwQtSRSA1RUpAa\nM3buWM6mJdosAAAJv0lEQVTJP4d6pruY65Jrjr6G4R8OjzoMqSFKClIj3J2nC59m4KEDow5FUqx/\nfn8WfLWAwjWFUYciNUBJQWrE9BXT2bZzGyd21lPW6poG2Q244sgreHDGg1GHIjVASUFqxGMzH2Po\nEUP10JU6augRQ3lu3nOs3rQ66lCkmpQUpNrWb1nPy5++zCU9Lok6FIlImyZtuODQC7j3g3ujDkWq\nSUlBqm3U7FGcdsBptGzUMupQJEI3nXATI2eNZN1366IORapBSUGqZceuHdw//X6u7XVt1KFIxDo2\n7ch5h5zHfdPuizoUqQYlBamWsXPHsn+L/enVsVfUoUgauPmEm3n848dZWbQy6lCkipQUpMp27d7F\nn6b+iZtPuDnqUCRNdGnehSE9h3Dr27dGHYpUkZKCVNnowtE026sZJ+93ctShSBq55cRbeGPRG8xc\nOTPqUKQKlBSkSrbs2MJv3/4tfzn5L+qGKiU0bdiUu/rcxeWvXs7O3TujDkcqSUlBquQvH/yFI9sf\nyXGdNPidfN/gHoPZZ+99+PPUP0cdilSSkoJU2ty1c3lwxoMMP03j3UjZzIwRfUdw//T7+XjVx1GH\nI5WgpCCVsm3nNga/PJi7+txFx6Ydow5H0ljnZp15+KcP0//Z/ny1+auow5EkKSlIpVzz+jV0btaZ\nIT2HRB2K1ALnHnIu5x1yHj9/7uds3bk16nAkCUoKkrT7pt3H+8vf54kzntDFZUnaXX3uYt9G+3LO\ns+ewfdf2qMORPVBSkKQM/3A4D854kIkXTKRpw6ZRhyO1SHZWNgVnF9AguwF9x/Rl/Zb1UYckFYgk\nKZjZqWa2wMw+M7OboohBkrNt5zaufu1qHvnoEd6+6G06NesUdUhSC9XPrs+z5z5LXss8ev29ly4+\np7GUJwUzywYeAk4F8oHzzSwv1XFEad68eVGHkJQpn0/hiMePYEXRCqZfOp2uLbomVa621E9Sq15W\nPf566l8ZdtIwTht9Gte/eX3KB8/TZ3PPojhTOBpY5O7L3H0HMBY4I4I4IjN//vyoQyjXlh1bGDdv\nHH1G9eHily7mt71/yws/f4FmezVLeh/pXD+J3sBDB1J4RSGbd2ym20PduPLVK5n2xTTcPfRj67O5\nZ1E8TLcD8EXC6xWARlNLMXenaHsRyzYsY8n6JcxdO5epX0xl+orpHNHuCC7pcQnndz+f+tn1ow5V\nMlDrxq159PRH+W3v3/LErCcY/PJg1m9dT+8uvenVoRcH7XsQB+5zIO1y2tGsYTN1bEihKJJC+D8H\n0tjwD4czNXcqPx39UxyP/zoqni/9b0XrPPhTJrtut+/m223fsmHrBr7d9i171duLLs27sH+L/em2\nbzeG9hzKU2c+RavGrWqsvtnZ0KTJULKymgTxbKeoqMZ2L7Vcx6Yd+d0Pf8fvfvg7Pt/wOVOWT+Gj\nlR/xzrJ3+Ozrz1i9aTVbdm6hxV4taNqwKQ3rNaRBdgMaZsf+bZDdIJ4wDCsxD3xv3czcmZxecHqJ\ndZVx+RGX87ODflYTVU9blopTthIHNDsGGObupwavfwPsdvc/JWxTpxOHiEhVuXu1TquiSAr1gE+B\nHwMrgRnA+e6uxj4RkYilvPnI3Xea2VXAm0A2MFIJQUQkPaT8TEFERNJXZHc0m9k+ZvaWmS00s4lm\n1ryc7f5hZmvMrLAq5aNSifqVeSOfmQ0zsxVmNiuYTk1d9OVL5sZDMxserJ9tZodXpmyUqlm3ZWY2\nJ3ivZqQu6uTtqX5mdrCZTTOzrWb268qUTQfVrF8mvH+Dgs/lHDObamaHJVu2BHePZAL+DNwYzN8E\n/LGc7U4EDgcKq1I+netHrPlsEZAL1Ac+AfKCdbcD10ddj2TjTdjmp8BrwXwvYHqyZWtr3YLXS4F9\noq5HNevXCjgS+APw68qUjXqqTv0y6P07FmgWzJ9a1f97UY591A8YFcyPAs4sayN3nwKUNVhKUuUj\nlEx8e7qRL906Zydz42G83u7+IdDczNomWTZKVa1bm4T16fZ+Jdpj/dx9nbt/BOyobNk0UJ36Favt\n7980d98YvPwQ6Jhs2URRJoU27r4mmF8DtKlo4xDKhy2Z+Mq6ka9Dwuurg9PBkWnSPLaneCvapn0S\nZaNUnbpB7P6bSWb2kZml47jiydQvjLKpUt0YM+39uxR4rSplQ+19ZGZvAW3LWHVr4gt39+rcm1Dd\n8lVVA/WrKOZHgDuC+TuBe4m90VFK9m+czr+4ylPdup3g7ivNrBXwlpktCM5y00V1/n/Uht4o1Y3x\neHdflQnvn5n9CPgFcHxly0LIScHdTy5vXXDxuK27rzazdsDaSu6+uuWrrQbq9yWQOOxoJ2JZHHeP\nb29mfwcm1EzU1VJuvBVs0zHYpn4SZaNU1bp9CeDuK4N/15nZi8RO2dPpSyWZ+oVRNlWqFaO7rwr+\nrdXvX3BxeQRwqruvr0zZYlE2H40HLg7mLwZeSnH5sCUT30fAgWaWa2YNgPOCcgSJpNhZQGEZ5VOt\n3HgTjAcugvjd6xuCZrRkykapynUzs0ZmlhMsbwycQnq8X4kq8/cvfTaU7u8dVKN+mfL+mVln4AXg\nAndfVJmyJUR4NX0fYBKwEJgINA+WtwdeTdhuDLE7n7cRaxcbXFH5dJkqUb/TiN3hvQj4TcLyp4A5\nwGxiCaVN1HUqL17gMuCyhG0eCtbPBnruqa7pMlW1bsB+xHp0fALMTce6JVM/Yk2hXwAbiXXuWA40\nqQ3vXXXql0Hv39+Br4FZwTSjorLlTbp5TURE4vQ4ThERiVNSEBGROCUFERGJU1IQEZE4JQUREYlT\nUhARkTglBanTzGy3mf0z4XU9M1tnZulwB7lIyikpSF33HXCIme0VvD6Z2BAAuoFH6iQlBZHYaJI/\nC+bPJ3YXvUFs2AOLPejpQzP72Mz6Bctzzex9M5sZTMcGy08ys3fN7Dkzm29mT0dRIZGqUlIQgWeA\nAWbWEDiU2Fj0xW4FJrt7L6AP8Bcza0RsOPST3f0IYAAwPKFMD+BaIB/Yz8yOR6SWCHWUVJHawN0L\nzSyX2FnCq6VWnwL0NbMbgtcNiY0yuRp4yMx+AOwCDkwoM8ODUVPN7BNiT7yaGlb8IjVJSUEkZjxw\nD/BDYo9tTHS2u3+WuMDMhgGr3P1CM8sGtias3pYwvwv9P5NaRM1HIjH/AIa5+39KLX8TuKb4hZkd\nHsw2JXa2ALHhtLNDj1AkBZQUpK5zAHf/0t0fSlhW3PvoTqC+mc0xs7nA74PlDwMXB81D3YBNpfdZ\nwWuRtKWhs0VEJE5nCiIiEqekICIicUoKIiISp6QgIiJxSgoiIhKnpCAiInFKCiIiEqekICIicf8f\nReuGFnegfMcAAAAASUVORK5CYII=\n",
|
|
"text/plain": [
|
|
"<matplotlib.figure.Figure at 0x7f38ed836f10>"
|
|
]
|
|
},
|
|
"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.10"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 0
|
|
}
|