{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "This notebook demonstrates how systematic analysis of tally scores is possible using Pandas dataframes. A dataframe can be automatically generated using the `Tally.get_pandas_dataframe(...)` method. Furthermore, by linking the tally data in a statepoint file with geometry and material information from a summary file, the dataframe can be shown with user-supplied labels.\n", "\n", "**Note:** that this Notebook was created using the latest Pandas v0.16.1. Everything in the Notebook will wun with older versions of Pandas, but the multi-indexing option in >v0.15.0 makes the tables look prettier." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "%matplotlib inline\n", "import glob\n", "from IPython.display import Image\n", "import matplotlib.pyplot as plt\n", "import scipy.stats\n", "import numpy as np\n", "import pandas as pd\n", "\n", "import openmc" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Generate Input Files" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First we need to define materials that will be used in the problem. Before defining a material, we must create nuclides that are used in the material." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Instantiate some Nuclides\n", "h1 = openmc.Nuclide('H1')\n", "b10 = openmc.Nuclide('B10')\n", "o16 = openmc.Nuclide('O16')\n", "u235 = openmc.Nuclide('U235')\n", "u238 = openmc.Nuclide('U238')\n", "zr90 = openmc.Nuclide('Zr90')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "With the nuclides we defined, we will now create three materials for the fuel, water, and cladding of the fuel pin." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# 1.6 enriched fuel\n", "fuel = openmc.Material(name='1.6% Fuel')\n", "fuel.set_density('g/cm3', 10.31341)\n", "fuel.add_nuclide(u235, 3.7503e-4)\n", "fuel.add_nuclide(u238, 2.2625e-2)\n", "fuel.add_nuclide(o16, 4.6007e-2)\n", "\n", "# borated water\n", "water = openmc.Material(name='Borated Water')\n", "water.set_density('g/cm3', 0.740582)\n", "water.add_nuclide(h1, 4.9457e-2)\n", "water.add_nuclide(o16, 2.4732e-2)\n", "water.add_nuclide(b10, 8.0042e-6)\n", "\n", "# zircaloy\n", "zircaloy = openmc.Material(name='Zircaloy')\n", "zircaloy.set_density('g/cm3', 6.55)\n", "zircaloy.add_nuclide(zr90, 7.2758e-3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "With our three materials, we can now create a materials file object that can be exported to an actual XML file." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Instantiate a Materials collection\n", "materials_file = openmc.Materials((fuel, water, zircaloy))\n", "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.pitch = (1.26, 1.26)\n", "assembly.lower_left = [-1.26 * 17. / 2.0] * 2\n", "assembly.universes = [[pin_cell_universe] * 17] * 17" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "OpenMC requires that there is a \"root\" universe. Let us create a root cell that is filled by the pin cell universe and then assign it to the root universe." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Create root Cell\n", "root_cell = openmc.Cell(name='root cell')\n", "root_cell.fill = assembly\n", "\n", "# Add boundary planes\n", "root_cell.region = +min_x & -max_x & +min_y & -max_y & +min_z & -max_z\n", "\n", "# Create root Universe\n", "root_universe = openmc.Universe(universe_id=0, name='root universe')\n", "root_universe.add_cell(root_cell)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We now must create a geometry that is assigned a root universe and export it to XML." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Create Geometry and set root Universe\n", "geometry = openmc.Geometry()\n", "geometry.root_universe = root_universe" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Export to \"geometry.xml\"\n", "geometry.export_to_xml()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "With the geometry and materials finished, we now just need to define simulation parameters. In this case, we will use 5 inactive batches and 15 minimum active batches each with 2500 particles. We also tell OpenMC to turn tally triggers on, which means it will keep running until some criterion on the uncertainty of tallies is reached." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# OpenMC simulation parameters\n", "min_batches = 20\n", "max_batches = 200\n", "inactive = 5\n", "particles = 2500\n", "\n", "# Instantiate a Settings object\n", "settings_file = openmc.Settings()\n", "settings_file.batches = min_batches\n", "settings_file.inactive = inactive\n", "settings_file.particles = particles\n", "settings_file.output = {'tallies': False}\n", "settings_file.trigger_active = True\n", "settings_file.trigger_max_batches = max_batches\n", "\n", "# Create an initial uniform spatial source distribution over fissionable zones\n", "bounds = [-10.71, -10.71, -10, 10.71, 10.71, 10.]\n", "uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True)\n", "settings_file.source = openmc.source.Source(space=uniform_dist)\n", "\n", "# Export to \"settings.xml\"\n", "settings_file.export_to_xml()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us also create a plot file that we can use to verify that our pin cell geometry was created successfully." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Instantiate a Plot\n", "plot = openmc.Plot(plot_id=1)\n", "plot.filename = 'materials-xy'\n", "plot.origin = [0, 0, 0]\n", "plot.width = [21.5, 21.5]\n", "plot.pixels = [250, 250]\n", "plot.color = 'mat'\n", "\n", "# Instantiate a Plots collection and export to \"plots.xml\"\n", "plot_file = openmc.Plots([plot])\n", "plot_file.export_to_xml()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "With the plots.xml file, we can now generate and view the plot. OpenMC outputs plots in .ppm format, which can be converted into a compressed format like .png with the convert utility." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Run openmc in plotting mode\n", "openmc.plot_geometry(output=False)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AHFxUkA9dy05MAAAPZSURBVGje7Zs7buMwEIZ9iey5\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+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA3LTIzVDE2OjM2OjAzLTA1OjAwxjuLbgAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNy0yM1QxNjozNjowMy0wNTowMLdmM9IAAAAASUVORK5C\nYII=\n", "text/plain": [ "" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Convert OpenMC's funky ppm to png\n", "!convert materials-xy.ppm materials-xy.png\n", "\n", "# Display the materials plot inline\n", "Image(filename='materials-xy.png')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we can see from the plot, we have a nice array of pin cells with fuel, cladding, and water! Before we run our simulation, we need to tell the code what we want to tally. The following code shows how to create a variety of tallies." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Instantiate an empty Tallies object\n", "tallies_file = openmc.Tallies()\n", "tallies_file._tallies = []" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Instantiate a fission rate mesh Tally" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Instantiate a tally Mesh\n", "mesh = openmc.Mesh(mesh_id=1)\n", "mesh.type = 'regular'\n", "mesh.dimension = [17, 17]\n", "mesh.lower_left = [-10.71, -10.71]\n", "mesh.width = [1.26, 1.26]\n", "\n", "# Instantiate tally Filter\n", "mesh_filter = openmc.Filter()\n", "mesh_filter.mesh = mesh\n", "\n", "# Instantiate energy Filter\n", "energy_filter = openmc.Filter()\n", "energy_filter.type = 'energy'\n", "energy_filter.bins = np.array([0, 0.625e-6, 20.])\n", "\n", "# Instantiate the Tally\n", "tally = openmc.Tally(name='mesh tally')\n", "tally.filters = [mesh_filter, energy_filter]\n", "tally.scores = ['fission', 'nu-fission']\n", "\n", "# Add mesh and Tally to Tallies\n", "tallies_file.append(tally)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Instantiate a cell Tally with nuclides" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Instantiate tally Filter\n", "cell_filter = openmc.Filter(type='cell', bins=[fuel_cell.id])\n", "\n", "# Instantiate the tally\n", "tally = openmc.Tally(name='cell tally')\n", "tally.filters = [cell_filter]\n", "tally.scores = ['scatter-y2']\n", "tally.nuclides = [u235, u238]\n", "\n", "# Add mesh and tally to Tallies\n", "tallies_file.append(tally)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create a \"distribcell\" Tally. The distribcell filter allows us to tally multiple repeated instances of the same cell throughout the geometry." ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Instantiate tally Filter\n", "distribcell_filter = openmc.Filter(type='distribcell', bins=[moderator_cell.id])\n", "\n", "# Instantiate tally Trigger for kicks\n", "trigger = openmc.Trigger(trigger_type='std_dev', threshold=5e-5)\n", "trigger.scores = ['absorption']\n", "\n", "# Instantiate the Tally\n", "tally = openmc.Tally(name='distribcell tally')\n", "tally.filters = [distribcell_filter]\n", "tally.scores = ['absorption', 'scatter']\n", "tally.triggers = [trigger]\n", "\n", "# Add mesh and tally to Tallies\n", "tallies_file.append(tally)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Export to \"tallies.xml\"\n", "tallies_file.export_to_xml()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we a have a complete set of inputs, so we can go ahead and run our simulation." ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " .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-2016 Massachusetts Institute of Technology\n", " License: http://openmc.readthedocs.io/en/latest/license.html\n", " Version: 0.7.1\n", " Git SHA1: 3d68c07625e33cd64188df03ee03e9c31b3d4b74\n", " Date/Time: 2016-07-23 16:36:04\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", " ===========================================================================\n", "\n", " Reading settings XML file...\n", " Reading geometry XML file...\n", " Reading cross sections XML file...\n", " Reading materials XML file...\n", " Reading U235.71c from /home/romano/openmc/data/nndc_hdf5/U235_71c.h5\n", " Reading U238.71c from /home/romano/openmc/data/nndc_hdf5/U238_71c.h5\n", " Reading O16.71c from /home/romano/openmc/data/nndc_hdf5/O16_71c.h5\n", " Reading H1.71c from /home/romano/openmc/data/nndc_hdf5/H1_71c.h5\n", " Reading B10.71c from /home/romano/openmc/data/nndc_hdf5/B10_71c.h5\n", " Reading Zr90.71c from /home/romano/openmc/data/nndc_hdf5/Zr90_71c.h5\n", " Maximum neutron transport energy: 20.0000 MeV for U235.71c\n", " Reading tallies XML file...\n", " Building neighboring cells lists for each surface...\n", " Initializing source particles...\n", "\n", " ===========================================================================\n", " ====================> K EIGENVALUE SIMULATION <====================\n", " ===========================================================================\n", "\n", " Bat./Gen. k Average k \n", " ========= ======== ==================== \n", " 1/1 0.55921 \n", " 2/1 0.63816 \n", " 3/1 0.68834 \n", " 4/1 0.71192 \n", " 5/1 0.67935 \n", " 6/1 0.68274 \n", " 7/1 0.66339 0.67307 +/- 0.00967\n", " 8/1 0.65835 0.66816 +/- 0.00743\n", " 9/1 0.66697 0.66786 +/- 0.00527\n", " 10/1 0.70498 0.67528 +/- 0.00847\n", " 11/1 0.68596 0.67706 +/- 0.00714\n", " 12/1 0.68481 0.67817 +/- 0.00614\n", " 13/1 0.68369 0.67886 +/- 0.00536\n", " 14/1 0.68785 0.67986 +/- 0.00483\n", " 15/1 0.66145 0.67802 +/- 0.00470\n", " 16/1 0.71831 0.68168 +/- 0.00561\n", " 17/1 0.68428 0.68190 +/- 0.00512\n", " 18/1 0.67527 0.68139 +/- 0.00474\n", " 19/1 0.68166 0.68141 +/- 0.00439\n", " 20/1 0.65475 0.67963 +/- 0.00446\n", " Triggers unsatisfied, max unc./thresh. is 1.07581 for absorption in tally 10002\n", " The estimated number of batches is 23\n", " Creating state point statepoint.020.h5...\n", " 21/1 0.64538 0.67749 +/- 0.00469\n", " 22/1 0.73275 0.68074 +/- 0.00547\n", " 23/1 0.71674 0.68274 +/- 0.00553\n", " Triggers satisfied for batch 23\n", " Creating state point statepoint.023.h5...\n", "\n", " ===========================================================================\n", " ======================> SIMULATION FINISHED <======================\n", " ===========================================================================\n", "\n", "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", " Total time for initialization = 4.2600E-01 seconds\n", " Reading cross sections = 2.9500E-01 seconds\n", " Total time in simulation = 1.1986E+01 seconds\n", " Time in transport only = 1.1977E+01 seconds\n", " Time in inactive batches = 1.8370E+00 seconds\n", " Time in active batches = 1.0149E+01 seconds\n", " Time synchronizing fission bank = 2.0000E-03 seconds\n", " Sampling source sites = 1.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.2431E+01 seconds\n", " Calculation Rate (inactive) = 6804.57 neutrons/second\n", " Calculation Rate (active) = 3694.95 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", " k-effective (Collision) = 0.67952 +/- 0.00434\n", " k-effective (Track-length) = 0.68274 +/- 0.00553\n", " k-effective (Absorption) = 0.68095 +/- 0.00369\n", " Combined k-effective = 0.67994 +/- 0.00349\n", " Leakage Fraction = 0.34133 +/- 0.00332\n", "\n" ] }, { "data": { "text/plain": [ "0" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Remove old HDF5 (summary, statepoint) files\n", "!rm statepoint.*\n", "\n", "# Run OpenMC!\n", "openmc.run()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Tally Data Processing" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# We do not know how many batches were needed to satisfy the \n", "# tally trigger(s), so find the statepoint file(s)\n", "statepoints = glob.glob('statepoint.*.h5')\n", "\n", "# Load the last statepoint file\n", "sp = openmc.StatePoint(statepoints[-1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Analyze the mesh fission rate tally**" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tally\n", "\tID =\t10000\n", "\tName =\tmesh tally\n", "\tFilters =\t\n", " \t\tmesh\t[1]\n", " \t\tenergy\t[ 0.00000000e+00 6.25000000e-07 2.00000000e+01]\n", "\tNuclides =\ttotal \n", "\tScores =\t['fission', 'nu-fission']\n", "\tEstimator =\ttracklength\n", "\n" ] } ], "source": [ "# Find the mesh tally with the StatePoint API\n", "tally = sp.get_tally(name='mesh tally')\n", "\n", "# Print a little info about the mesh tally to the screen\n", "print(tally)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Use the new Tally data retrieval API with pure NumPy" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[[ 0.1501735 ]]\n", "\n", " [[ 0.05936257]]\n", "\n", " [[ 0.21402727]]\n", "\n", " [[ 0.13436703]]]\n" ] } ], "source": [ "# Get the relative error for the thermal fission reaction \n", "# rates in the four corner pins \n", "data = tally.get_values(scores=['fission'], 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": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
mesh 1energy low [MeV]energy high [MeV]scoremeanstd. dev.
xyz
01110.00e+006.25e-07fission2.20e-043.31e-05
11110.00e+006.25e-07nu-fission5.37e-048.06e-05
21116.25e-072.00e+01fission7.43e-057.91e-06
31116.25e-072.00e+01nu-fission1.97e-041.96e-05
41210.00e+006.25e-07fission3.52e-043.39e-05
51210.00e+006.25e-07nu-fission8.57e-048.26e-05
61216.25e-072.00e+01fission1.02e-046.16e-06
71216.25e-072.00e+01nu-fission2.70e-041.61e-05
81310.00e+006.25e-07fission6.09e-046.55e-05
91310.00e+006.25e-07nu-fission1.48e-031.60e-04
101316.25e-072.00e+01fission1.38e-046.74e-06
111316.25e-072.00e+01nu-fission3.65e-041.88e-05
121410.00e+006.25e-07fission6.23e-045.16e-05
131410.00e+006.25e-07nu-fission1.52e-031.26e-04
141416.25e-072.00e+01fission1.74e-049.99e-06
151416.25e-072.00e+01nu-fission4.58e-042.68e-05
161510.00e+006.25e-07fission6.94e-048.68e-05
171510.00e+006.25e-07nu-fission1.69e-032.12e-04
181516.25e-072.00e+01fission1.75e-041.10e-05
191516.25e-072.00e+01nu-fission4.55e-042.80e-05
\n", "
" ], "text/plain": [ " mesh 1 energy low [MeV] energy high [MeV] score mean \\\n", " x y z \n", "0 1 1 1 0.00e+00 6.25e-07 fission 2.20e-04 \n", "1 1 1 1 0.00e+00 6.25e-07 nu-fission 5.37e-04 \n", "2 1 1 1 6.25e-07 2.00e+01 fission 7.43e-05 \n", "3 1 1 1 6.25e-07 2.00e+01 nu-fission 1.97e-04 \n", "4 1 2 1 0.00e+00 6.25e-07 fission 3.52e-04 \n", "5 1 2 1 0.00e+00 6.25e-07 nu-fission 8.57e-04 \n", "6 1 2 1 6.25e-07 2.00e+01 fission 1.02e-04 \n", "7 1 2 1 6.25e-07 2.00e+01 nu-fission 2.70e-04 \n", "8 1 3 1 0.00e+00 6.25e-07 fission 6.09e-04 \n", "9 1 3 1 0.00e+00 6.25e-07 nu-fission 1.48e-03 \n", "10 1 3 1 6.25e-07 2.00e+01 fission 1.38e-04 \n", "11 1 3 1 6.25e-07 2.00e+01 nu-fission 3.65e-04 \n", "12 1 4 1 0.00e+00 6.25e-07 fission 6.23e-04 \n", "13 1 4 1 0.00e+00 6.25e-07 nu-fission 1.52e-03 \n", "14 1 4 1 6.25e-07 2.00e+01 fission 1.74e-04 \n", "15 1 4 1 6.25e-07 2.00e+01 nu-fission 4.58e-04 \n", "16 1 5 1 0.00e+00 6.25e-07 fission 6.94e-04 \n", "17 1 5 1 0.00e+00 6.25e-07 nu-fission 1.69e-03 \n", "18 1 5 1 6.25e-07 2.00e+01 fission 1.75e-04 \n", "19 1 5 1 6.25e-07 2.00e+01 nu-fission 4.55e-04 \n", "\n", " std. dev. \n", " \n", "0 3.31e-05 \n", "1 8.06e-05 \n", "2 7.91e-06 \n", "3 1.96e-05 \n", "4 3.39e-05 \n", "5 8.26e-05 \n", "6 6.16e-06 \n", "7 1.61e-05 \n", "8 6.55e-05 \n", "9 1.60e-04 \n", "10 6.74e-06 \n", "11 1.88e-05 \n", "12 5.16e-05 \n", "13 1.26e-04 \n", "14 9.99e-06 \n", "15 2.68e-05 \n", "16 8.68e-05 \n", "17 2.12e-04 \n", "18 1.10e-05 \n", "19 2.80e-05 " ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Get a pandas dataframe for the mesh tally data\n", "df = tally.get_pandas_dataframe(nuclides=False)\n", "\n", "# Set the Pandas float display settings\n", "pd.options.display.float_format = '{:.2e}'.format\n", "\n", "# Print the first twenty rows in the dataframe\n", "df.head(20)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n/wf1F+RhutXrZwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Create a boxplot to view the distribution of\n", "# fission and nu-fission rates in the pins\n", "bp = df.boxplot(column='mean', by='score')" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nJ/KLgSwAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Extract thermal nu-fission rates from pandas\n", "fiss = df[df['score'] == 'nu-fission']\n", "fiss = fiss[fiss['energy low [MeV]'] == 0.0]\n", "\n", "# Extract mean and reshape as 2D NumPy arrays\n", "mean = fiss['mean'].reshape((17,17))\n", "\n", "plt.imshow(mean, interpolation='nearest')\n", "plt.title('fission rate')\n", "plt.xlabel('x')\n", "plt.ylabel('y')\n", "plt.colorbar()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Analyze the cell+nuclides scatter-y2 rate tally**" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tally\n", "\tID =\t10001\n", "\tName =\tcell tally\n", "\tFilters =\t\n", " \t\tcell\t[10000]\n", "\tNuclides =\tU235 U238 \n", "\tScores =\t['scatter-Y0,0', 'scatter-Y1,-1', 'scatter-Y1,0', 'scatter-Y1,1', 'scatter-Y2,-2', 'scatter-Y2,-1', 'scatter-Y2,0', 'scatter-Y2,1', 'scatter-Y2,2']\n", "\tEstimator =\tanalog\n", "\n" ] } ], "source": [ "# Find the cell Tally with the StatePoint API\n", "tally = sp.get_tally(name='cell tally')\n", "\n", "# Print a little info about the cell tally to the screen\n", "print(tally)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
cellnuclidescoremeanstd. dev.
010000U235scatter-Y0,03.84e-021.32e-03
110000U235scatter-Y1,-13.61e-043.13e-04
210000U235scatter-Y1,0-2.38e-044.69e-04
310000U235scatter-Y1,1-5.08e-043.83e-04
410000U235scatter-Y2,-26.68e-052.46e-04
510000U235scatter-Y2,-16.47e-062.84e-04
610000U235scatter-Y2,0-1.41e-041.75e-04
710000U235scatter-Y2,11.61e-042.33e-04
810000U235scatter-Y2,2-1.80e-051.97e-04
910000U238scatter-Y0,02.33e+001.35e-02
1010000U238scatter-Y1,-12.53e-023.23e-03
1110000U238scatter-Y1,07.10e-042.92e-03
1210000U238scatter-Y1,1-2.49e-023.52e-03
1310000U238scatter-Y2,-2-1.43e-031.17e-03
1410000U238scatter-Y2,-16.84e-041.63e-03
1510000U238scatter-Y2,02.85e-032.63e-03
1610000U238scatter-Y2,13.97e-032.24e-03
1710000U238scatter-Y2,22.26e-031.85e-03
\n", "
" ], "text/plain": [ " cell nuclide score mean std. dev.\n", "0 10000 U235 scatter-Y0,0 3.84e-02 1.32e-03\n", "1 10000 U235 scatter-Y1,-1 3.61e-04 3.13e-04\n", "2 10000 U235 scatter-Y1,0 -2.38e-04 4.69e-04\n", "3 10000 U235 scatter-Y1,1 -5.08e-04 3.83e-04\n", "4 10000 U235 scatter-Y2,-2 6.68e-05 2.46e-04\n", "5 10000 U235 scatter-Y2,-1 6.47e-06 2.84e-04\n", "6 10000 U235 scatter-Y2,0 -1.41e-04 1.75e-04\n", "7 10000 U235 scatter-Y2,1 1.61e-04 2.33e-04\n", "8 10000 U235 scatter-Y2,2 -1.80e-05 1.97e-04\n", "9 10000 U238 scatter-Y0,0 2.33e+00 1.35e-02\n", "10 10000 U238 scatter-Y1,-1 2.53e-02 3.23e-03\n", "11 10000 U238 scatter-Y1,0 7.10e-04 2.92e-03\n", "12 10000 U238 scatter-Y1,1 -2.49e-02 3.52e-03\n", "13 10000 U238 scatter-Y2,-2 -1.43e-03 1.17e-03\n", "14 10000 U238 scatter-Y2,-1 6.84e-04 1.63e-03\n", "15 10000 U238 scatter-Y2,0 2.85e-03 2.63e-03\n", "16 10000 U238 scatter-Y2,1 3.97e-03 2.24e-03\n", "17 10000 U238 scatter-Y2,2 2.26e-03 1.85e-03" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Get a pandas dataframe for the cell tally data\n", "df = tally.get_pandas_dataframe()\n", "\n", "# Print the first twenty rows in the dataframe\n", "df.head(100)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Use the new Tally data retrieval API with pure NumPy" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[[ 0.00185463 0.01350521]\n", " [ 0.00019723 0.00131654]]]\n" ] } ], "source": [ "# Get the standard deviations for two of the spherical harmonic\n", "# scattering reaction rates \n", "data = tally.get_values(scores=['scatter-Y2,2', 'scatter-Y0,0'], \n", " nuclides=['U238', 'U235'], value='std_dev')\n", "print(data)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Analyze the distribcell tally**" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tally\n", "\tID =\t10002\n", "\tName =\tdistribcell tally\n", "\tFilters =\t\n", " \t\tdistribcell\t[10002]\n", "\tNuclides =\ttotal \n", "\tScores =\t['absorption', 'scatter']\n", "\tEstimator =\ttracklength\n", "\n" ] } ], "source": [ "# Find the distribcell Tally with the StatePoint API\n", "tally = sp.get_tally(name='distribcell tally')\n", "\n", "# Print a little info about the distribcell tally to the screen\n", "print(tally)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Use the new Tally data retrieval API with pure NumPy" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[[ 0.05468423]]]\n" ] } ], "source": [ "# Get the relative error for the scattering reaction rates in\n", "# the first 10 distribcell instances \n", "data = tally.get_values(scores=['scatter'], filters=['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" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
level 1level 2level 3distribcellscoremeanstd. dev.
univcelllatunivcell
idididxyzidid
5580100031000116701000010002279absorption8.72e-058.13e-06
5590100031000116701000010002279scatter1.37e-026.98e-04
5600100031000116801000010002280absorption1.03e-049.17e-06
5610100031000116801000010002280scatter1.41e-026.26e-04
5620100031000116901000010002281absorption9.41e-058.40e-06
5630100031000116901000010002281scatter1.50e-026.92e-04
56401000310001161001000010002282absorption9.56e-051.03e-05
56501000310001161001000010002282scatter1.52e-025.37e-04
56601000310001161101000010002283absorption1.06e-041.49e-05
56701000310001161101000010002283scatter1.64e-028.14e-04
56801000310001161201000010002284absorption1.16e-049.02e-06
56901000310001161201000010002284scatter1.64e-026.00e-04
57001000310001161301000010002285absorption1.25e-041.12e-05
57101000310001161301000010002285scatter1.87e-028.26e-04
57201000310001161401000010002286absorption1.47e-041.49e-05
57301000310001161401000010002286scatter1.94e-027.71e-04
57401000310001161501000010002287absorption1.31e-049.84e-06
57501000310001161501000010002287scatter1.97e-027.93e-04
57601000310001161601000010002288absorption1.23e-041.07e-05
57701000310001161601000010002288scatter1.97e-027.34e-04
\n", "
" ], "text/plain": [ " level 1 level 2 level 3 distribcell score \\\n", " univ cell lat univ cell \n", " id id id x y z id id \n", "558 0 10003 10001 16 7 0 10000 10002 279 absorption \n", "559 0 10003 10001 16 7 0 10000 10002 279 scatter \n", "560 0 10003 10001 16 8 0 10000 10002 280 absorption \n", "561 0 10003 10001 16 8 0 10000 10002 280 scatter \n", "562 0 10003 10001 16 9 0 10000 10002 281 absorption \n", "563 0 10003 10001 16 9 0 10000 10002 281 scatter \n", "564 0 10003 10001 16 10 0 10000 10002 282 absorption \n", "565 0 10003 10001 16 10 0 10000 10002 282 scatter \n", "566 0 10003 10001 16 11 0 10000 10002 283 absorption \n", "567 0 10003 10001 16 11 0 10000 10002 283 scatter \n", "568 0 10003 10001 16 12 0 10000 10002 284 absorption \n", "569 0 10003 10001 16 12 0 10000 10002 284 scatter \n", "570 0 10003 10001 16 13 0 10000 10002 285 absorption \n", "571 0 10003 10001 16 13 0 10000 10002 285 scatter \n", "572 0 10003 10001 16 14 0 10000 10002 286 absorption \n", "573 0 10003 10001 16 14 0 10000 10002 286 scatter \n", "574 0 10003 10001 16 15 0 10000 10002 287 absorption \n", "575 0 10003 10001 16 15 0 10000 10002 287 scatter \n", "576 0 10003 10001 16 16 0 10000 10002 288 absorption \n", "577 0 10003 10001 16 16 0 10000 10002 288 scatter \n", "\n", " mean std. dev. \n", " \n", " \n", "558 8.72e-05 8.13e-06 \n", "559 1.37e-02 6.98e-04 \n", "560 1.03e-04 9.17e-06 \n", "561 1.41e-02 6.26e-04 \n", "562 9.41e-05 8.40e-06 \n", "563 1.50e-02 6.92e-04 \n", "564 9.56e-05 1.03e-05 \n", "565 1.52e-02 5.37e-04 \n", "566 1.06e-04 1.49e-05 \n", "567 1.64e-02 8.14e-04 \n", "568 1.16e-04 9.02e-06 \n", "569 1.64e-02 6.00e-04 \n", "570 1.25e-04 1.12e-05 \n", "571 1.87e-02 8.26e-04 \n", "572 1.47e-04 1.49e-05 \n", "573 1.94e-02 7.71e-04 \n", "574 1.31e-04 9.84e-06 \n", "575 1.97e-02 7.93e-04 \n", "576 1.23e-04 1.07e-05 \n", "577 1.97e-02 7.34e-04 " ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Get a pandas dataframe for the distribcell tally data\n", "df = tally.get_pandas_dataframe(nuclides=False)\n", "\n", "# Print the last twenty rows in the dataframe\n", "df.tail(20)" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
meanstd. dev.
count2.89e+022.89e+02
mean4.16e-042.42e-05
std2.39e-041.03e-05
min1.90e-053.80e-06
25%1.99e-041.61e-05
50%4.09e-042.37e-05
75%6.00e-043.08e-05
max9.07e-045.38e-05
\n", "
" ], "text/plain": [ " mean std. dev.\n", " \n", " \n", "count 2.89e+02 2.89e+02\n", "mean 4.16e-04 2.42e-05\n", "std 2.39e-04 1.03e-05\n", "min 1.90e-05 3.80e-06\n", "25% 1.99e-04 1.61e-05\n", "50% 4.09e-04 2.37e-05\n", "75% 6.00e-04 3.08e-05\n", "max 9.07e-04 5.38e-05" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show summary statistics for absorption distribcell tally data\n", "absorption = df[df['score'] == 'absorption']\n", "absorption[['mean', 'std. dev.']].dropna().describe()\n", "\n", "# Note that the maximum standard deviation does indeed\n", "# meet the 5e-4 threshold set by the tally trigger" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Perform a statistical test comparing the tally sample distributions for two categories of fuel pins." ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mann-Whitney Test p-value: 0.7234916721800682\n" ] } ], "source": [ "# Extract tally data from pins in the pins divided along y=x diagonal \n", "multi_index = ('level 2', 'lat',)\n", "lower = df[df[multi_index + ('x',)] + df[multi_index + ('y',)] < 16]\n", "upper = df[df[multi_index + ('x',)] + df[multi_index + ('y',)] > 16]\n", "lower = lower[lower['score'] == 'absorption']\n", "upper = upper[upper['score'] == 'absorption']\n", "\n", "# Perform non-parametric Mann-Whitney U Test to see if the \n", "# absorption rates (may) come from same sampling distribution\n", "u, p = scipy.stats.mannwhitneyu(lower['mean'], upper['mean'])\n", "print('Mann-Whitney Test p-value: {0}'.format(p))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that the symmetry implied by the y=x diagonal ensures that the two sampling distributions are identical. Indeed, as illustrated by the test above, for any reasonable significance level (*e.g.*, $\\alpha$=0.05) one would **not reject** the null hypothesis that the two sampling distributions are identical.\n", "\n", "Next, perform the same test but with two groupings of pins which are not symmetrically identical to one another." ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mann-Whitney Test p-value: 3.5054120724573393e-41\n" ] } ], "source": [ "# Extract tally data from pins in the pins divided along y=-x diagonal\n", "multi_index = ('level 2', 'lat',)\n", "lower = df[df[multi_index + ('x',)] > df[multi_index + ('y',)]]\n", "upper = df[df[multi_index + ('x',)] < df[multi_index + ('y',)]]\n", "lower = lower[lower['score'] == 'absorption']\n", "upper = upper[upper['score'] == 'absorption']\n", "\n", "# Perform non-parametric Mann-Whitney U Test to see if the \n", "# absorption rates (may) come from same sampling distribution\n", "u, p = scipy.stats.mannwhitneyu(lower['mean'], upper['mean'])\n", "print('Mann-Whitney Test p-value: {0}'.format(p))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that the asymmetry implied by the y=-x diagonal ensures that the two sampling distributions are *not* identical. Indeed, as illustrated by the test above, for any reasonable significance level (*e.g.*, $\\alpha$=0.05) one would **reject** the null hypothesis that the two sampling distributions are identical." ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/romano/miniconda3/envs/default/lib/python3.5/site-packages/ipykernel/__main__.py:4: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nSUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Extract the scatter tally data from pandas\n", "scatter = df[df['score'] == 'scatter']\n", "\n", "scatter['rel. err.'] = scatter['std. dev.'] / scatter['mean']\n", "\n", "# Show a scatter plot of the mean vs. the std. dev.\n", "scatter.plot(kind='scatter', x='mean', y='rel. err.', title='Scattering Rates')" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot a histogram and kernel density estimate for the scattering rates\n", "scatter['mean'].plot(kind='hist', bins=25)\n", "scatter['mean'].plot(kind='kde')\n", "plt.title('Scattering Rates')\n", "plt.xlabel('Mean')\n", "plt.legend(['KDE', 'Histogram'])" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.2" } }, "nbformat": 4, "nbformat_minor": 0 }