mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-22 06:55:35 -04:00
2415 lines
153 KiB
Text
2415 lines
153 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",
|
|
"\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, which we can use OpenMC's lattice/universe feature for. 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 create 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.add_surface(fuel_outer_radius, halfspace=-1)\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.add_surface(fuel_outer_radius, halfspace=+1)\n",
|
|
"clad_cell.add_surface(clad_outer_radius, halfspace=-1)\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.add_surface(clad_outer_radius, halfspace=+1)\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.26cm 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.add_surface(min_x, halfspace=+1)\n",
|
|
"root_cell.add_surface(max_x, halfspace=-1)\n",
|
|
"root_cell.add_surface(min_y, halfspace=+1)\n",
|
|
"root_cell.add_surface(max_y, halfspace=-1)\n",
|
|
"root_cell.add_surface(min_z, halfspace=+1)\n",
|
|
"root_cell.add_surface(max_z, halfspace=-1)\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 geometry file, 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.set_source_space('box', source_bounds)\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/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAAPZSURB\nVGje7Zs7buMwEIZ9iey50gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwg\nwIcgg8Cc4fCTSK5W4OeFkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7\nE08mlia+rn7VcKXP8sRszFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WB\nzfiz20hXORmP9fi/bM9EeUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4\nlXju8K3DKv9NThOZ3q2KmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3Oaf\nPX40NGgST2r+uvQkXXp6cKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcub\nlfKGt6apotG/NVx3SInWtLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJb\nf8qlPynYmpKCh7OB1fzNalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utr\nJTy8/06TXh0r/5JOa2JmYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU\n4YuBTPa/8P67l/6r44ds+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m\n/65n+S8p/itN15v0UkW3/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB\n6R3Cqn55U4rv4kfH3zaSgQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6\nbjT6rym9I/v/03/b+LHS4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv\n6h9B/Bfxr9j1Hz2eN/hO8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wX\nfP8Mvf9G37/D/ovuP8SeP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7\n+O+E8zdP/8XOf8Hnz9Dzb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589j\nz5/Y8ej9h4D+W7qQmf57efqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m\n4fwXuH+M3n+OO3++AX9clR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEwLTAzVDAwOjQ2\nOjE5LTA0OjAwwJEVeQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0xMC0wM1QwMDo0NjoxOS0wNDow\nMLHMrcUAAAAASUVORK5CYII=\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.0\n",
|
|
" Git SHA1: e0c2aace2e73367536fa03e153b67a2d038cd2b3\n",
|
|
" Date/Time: 2015-10-03 00:46:19\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: 92238.71c\n",
|
|
" Loading ACE cross section table: 8016.71c\n",
|
|
" Loading ACE cross section table: 92235.71c\n",
|
|
" Loading ACE cross section table: 5010.71c\n",
|
|
" Loading ACE cross section table: 1001.71c\n",
|
|
" Loading ACE cross section table: 40090.71c\n",
|
|
" Initializing source particles...\n",
|
|
"\n",
|
|
" ===========================================================================\n",
|
|
" ====================> K EIGENVALUE SIMULATION <====================\n",
|
|
" ===========================================================================\n",
|
|
"\n",
|
|
" Bat./Gen. k Average k \n",
|
|
" ========= ======== ==================== \n",
|
|
" 1/1 0.59998 \n",
|
|
" 2/1 0.65473 \n",
|
|
" 3/1 0.67452 \n",
|
|
" 4/1 0.66458 \n",
|
|
" 5/1 0.70093 \n",
|
|
" 6/1 0.70726 \n",
|
|
" 7/1 0.65977 0.68351 +/- 0.02375\n",
|
|
" 8/1 0.68457 0.68387 +/- 0.01372\n",
|
|
" 9/1 0.70024 0.68796 +/- 0.01053\n",
|
|
" 10/1 0.64895 0.68016 +/- 0.01128\n",
|
|
" 11/1 0.68744 0.68137 +/- 0.00929\n",
|
|
" 12/1 0.68037 0.68123 +/- 0.00786\n",
|
|
" 13/1 0.64865 0.67715 +/- 0.00793\n",
|
|
" 14/1 0.71415 0.68127 +/- 0.00811\n",
|
|
" 15/1 0.65717 0.67886 +/- 0.00764\n",
|
|
" 16/1 0.71598 0.68223 +/- 0.00769\n",
|
|
" 17/1 0.67285 0.68145 +/- 0.00707\n",
|
|
" 18/1 0.69329 0.68236 +/- 0.00656\n",
|
|
" 19/1 0.65696 0.68055 +/- 0.00634\n",
|
|
" 20/1 0.65500 0.67884 +/- 0.00615\n",
|
|
" Triggers unsatisfied, max unc./thresh. is 1.21110 for absorption in tally 10002\n",
|
|
" The estimated number of batches is 28\n",
|
|
" Creating state point statepoint.020.h5...\n",
|
|
" 21/1 0.67090 0.67835 +/- 0.00577\n",
|
|
" 22/1 0.69025 0.67905 +/- 0.00546\n",
|
|
" 23/1 0.66113 0.67805 +/- 0.00525\n",
|
|
" 24/1 0.67934 0.67812 +/- 0.00496\n",
|
|
" 25/1 0.67203 0.67781 +/- 0.00472\n",
|
|
" 26/1 0.66928 0.67741 +/- 0.00451\n",
|
|
" 27/1 0.70271 0.67856 +/- 0.00445\n",
|
|
" 28/1 0.70233 0.67959 +/- 0.00437\n",
|
|
" Triggers satisfied for batch 28\n",
|
|
" Creating state point statepoint.028.h5...\n",
|
|
"\n",
|
|
" ===========================================================================\n",
|
|
" ======================> SIMULATION FINISHED <======================\n",
|
|
" ===========================================================================\n",
|
|
"\n",
|
|
"\n",
|
|
" =======================> TIMING STATISTICS <=======================\n",
|
|
"\n",
|
|
" Total time for initialization = 3.9600E-01 seconds\n",
|
|
" Reading cross sections = 9.0000E-02 seconds\n",
|
|
" Total time in simulation = 1.2458E+01 seconds\n",
|
|
" Time in transport only = 1.2445E+01 seconds\n",
|
|
" Time in inactive batches = 1.2760E+00 seconds\n",
|
|
" Time in active batches = 1.1182E+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.2865E+01 seconds\n",
|
|
" Calculation Rate (inactive) = 9796.24 neutrons/second\n",
|
|
" Calculation Rate (active) = 3353.60 neutrons/second\n",
|
|
"\n",
|
|
" ============================> RESULTS <============================\n",
|
|
"\n",
|
|
" k-effective (Collision) = 0.68196 +/- 0.00427\n",
|
|
" k-effective (Track-length) = 0.67959 +/- 0.00437\n",
|
|
" k-effective (Absorption) = 0.67957 +/- 0.00402\n",
|
|
" Combined k-effective = 0.67943 +/- 0.00295\n",
|
|
" Leakage Fraction = 0.34370 +/- 0.00201\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.1127471 ]]\n",
|
|
"\n",
|
|
" [[ 0.06599162]]\n",
|
|
"\n",
|
|
" [[ 0.25310075]]\n",
|
|
"\n",
|
|
" [[ 0.10150973]]]\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.000224</td>\n",
|
|
" <td>0.000025</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.000546</td>\n",
|
|
" <td>0.000062</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.000071</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.000187</td>\n",
|
|
" <td>0.000010</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.000392</td>\n",
|
|
" <td>0.000045</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.000955</td>\n",
|
|
" <td>0.000110</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.000096</td>\n",
|
|
" <td>0.000005</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.000252</td>\n",
|
|
" <td>0.000014</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.000551</td>\n",
|
|
" <td>0.000053</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.001343</td>\n",
|
|
" <td>0.000130</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.000131</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.000343</td>\n",
|
|
" <td>0.000019</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.000688</td>\n",
|
|
" <td>0.000063</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.001676</td>\n",
|
|
" <td>0.000153</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.000151</td>\n",
|
|
" <td>0.000007</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.000395</td>\n",
|
|
" <td>0.000019</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.000785</td>\n",
|
|
" <td>0.000065</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.001914</td>\n",
|
|
" <td>0.000158</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.000187</td>\n",
|
|
" <td>0.000008</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.000487</td>\n",
|
|
" <td>0.000019</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.000224 0.000025\n",
|
|
"1 1 1 1 (0.0e+00 - 6.3e-07) nu-fission 0.000546 0.000062\n",
|
|
"2 1 1 1 (6.3e-07 - 2.0e+01) fission 0.000071 0.000004\n",
|
|
"3 1 1 1 (6.3e-07 - 2.0e+01) nu-fission 0.000187 0.000010\n",
|
|
"4 1 2 1 (0.0e+00 - 6.3e-07) fission 0.000392 0.000045\n",
|
|
"5 1 2 1 (0.0e+00 - 6.3e-07) nu-fission 0.000955 0.000110\n",
|
|
"6 1 2 1 (6.3e-07 - 2.0e+01) fission 0.000096 0.000005\n",
|
|
"7 1 2 1 (6.3e-07 - 2.0e+01) nu-fission 0.000252 0.000014\n",
|
|
"8 1 3 1 (0.0e+00 - 6.3e-07) fission 0.000551 0.000053\n",
|
|
"9 1 3 1 (0.0e+00 - 6.3e-07) nu-fission 0.001343 0.000130\n",
|
|
"10 1 3 1 (6.3e-07 - 2.0e+01) fission 0.000131 0.000008\n",
|
|
"11 1 3 1 (6.3e-07 - 2.0e+01) nu-fission 0.000343 0.000019\n",
|
|
"12 1 4 1 (0.0e+00 - 6.3e-07) fission 0.000688 0.000063\n",
|
|
"13 1 4 1 (0.0e+00 - 6.3e-07) nu-fission 0.001676 0.000153\n",
|
|
"14 1 4 1 (6.3e-07 - 2.0e+01) fission 0.000151 0.000007\n",
|
|
"15 1 4 1 (6.3e-07 - 2.0e+01) nu-fission 0.000395 0.000019\n",
|
|
"16 1 5 1 (0.0e+00 - 6.3e-07) fission 0.000785 0.000065\n",
|
|
"17 1 5 1 (0.0e+00 - 6.3e-07) nu-fission 0.001914 0.000158\n",
|
|
"18 1 5 1 (6.3e-07 - 2.0e+01) fission 0.000187 0.000008\n",
|
|
"19 1 5 1 (6.3e-07 - 2.0e+01) nu-fission 0.000487 0.000019"
|
|
]
|
|
},
|
|
"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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\nBPCvjMC6bD6xSh4AAAAASUVORK5CYII=\n",
|
|
"text/plain": [
|
|
"<matplotlib.figure.Figure at 0x7fd85c776b10>"
|
|
]
|
|
},
|
|
"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 0x7fd85c414cf8>"
|
|
]
|
|
},
|
|
"execution_count": 27,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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\nefX/AdmeWI23zkQnAAAAAElFTkSuQmCC\n",
|
|
"text/plain": [
|
|
"<matplotlib.figure.Figure at 0x7fd85c579390>"
|
|
]
|
|
},
|
|
"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.038330</td>\n",
|
|
" <td>0.001119</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.000008</td>\n",
|
|
" <td>0.000341</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.000342</td>\n",
|
|
" <td>0.000342</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.000201</td>\n",
|
|
" <td>0.000262</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.000136</td>\n",
|
|
" <td>0.000152</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.000042</td>\n",
|
|
" <td>0.000131</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.000303</td>\n",
|
|
" <td>0.000185</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.000407</td>\n",
|
|
" <td>0.000184</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.000145</td>\n",
|
|
" <td>0.000120</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.319322</td>\n",
|
|
" <td>0.006166</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.023638</td>\n",
|
|
" <td>0.001940</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.003463</td>\n",
|
|
" <td>0.001892</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.025099</td>\n",
|
|
" <td>0.002270</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.000617</td>\n",
|
|
" <td>0.001197</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.002549</td>\n",
|
|
" <td>0.001187</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.007121</td>\n",
|
|
" <td>0.001646</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.000058</td>\n",
|
|
" <td>0.001323</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.002235</td>\n",
|
|
" <td>0.000867</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.038330 0.001119\n",
|
|
"1 10000 U-235 scatter-Y1,-1 0.000008 0.000341\n",
|
|
"2 10000 U-235 scatter-Y1,0 -0.000342 0.000342\n",
|
|
"3 10000 U-235 scatter-Y1,1 0.000201 0.000262\n",
|
|
"4 10000 U-235 scatter-Y2,-2 0.000136 0.000152\n",
|
|
"5 10000 U-235 scatter-Y2,-1 0.000042 0.000131\n",
|
|
"6 10000 U-235 scatter-Y2,0 0.000303 0.000185\n",
|
|
"7 10000 U-235 scatter-Y2,1 -0.000407 0.000184\n",
|
|
"8 10000 U-235 scatter-Y2,2 -0.000145 0.000120\n",
|
|
"9 10000 U-238 scatter-Y0,0 2.319322 0.006166\n",
|
|
"10 10000 U-238 scatter-Y1,-1 -0.023638 0.001940\n",
|
|
"11 10000 U-238 scatter-Y1,0 -0.003463 0.001892\n",
|
|
"12 10000 U-238 scatter-Y1,1 0.025099 0.002270\n",
|
|
"13 10000 U-238 scatter-Y2,-2 -0.000617 0.001197\n",
|
|
"14 10000 U-238 scatter-Y2,-1 0.002549 0.001187\n",
|
|
"15 10000 U-238 scatter-Y2,0 0.007121 0.001646\n",
|
|
"16 10000 U-238 scatter-Y2,1 -0.000058 0.001323\n",
|
|
"17 10000 U-238 scatter-Y2,2 -0.002235 0.000867"
|
|
]
|
|
},
|
|
"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.00086668 0.0061658 ]\n",
|
|
" [ 0.00011981 0.00111862]]]\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.03658762]]]\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.000081</td>\n",
|
|
" <td>0.000008</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>559</th>\n",
|
|
" <td>279</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.013109</td>\n",
|
|
" <td>0.000358</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>560</th>\n",
|
|
" <td>280</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000088</td>\n",
|
|
" <td>0.000010</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>561</th>\n",
|
|
" <td>280</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.014395</td>\n",
|
|
" <td>0.000586</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>562</th>\n",
|
|
" <td>281</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000097</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.014637</td>\n",
|
|
" <td>0.000427</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>564</th>\n",
|
|
" <td>282</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000107</td>\n",
|
|
" <td>0.000009</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>565</th>\n",
|
|
" <td>282</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.015683</td>\n",
|
|
" <td>0.000552</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>566</th>\n",
|
|
" <td>283</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000110</td>\n",
|
|
" <td>0.000009</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>567</th>\n",
|
|
" <td>283</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.016293</td>\n",
|
|
" <td>0.000627</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>568</th>\n",
|
|
" <td>284</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000111</td>\n",
|
|
" <td>0.000007</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>569</th>\n",
|
|
" <td>284</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.017032</td>\n",
|
|
" <td>0.000445</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>570</th>\n",
|
|
" <td>285</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000112</td>\n",
|
|
" <td>0.000006</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>571</th>\n",
|
|
" <td>285</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.017666</td>\n",
|
|
" <td>0.000425</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>572</th>\n",
|
|
" <td>286</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000123</td>\n",
|
|
" <td>0.000011</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>573</th>\n",
|
|
" <td>286</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.017706</td>\n",
|
|
" <td>0.000597</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>574</th>\n",
|
|
" <td>287</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000108</td>\n",
|
|
" <td>0.000011</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>575</th>\n",
|
|
" <td>287</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.017339</td>\n",
|
|
" <td>0.000664</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>576</th>\n",
|
|
" <td>288</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000129</td>\n",
|
|
" <td>0.000011</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>577</th>\n",
|
|
" <td>288</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.018452</td>\n",
|
|
" <td>0.000523</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" distribcell score mean std. dev.\n",
|
|
"558 279 absorption 0.000081 0.000008\n",
|
|
"559 279 scatter 0.013109 0.000358\n",
|
|
"560 280 absorption 0.000088 0.000010\n",
|
|
"561 280 scatter 0.014395 0.000586\n",
|
|
"562 281 absorption 0.000097 0.000010\n",
|
|
"563 281 scatter 0.014637 0.000427\n",
|
|
"564 282 absorption 0.000107 0.000009\n",
|
|
"565 282 scatter 0.015683 0.000552\n",
|
|
"566 283 absorption 0.000110 0.000009\n",
|
|
"567 283 scatter 0.016293 0.000627\n",
|
|
"568 284 absorption 0.000111 0.000007\n",
|
|
"569 284 scatter 0.017032 0.000445\n",
|
|
"570 285 absorption 0.000112 0.000006\n",
|
|
"571 285 scatter 0.017666 0.000425\n",
|
|
"572 286 absorption 0.000123 0.000011\n",
|
|
"573 286 scatter 0.017706 0.000597\n",
|
|
"574 287 absorption 0.000108 0.000011\n",
|
|
"575 287 scatter 0.017339 0.000664\n",
|
|
"576 288 absorption 0.000129 0.000011\n",
|
|
"577 288 scatter 0.018452 0.000523"
|
|
]
|
|
},
|
|
"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.000131</td>\n",
|
|
" <td>0.000014</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.018582</td>\n",
|
|
" <td>0.000680</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000220</td>\n",
|
|
" <td>0.000023</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.028711</td>\n",
|
|
" <td>0.001186</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000295</td>\n",
|
|
" <td>0.000022</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>5</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.038782</td>\n",
|
|
" <td>0.001084</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>6</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000331</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>3</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.045772</td>\n",
|
|
" <td>0.001084</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>8</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000419</td>\n",
|
|
" <td>0.000026</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>9</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.055975</td>\n",
|
|
" <td>0.001344</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>10</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000514</td>\n",
|
|
" <td>0.000024</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>11</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.063289</td>\n",
|
|
" <td>0.001605</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>12</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000591</td>\n",
|
|
" <td>0.000027</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>13</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.071011</td>\n",
|
|
" <td>0.002058</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>14</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000671</td>\n",
|
|
" <td>0.000036</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>15</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.077891</td>\n",
|
|
" <td>0.001952</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>16</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000721</td>\n",
|
|
" <td>0.000031</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>17</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.086393</td>\n",
|
|
" <td>0.001722</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>18</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>9</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>9</td>\n",
|
|
" <td>absorption</td>\n",
|
|
" <td>0.000748</td>\n",
|
|
" <td>0.000033</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>19</th>\n",
|
|
" <td>10003</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10001</td>\n",
|
|
" <td>9</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>10002</td>\n",
|
|
" <td>10000</td>\n",
|
|
" <td>9</td>\n",
|
|
" <td>scatter</td>\n",
|
|
" <td>0.090861</td>\n",
|
|
" <td>0.001669</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 1 0 0 10002 10000 1 absorption \n",
|
|
"3 10003 0 10001 1 0 0 10002 10000 1 scatter \n",
|
|
"4 10003 0 10001 2 0 0 10002 10000 2 absorption \n",
|
|
"5 10003 0 10001 2 0 0 10002 10000 2 scatter \n",
|
|
"6 10003 0 10001 3 0 0 10002 10000 3 absorption \n",
|
|
"7 10003 0 10001 3 0 0 10002 10000 3 scatter \n",
|
|
"8 10003 0 10001 4 0 0 10002 10000 4 absorption \n",
|
|
"9 10003 0 10001 4 0 0 10002 10000 4 scatter \n",
|
|
"10 10003 0 10001 5 0 0 10002 10000 5 absorption \n",
|
|
"11 10003 0 10001 5 0 0 10002 10000 5 scatter \n",
|
|
"12 10003 0 10001 6 0 0 10002 10000 6 absorption \n",
|
|
"13 10003 0 10001 6 0 0 10002 10000 6 scatter \n",
|
|
"14 10003 0 10001 7 0 0 10002 10000 7 absorption \n",
|
|
"15 10003 0 10001 7 0 0 10002 10000 7 scatter \n",
|
|
"16 10003 0 10001 8 0 0 10002 10000 8 absorption \n",
|
|
"17 10003 0 10001 8 0 0 10002 10000 8 scatter \n",
|
|
"18 10003 0 10001 9 0 0 10002 10000 9 absorption \n",
|
|
"19 10003 0 10001 9 0 0 10002 10000 9 scatter \n",
|
|
"\n",
|
|
" mean std. dev. \n",
|
|
" \n",
|
|
" \n",
|
|
"0 0.000131 0.000014 \n",
|
|
"1 0.018582 0.000680 \n",
|
|
"2 0.000220 0.000023 \n",
|
|
"3 0.028711 0.001186 \n",
|
|
"4 0.000295 0.000022 \n",
|
|
"5 0.038782 0.001084 \n",
|
|
"6 0.000331 0.000022 \n",
|
|
"7 0.045772 0.001084 \n",
|
|
"8 0.000419 0.000026 \n",
|
|
"9 0.055975 0.001344 \n",
|
|
"10 0.000514 0.000024 \n",
|
|
"11 0.063289 0.001605 \n",
|
|
"12 0.000591 0.000027 \n",
|
|
"13 0.071011 0.002058 \n",
|
|
"14 0.000671 0.000036 \n",
|
|
"15 0.077891 0.001952 \n",
|
|
"16 0.000721 0.000031 \n",
|
|
"17 0.086393 0.001722 \n",
|
|
"18 0.000748 0.000033 \n",
|
|
"19 0.090861 0.001669 "
|
|
]
|
|
},
|
|
"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.000417</td>\n",
|
|
" <td>0.000020</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>std</th>\n",
|
|
" <td>0.000238</td>\n",
|
|
" <td>0.000008</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>min</th>\n",
|
|
" <td>0.000020</td>\n",
|
|
" <td>0.000003</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>25%</th>\n",
|
|
" <td>0.000214</td>\n",
|
|
" <td>0.000014</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>50%</th>\n",
|
|
" <td>0.000394</td>\n",
|
|
" <td>0.000019</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>75%</th>\n",
|
|
" <td>0.000627</td>\n",
|
|
" <td>0.000025</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>max</th>\n",
|
|
" <td>0.000915</td>\n",
|
|
" <td>0.000049</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.000417 0.000020\n",
|
|
"std 0.000238 0.000008\n",
|
|
"min 0.000020 0.000003\n",
|
|
"25% 0.000214 0.000014\n",
|
|
"50% 0.000394 0.000019\n",
|
|
"75% 0.000627 0.000025\n",
|
|
"max 0.000915 0.000049"
|
|
]
|
|
},
|
|
"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.498462484897\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: 1.61253828675e-41\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"# Extract tally data from pins in the pins divided along y=-x diagonal\n",
|
|
"multi_index = ('level 2', 'lat',)\n",
|
|
"lower = df[df[multi_index + ('x',)] > df[multi_index + ('y',)]]\n",
|
|
"upper = df[df[multi_index + ('x',)] < df[multi_index + ('y',)]]\n",
|
|
"lower = lower[lower['score'] == 'absorption']\n",
|
|
"upper = upper[upper['score'] == 'absorption']\n",
|
|
"\n",
|
|
"# Perform non-parametric Mann-Whitney U Test to see if the \n",
|
|
"# absorption rates (may) come from same sampling distribution\n",
|
|
"u, p = scipy.stats.mannwhitneyu(lower['mean'], upper['mean'])\n",
|
|
"print('Mann-Whitney Test p-value: {0}'.format(p))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Note that the asymmetry implied by the y=-x diagonal ensures that the two sampling distributions are *not* identical. Indeed, as illustrated by the test above, for any reasonable significance level (*e.g.*, $\\alpha$=0.05) one would **reject** the null hypothesis that the two sampling distributions are identical."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 38,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"/usr/local/lib/python2.7/dist-packages/IPython/kernel/__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.AxesSubplot at 0x7fd85c753650>"
|
|
]
|
|
},
|
|
"execution_count": 38,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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\norlkyRKeP3+erVp1IWCgqI78DIFVDAuLossVo41pQ4rqwy2ZmHgjbbYuFKvqVlBVI1i3bnMajRMo\nZofbaLNF+F0sBAtI4yGNR2kSSvozMzO5Zs0aLlmyxFtp9Vr1d+p0K4HV9ATQgXrU6XoQeJ6KUpuT\nJz9T+EEoTugNG7amw5FIp7Mbw8NjvUUbe/S4g6Jib87VvO+Vty8e/WFh0QS20RPstdsT+eGHH+bZ\nfvPmzbTbI+l01qfVGsYFCxbx6aefZnh4RZrN5Vi/fjMeOnTIu/2MGTNoMPhWEn6Fwp1zG1W1OgcO\nHMLGjdvSZqtB4f6qR1Ep+B1GR1fzHmfQoH9RBNQ9x9nJ6OjqHDz4Ier1U7TnXtBmEdna1buFgIF3\n331/ntldcnIyq1evR5OpEnW6kVTVBD722JMFjvfp06dpt0dSuKNI4FM6nVH866+/Cv1fpaamagH5\ntfQ013I6b+XUqVO928yf/xLNZjtVNZ7h4bHctWuX9n/0XTDxGZs06cixY59gtWpN2Lx5F37zzTdM\nSUlhixadaTCYGB5eievWrStUUyCANB6hbTwkocWQIcNpNI7TTgbrKPzkHjdOCo1Ga5FWy0yfPkOr\ntOqpwjuPN97YgyS5ePF/tF7tRyiqurbnlCkFNzM6cuQIq1Spr13lhtFqrcpu3frmWVKbkZGhXUF7\nakMdpF7vok7XjqKrYWMCbVmhQrw3nrN//35tietSAl9RUdry3nvv56pVq7h161a63W5mZmZy8uTJ\ntFq7Myf/xU293uTN5J816wXabN00N46bJtNY3nrrXdoJdixFwPlhiuCzZzx3sly52AI/d3Z2Nleu\nXMlp06YV2nHw66+/ptOZ6HMiJ53O+oW23RVFJQdTLCvvps3Q3qaiVMxTBTctLY0HDx70xnPuvXeY\nj2EkdboF7Nbt9qu+V0kCaTyk8ZCUHCdOnGB0dDXa7T1osTQh0NXnhJRJo9FapFav9933EP0bS33P\nuLi6JMVJZOLEKbTZXLRY7HzwwVFXNUgJCU1pMEzTTtxfetu65ubo0aNUlGif9/yGQGXm5FecI+Ck\n3d6aGzdu9O63fft2tmnTnbVrt+SkSc/kuxJo69atVNUqFKu1xFV2eHis94R45coVdu9+G222GNrt\nNVizZmOePHmSnTr1pEgMbEaxuEClwdCLOt0TVJQYLl/+Zp73uh6OHDmi9WPxFMg8SoslLE/9sNx8\n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\nRCKRSCSB5/8ByMyfADZGvh4AAAAASUVORK5CYII=\n",
|
|
"text/plain": [
|
|
"<matplotlib.figure.Figure at 0x7fd85c3c2090>"
|
|
]
|
|
},
|
|
"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 0x7fd85c163f90>"
|
|
]
|
|
},
|
|
"execution_count": 39,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<matplotlib.figure.Figure at 0x7fd85c378c10>"
|
|
]
|
|
},
|
|
"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.6"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 0
|
|
}
|