diff --git a/.gitignore b/.gitignore index 5634632fa..08f7bd2e4 100644 --- a/.gitignore +++ b/.gitignore @@ -62,4 +62,11 @@ data/nndc .idea/* # IPython notebook checkpoints -.ipynb_checkpoints \ No newline at end of file +.ipynb_checkpoints + +# Multi-group cross section IPython Notebook +docs/source/pythonapi/examples/*.xml +docs/source/pythonapi/examples/*.png +docs/source/pythonapi/examples/*.xls +docs/source/pythonapi/examples/mgxs +docs/source/pythonapi/examples/tracks \ No newline at end of file diff --git a/docs/source/pythonapi/examples/multi-group-cross-sections.ipynb b/docs/source/pythonapi/examples/multi-group-cross-sections.ipynb new file mode 100644 index 000000000..e7820bca8 --- /dev/null +++ b/docs/source/pythonapi/examples/multi-group-cross-sections.ipynb @@ -0,0 +1,2323 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This notebook demonstrates how to use the **``openmc.mgxs``** module to generate multi-group cross sections with OpenMC.\n", + "\n", + "**Note:** that this Notebook was created using [OpenMOC](https://mit-crpg.github.io/OpenMOC/) to verify the multi-group cross-sections generated by OpenMC. In order to run this Notebook, you must have [OpenMOC](https://mit-crpg.github.io/OpenMOC/) installed on your system, along with OpenCG to convert the OpenMC geometries into OpenMOC geometries." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "import openmc\n", + "import openmc.mgxs as mgxs\n", + "\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Infinite Homogeneous Medium" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We first construct a simple homogeneous infinite medium problem to illustrate use of the `openmc.mgxs` module to generate multi-group cross sections." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Generate Inputs" + ] + }, + { + "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", + "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 a material for the homogeneous medium." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate a Material and register the Nuclides\n", + "inf_medium = openmc.Material(name='moderator')\n", + "inf_medium.set_density('g/cc', 5.)\n", + "inf_medium.add_nuclide(h1, 0.028999667)\n", + "inf_medium.add_nuclide(o16, 0.01450188)\n", + "inf_medium.add_nuclide(u235, 0.000114142)\n", + "inf_medium.add_nuclide(u238, 0.006886019)\n", + "inf_medium.add_nuclide(zr90, 0.002116053)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With our material, 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": true + }, + "outputs": [], + "source": [ + "# Instantiate a MaterialsFile, register all Materials, and export to XML\n", + "materials_file = openmc.MaterialsFile()\n", + "materials_file.default_xs = '71c'\n", + "materials_file.add_material(inf_medium)\n", + "materials_file.export_to_xml()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's move on to the geometry. This problem will be a simple square cell with reflective boundary conditions to simulate an infinite homogeneous medium. The first step is to create the outer bounding surfaces of the problem." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate boundary Planes\n", + "min_x = openmc.XPlane(boundary_type='reflective', x0=-0.63)\n", + "max_x = openmc.XPlane(boundary_type='reflective', x0=0.63)\n", + "min_y = openmc.YPlane(boundary_type='reflective', y0=-0.63)\n", + "max_y = openmc.YPlane(boundary_type='reflective', y0=0.63)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the surfaces defined, we can now create a cell that is defined by intersections of half-spaces created by the surfaces." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate a Cell\n", + "cell = openmc.Cell(cell_id=1, name='cell')\n", + "\n", + "# Register bounding Surfaces with the Cell\n", + "cell.add_surface(surface=min_x, halfspace=+1)\n", + "cell.add_surface(surface=max_x, halfspace=-1)\n", + "cell.add_surface(surface=min_y, halfspace=+1)\n", + "cell.add_surface(surface=max_y, halfspace=-1)\n", + "\n", + "# Fill the Cell with the Material\n", + "cell.fill = inf_medium" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "OpenMC requires that there is a \"root\" universe. Let us create a root universe and add our square cell to it." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate Universe\n", + "root_universe = openmc.Universe(universe_id=0, name='root universe')\n", + "root_universe.add_cell(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": 8, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Create Geometry and set root Universe\n", + "openmc_geometry = openmc.Geometry()\n", + "openmc_geometry.root_universe = root_universe\n", + "\n", + "# Instantiate a GeometryFile\n", + "geometry_file = openmc.GeometryFile()\n", + "geometry_file.geometry = openmc_geometry\n", + "\n", + "# Export to \"geometry.xml\"\n", + "geometry_file.export_to_xml()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we must define simulation parameters. In this case, we will use 10 inactive batches and 40 active batches each with 2500 particles." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# OpenMC simulation parameters\n", + "batches = 50\n", + "inactive = 10\n", + "particles = 2500\n", + "\n", + "# Instantiate a SettingsFile\n", + "settings_file = openmc.SettingsFile()\n", + "settings_file.batches = batches\n", + "settings_file.inactive = inactive\n", + "settings_file.particles = particles\n", + "settings_file.output = {'tallies': True, 'summary': True}\n", + "bounds = [-0.63, -0.63, -0.63, 0.63, 0.63, 0.63]\n", + "settings_file.set_source_space('box', bounds)\n", + "\n", + "# Export to \"settings.xml\"\n", + "settings_file.export_to_xml()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we are finally ready to make use of the `openmc.mgxs` module to generate multi-group cross sections! First, let's define a \"fine\" 8-group and \"coarse\" 2-group structures using the built-in `EnergyGroups` class." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate a \"fine\" 8-group EneryGroups object\n", + "fine_groups = mgxs.EnergyGroups()\n", + "fine_groups.group_edges = np.array([0., 0.058e-6, 0.14e-6, 0.28e-6,\n", + " 0.625e-6, 4.e-6, 5.53e-3, 821.e-3, 20.])\n", + "\n", + "# Instantiate a \"coarse\" 2-group EneryGroups object\n", + "coarse_groups = mgxs.EnergyGroups()\n", + "coarse_groups.group_edges = np.array([0., 0.625e-6, 20.])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now use the fine and coarse `EnergyGroups` objects, along with our previously created materials and geometry, to instantiate some `MultiGroupXS` objects from the `openmc.mgxs` module. In particular, the following are subclasses of generic and abstract `MultiGroupXS` class:\n", + "\n", + "* `TotalXS`\n", + "* `TransportXS`\n", + "* `AbsorptionXS`\n", + "* `CaptureXS`\n", + "* `FissionXS`\n", + "* `NuFissionXS`\n", + "* `ScatterXS`\n", + "* `NuScatterXS`\n", + "* `ScatterMatrixXS`\n", + "* `NuScatterMatrixXS`\n", + "* `Chi`\n", + "\n", + "These classes provide us with an interface to generate the tally inputs as well as perform post-processing of OpenMC's tally data to compute the respective multi-group cross sections. In this case, let's create the multi-group cross sections needed to run an OpenMOC simulation to verify the accuracy of our cross sections. In particular, we will define total, nu-fission, nu-scatter and chi cross sections for our infinite medium cell as the domain and our fine 8-group structure as our energy groups." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instantiate cross sections needed for an OpenMOC simulation\n", + "transport = mgxs.TransportXS(domain=cell, domain_type='cell', groups=fine_groups)\n", + "nufission = mgxs.NuFissionXS(domain=cell, domain_type='cell', groups=fine_groups)\n", + "nuscatter = mgxs.NuScatterMatrixXS(domain=cell, domain_type='cell', groups=fine_groups)\n", + "chi = mgxs.Chi(domain=cell, domain_type='cell', groups=fine_groups)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we must instruct our multi-group cross section objects to generate the tallies needed to calculate each of them in OpenMC. This can be done with the `MultiGroupXS.create_tallies()` routine." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Instruct each multi-group cross section to generate tallies\n", + "transport.create_tallies()\n", + "nufission.create_tallies()\n", + "nuscatter.create_tallies()\n", + "chi.create_tallies()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Each multi-group cross section object stores its tallies in a Python dictionary called `tallies`. We can inspect the tallies in the dictionary for our `NuFission` object as follows. " + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "{'flux': Tally\n", + " \tID =\t10003\n", + " \tName =\t\n", + " \tFilters =\t\n", + " \t\tcell\t[1]\n", + " \t\tenergy\t[ 0.00000000e+00 5.80000000e-08 1.40000000e-07 2.80000000e-07\n", + " 6.25000000e-07 4.00000000e-06 5.53000000e-03 8.21000000e-01\n", + " 2.00000000e+01]\n", + " \tNuclides =\ttotal \n", + " \tScores =\t['flux']\n", + " \tEstimator =\ttracklength, 'nu-fission': Tally\n", + " \tID =\t10004\n", + " \tName =\t\n", + " \tFilters =\t\n", + " \t\tcell\t[1]\n", + " \t\tenergy\t[ 0.00000000e+00 5.80000000e-08 1.40000000e-07 2.80000000e-07\n", + " 6.25000000e-07 4.00000000e-06 5.53000000e-03 8.21000000e-01\n", + " 2.00000000e+01]\n", + " \tNuclides =\ttotal \n", + " \tScores =\t['nu-fission']\n", + " \tEstimator =\ttracklength}" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nufission.tallies" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `NuFission` object includes tracklength tallies for the 'nu-fission' and 'flux' scores in the 8-group structure in cell 1. Now that each multi-group cross section object contains the tallies that it needs, we must add these tallies to a `TalliesFile` object to generate the \"tallies.xml\" input file for OpenMC." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Instantiate an empty TalliesFile\n", + "tallies_file = openmc.TalliesFile()\n", + "\n", + "# Add transport tallies to the tallies file\n", + "for tally in transport.tallies.values():\n", + " tallies_file.add_tally(tally, merge=True)\n", + "\n", + "# Add nu-fission tallies to the tallies file\n", + "for tally in nufission.tallies.values():\n", + " tallies_file.add_tally(tally, merge=True)\n", + "\n", + "# Add nu-scatter tallies to the tallies file\n", + "for tally in nuscatter.tallies.values():\n", + " tallies_file.add_tally(tally, merge=True)\n", + "\n", + "# Add chi tallies to the tallies file \n", + "for tally in chi.tallies.values():\n", + " tallies_file.add_tally(tally, merge=True)\n", + " \n", + "# 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": 15, + "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 12:56:30\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: 40090.71c\n", + " Loading ACE cross section table: 1001.71c\n", + " Loading ACE cross section table: 92235.71c\n", + " Initializing source particles...\n", + "\n", + " ===========================================================================\n", + " ====================> K EIGENVALUE SIMULATION <====================\n", + " ===========================================================================\n", + "\n", + " Bat./Gen. k Average k \n", + " ========= ======== ==================== \n", + " 1/1 1.14249 \n", + " 2/1 1.18016 \n", + " 3/1 1.16083 \n", + " 4/1 1.09124 \n", + " 5/1 1.15214 \n", + " 6/1 1.13453 \n", + " 7/1 1.15552 \n", + " 8/1 1.18149 \n", + " 9/1 1.10404 \n", + " 10/1 1.15703 \n", + " 11/1 1.21224 \n", + " 12/1 1.14147 1.17686 +/- 0.03538\n", + " 13/1 1.12601 1.15991 +/- 0.02655\n", + " 14/1 1.11972 1.14986 +/- 0.02129\n", + " 15/1 1.15683 1.15125 +/- 0.01655\n", + " 16/1 1.15236 1.15144 +/- 0.01351\n", + " 17/1 1.17833 1.15528 +/- 0.01205\n", + " 18/1 1.13229 1.15241 +/- 0.01082\n", + " 19/1 1.22394 1.16035 +/- 0.01242\n", + " 20/1 1.15867 1.16019 +/- 0.01111\n", + " 21/1 1.13611 1.15800 +/- 0.01029\n", + " 22/1 1.14101 1.15658 +/- 0.00950\n", + " 23/1 1.20864 1.16059 +/- 0.00961\n", + " 24/1 1.13475 1.15874 +/- 0.00909\n", + " 25/1 1.10697 1.15529 +/- 0.00914\n", + " 26/1 1.20824 1.15860 +/- 0.00916\n", + " 27/1 1.16775 1.15914 +/- 0.00863\n", + " 28/1 1.15904 1.15913 +/- 0.00813\n", + " 29/1 1.16967 1.15969 +/- 0.00771\n", + " 30/1 1.12574 1.15799 +/- 0.00751\n", + " 31/1 1.16177 1.15817 +/- 0.00715\n", + " 32/1 1.18082 1.15920 +/- 0.00689\n", + " 33/1 1.19549 1.16078 +/- 0.00677\n", + " 34/1 1.18508 1.16179 +/- 0.00656\n", + " 35/1 1.17697 1.16240 +/- 0.00632\n", + " 36/1 1.16342 1.16244 +/- 0.00607\n", + " 37/1 1.17400 1.16286 +/- 0.00586\n", + " 38/1 1.19281 1.16393 +/- 0.00575\n", + " 39/1 1.15669 1.16368 +/- 0.00555\n", + " 40/1 1.17987 1.16422 +/- 0.00539\n", + " 41/1 1.14129 1.16348 +/- 0.00527\n", + " 42/1 1.18323 1.16410 +/- 0.00514\n", + " 43/1 1.13885 1.16334 +/- 0.00504\n", + " 44/1 1.17943 1.16381 +/- 0.00491\n", + " 45/1 1.20014 1.16485 +/- 0.00488\n", + " 46/1 1.16056 1.16473 +/- 0.00474\n", + " 47/1 1.20077 1.16570 +/- 0.00471\n", + " 48/1 1.15469 1.16541 +/- 0.00460\n", + " 49/1 1.18862 1.16601 +/- 0.00452\n", + " 50/1 1.18755 1.16655 +/- 0.00444\n", + " Creating state point statepoint.50.h5...\n", + "\n", + " ===========================================================================\n", + " ======================> SIMULATION FINISHED <======================\n", + " ===========================================================================\n", + "\n", + "\n", + " =======================> TIMING STATISTICS <=======================\n", + "\n", + " Total time for initialization = 6.4800E-01 seconds\n", + " Reading cross sections = 1.5500E-01 seconds\n", + " Total time in simulation = 1.6951E+01 seconds\n", + " Time in transport only = 1.6927E+01 seconds\n", + " Time in inactive batches = 3.1560E+00 seconds\n", + " Time in active batches = 1.3795E+01 seconds\n", + " Time synchronizing fission bank = 7.0000E-03 seconds\n", + " Sampling source sites = 4.0000E-03 seconds\n", + " SEND/RECV source sites = 2.0000E-03 seconds\n", + " Time accumulating tallies = 0.0000E+00 seconds\n", + " Total time for finalization = 3.0000E-03 seconds\n", + " Total time elapsed = 1.7614E+01 seconds\n", + " Calculation Rate (inactive) = 7921.42 neutrons/second\n", + " Calculation Rate (active) = 7249.00 neutrons/second\n", + "\n", + " ============================> RESULTS <============================\n", + "\n", + " k-effective (Collision) = 1.16600 +/- 0.00432\n", + " k-effective (Track-length) = 1.16655 +/- 0.00444\n", + " k-effective (Absorption) = 1.16281 +/- 0.00314\n", + " Combined k-effective = 1.16367 +/- 0.00307\n", + " Leakage Fraction = 0.00000 +/- 0.00000\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Run OpenMC!\n", + "executor = openmc.Executor()\n", + "executor.run_simulation()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Tally Data Processing" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Our simulation ran successfully and created a statepoint file with all the tally data in it. We begin our analysis here loading the statepoint file and 'reading' the results. By default, data from the statepoint file is only read into memory when it is requested. This helps keep the memory use to a minimum even when a statepoint file may be huge." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Load the last statepoint file\n", + "sp = openmc.StatePoint('statepoint.50.h5')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In addition to the statepoint file, our simulation also created a summary file which encapsulates information about the materials and geometry which is necessary for the `openmc.mgxs` module to properly process the tally data. We first create a summary object and link it with the statepoint." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Load the summary file and link it with the statepoint\n", + "su = openmc.Summary('summary.h5')\n", + "sp.link_with_summary(su)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The statepoint is now ready to be analyzed by our multi-group cross sections. The first step is to load the tallies from the statepoint into each object." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Load the tallies from the statepoint into each MultiGroupXS object\n", + "transport.load_from_statepoint(sp)\n", + "nufission.load_from_statepoint(sp)\n", + "nuscatter.load_from_statepoint(sp)\n", + "chi.load_from_statepoint(sp)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The multi-group cross section objects can now use OpenMC's [tally arithmetic](http://mit-crpg.github.io/openmc/pythonapi/examples/pandas-dataframes.html) to compute cross sections from the tally data." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/local/lib/python2.7/dist-packages/openmc-0.7.0-py2.7.egg/openmc/tallies.py:1485: RuntimeWarning: invalid value encountered in divide\n" + ] + } + ], + "source": [ + "transport.compute_xs()\n", + "nufission.compute_xs()\n", + "nuscatter.compute_xs()\n", + "chi.compute_xs()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Voila! Our multi-group cross sections are now ready to rock 'n roll!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Cross Section Data Visualization" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's first inspect our fission production cross section by printing it to the screen." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Multi-Group XS\n", + "\tReaction Type =\tnu-fission\n", + "\tDomain Type =\tcell\n", + "\tDomain ID =\t1\n", + "\tCross Sections [cm^-1]:\n", + " Group 1 [0.821 - 20.0 MeV]:\t1.11e-02 +/- 5.93e-01%\n", + " Group 2 [0.00553 - 0.821 MeV]:\t6.60e-04 +/- 3.04e-01%\n", + " Group 3 [4e-06 - 0.00553 MeV]:\t9.00e-03 +/- 4.10e-01%\n", + " Group 4 [6.25e-07 - 4e-06 MeV]:\t1.44e-02 +/- 6.58e-01%\n", + " Group 5 [2.8e-07 - 6.25e-07 MeV]:\t4.72e-02 +/- 9.80e-01%\n", + " Group 6 [1.4e-07 - 2.8e-07 MeV]:\t7.29e-02 +/- 8.59e-01%\n", + " Group 7 [5.8e-08 - 1.4e-07 MeV]:\t1.11e-01 +/- 7.92e-01%\n", + " Group 8 [0.0 - 5.8e-08 MeV]:\t2.39e-01 +/- 6.90e-01%\n", + "\n", + "\n", + "\n" + ] + } + ], + "source": [ + "nufission.print_xs()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since the `openmc.mgxs` module uses tally arithmetic under-the-hood, the cross section is stored as a \"derived\" tally. This means that it can be queried and manipulated using all of the same method supported for the `Tally` class in the OpenMC Python API. For example, we can construct a Pandas DataFrame of the multi-group cross section data." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "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", + "
cellgroup ingroup outnuclidemeanstd. dev.
63111total0.0774600.000890
62112total0.0872760.000331
61113total0.0004500.000026
60114total0.0000000.000000
59115total0.0000000.000000
58116total0.0000000.000000
57117total0.0000000.000000
56118total0.0000000.000000
55121total0.0000000.000000
54122total0.2666510.001340
\n", + "
" + ], + "text/plain": [ + " cell group in group out nuclide mean std. dev.\n", + "63 1 1 1 total 0.077460 0.000890\n", + "62 1 1 2 total 0.087276 0.000331\n", + "61 1 1 3 total 0.000450 0.000026\n", + "60 1 1 4 total 0.000000 0.000000\n", + "59 1 1 5 total 0.000000 0.000000\n", + "58 1 1 6 total 0.000000 0.000000\n", + "57 1 1 7 total 0.000000 0.000000\n", + "56 1 1 8 total 0.000000 0.000000\n", + "55 1 2 1 total 0.000000 0.000000\n", + "54 1 2 2 total 0.266651 0.001340" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = nuscatter.get_pandas_dataframe()\n", + "df.head(10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Each multi-group cross section object can be easily exported to a variety of file formats, including CSV, Excel, and LaTeX for storage or data processing." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "transport.export_xs_data(filename='transport-xs', format='excel')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following code snippet shows how to export all of four cross sections to the same HDF5 binary data store." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "transport.build_hdf5_store(filename='mgxs', append=True)\n", + "nufission.build_hdf5_store(filename='mgxs', append=True)\n", + "nuscatter.build_hdf5_store(filename='mgxs', append=True)\n", + "chi.build_hdf5_store(filename='mgxs', append=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Verification with OpenMOC" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Of course it is always a good idea to verify that one's cross sections are accurate. We can easily do so here with the deterministic transport code OpenMOC. First, we will use OpenCG to reconstruct our OpenMC geometry from the summary file into a equivalent OpenMOC geometry." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/lib/pymodules/python2.7/matplotlib/__init__.py:1173: UserWarning: This call to matplotlib.use() has no effect\n", + "because the backend has already been chosen;\n", + "matplotlib.use() must be called *before* pylab, matplotlib.pyplot,\n", + "or matplotlib.backends is imported for the first time.\n", + "\n", + " warnings.warn(_use_error_msg)\n" + ] + } + ], + "source": [ + "# Import OpenMOC and the OpenMOC/OpenCG compatibility module\n", + "import openmoc\n", + "from openmoc.compatible import get_openmoc_geometry\n", + "\n", + "# Create an OpenCG Geometry from the OpenMC Geometry stored in the summary\n", + "su.make_opencg_geometry()\n", + "\n", + "# Create an OpenMOC Geometry from the OpenCG Geometry\n", + "openmoc_geometry = get_openmoc_geometry(su.opencg_geometry)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we can inject the multi-group cross sections into the equivalent infinite homogeneous medium OpenMOC geometry." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Get all OpenMOC cells in the gometry\n", + "openmoc_cells = openmoc_geometry.getRootUniverse().getAllCells()\n", + "\n", + "# Inject multi-group cross sections into OpenMOC Materials\n", + "for cell_id, cell in openmoc_cells.items():\n", + " \n", + " # Get a reference to the Material filling this Cell\n", + " openmoc_material = cell.getFillMaterial()\n", + " \n", + " # Set the number of energy groups for the Material\n", + " openmoc_material.setNumEnergyGroups(fine_groups.num_groups)\n", + " \n", + " # Inject NumPy arrays of cross section data into the Material\n", + " openmoc_material.setSigmaT(transport.get_xs().flatten())\n", + " openmoc_material.setNuSigmaF(nufission.get_xs().flatten())\n", + " openmoc_material.setSigmaS(nuscatter.get_xs().flatten())\n", + " openmoc_material.setChi(chi.get_xs().flatten())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We are now ready to run OpenMOC to verify our cross-sections from OpenMC." + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ NORMAL ] Ray tracing for track segmentation...\n", + "[ NORMAL ] Dumping tracks to file...\n", + "[ NORMAL ] Computing the eigenvalue...\n", + "[ NORMAL ] Iteration 0:\tk_eff = 0.685180\tres = 0.000E+00\n", + "[ NORMAL ] Iteration 1:\tk_eff = 0.785704\tres = 3.148E-01\n", + "[ NORMAL ] Iteration 2:\tk_eff = 0.750352\tres = 1.467E-01\n", + "[ NORMAL ] Iteration 3:\tk_eff = 0.729115\tres = 4.499E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.696059\tres = 2.830E-02\n", + "[ NORMAL ] Iteration 5:\tk_eff = 0.663970\tres = 4.534E-02\n", + "[ NORMAL ] Iteration 6:\tk_eff = 0.633141\tres = 4.610E-02\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.605167\tres = 4.643E-02\n", + "[ NORMAL ] Iteration 8:\tk_eff = 0.580592\tres = 4.418E-02\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.559758\tres = 4.061E-02\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.542846\tres = 3.588E-02\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.529901\tres = 3.021E-02\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.520893\tres = 2.385E-02\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.515699\tres = 1.700E-02\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.514152\tres = 9.971E-03\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.516033\tres = 2.999E-03\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.521086\tres = 3.657E-03\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.529034\tres = 9.792E-03\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.539585\tres = 1.525E-02\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.552436\tres = 1.994E-02\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.567286\tres = 2.382E-02\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.583843\tres = 2.688E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.601819\tres = 2.918E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.620946\tres = 3.079E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.640969\tres = 3.178E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.661654\tres = 3.225E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.682785\tres = 3.227E-02\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.704168\tres = 3.194E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.725628\tres = 3.132E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.747011\tres = 3.048E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.768182\tres = 2.947E-02\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.789024\tres = 2.834E-02\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.809439\tres = 2.713E-02\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.829342\tres = 2.587E-02\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.848666\tres = 2.459E-02\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.867356\tres = 2.330E-02\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.885370\tres = 2.202E-02\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.902676\tres = 2.077E-02\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.919253\tres = 1.955E-02\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.935087\tres = 1.836E-02\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.950174\tres = 1.723E-02\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.964514\tres = 1.613E-02\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.978114\tres = 1.509E-02\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.990987\tres = 1.410E-02\n", + "[ NORMAL ] Iteration 44:\tk_eff = 1.003145\tres = 1.316E-02\n", + "[ NORMAL ] Iteration 45:\tk_eff = 1.014610\tres = 1.227E-02\n", + "[ NORMAL ] Iteration 46:\tk_eff = 1.025401\tres = 1.143E-02\n", + "[ NORMAL ] Iteration 47:\tk_eff = 1.035542\tres = 1.064E-02\n", + "[ NORMAL ] Iteration 48:\tk_eff = 1.045058\tres = 9.890E-03\n", + "[ NORMAL ] Iteration 49:\tk_eff = 1.053973\tres = 9.189E-03\n", + "[ NORMAL ] Iteration 50:\tk_eff = 1.062316\tres = 8.531E-03\n", + "[ NORMAL ] Iteration 51:\tk_eff = 1.070112\tres = 7.915E-03\n", + "[ NORMAL ] Iteration 52:\tk_eff = 1.077389\tres = 7.339E-03\n", + "[ NORMAL ] Iteration 53:\tk_eff = 1.084173\tres = 6.800E-03\n", + "[ NORMAL ] Iteration 54:\tk_eff = 1.090490\tres = 6.297E-03\n", + "[ NORMAL ] Iteration 55:\tk_eff = 1.096368\tres = 5.827E-03\n", + "[ NORMAL ] Iteration 56:\tk_eff = 1.101830\tres = 5.390E-03\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.106902\tres = 4.982E-03\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.111608\tres = 4.603E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.115969\tres = 4.251E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.120009\tres = 3.924E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.123747\tres = 3.620E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.127204\tres = 3.338E-03\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.130399\tres = 3.076E-03\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.133349\tres = 2.834E-03\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.136072\tres = 2.610E-03\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.138584\tres = 2.403E-03\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.140899\tres = 2.211E-03\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.143032\tres = 2.033E-03\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.144996\tres = 1.869E-03\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.146803\tres = 1.718E-03\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.148466\tres = 1.579E-03\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.149995\tres = 1.450E-03\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.151399\tres = 1.331E-03\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.152690\tres = 1.222E-03\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.153875\tres = 1.121E-03\n", + "[ NORMAL ] Iteration 76:\tk_eff = 1.154963\tres = 1.028E-03\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.155961\tres = 9.428E-04\n", + "[ NORMAL ] Iteration 78:\tk_eff = 1.156876\tres = 8.642E-04\n", + "[ NORMAL ] Iteration 79:\tk_eff = 1.157716\tres = 7.920E-04\n", + "[ NORMAL ] Iteration 80:\tk_eff = 1.158485\tres = 7.256E-04\n", + "[ NORMAL ] Iteration 81:\tk_eff = 1.159190\tres = 6.646E-04\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.159836\tres = 6.085E-04\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.160427\tres = 5.571E-04\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.160969\tres = 5.098E-04\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.161464\tres = 4.665E-04\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.161917\tres = 4.268E-04\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.162332\tres = 3.903E-04\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.162711\tres = 3.570E-04\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.163058\tres = 3.264E-04\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.163375\tres = 2.982E-04\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.163664\tres = 2.725E-04\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.163929\tres = 2.490E-04\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.164171\tres = 2.275E-04\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.164392\tres = 2.077E-04\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.164593\tres = 1.897E-04\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.164777\tres = 1.733E-04\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.164946\tres = 1.581E-04\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.165099\tres = 1.444E-04\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.165239\tres = 1.317E-04\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.165367\tres = 1.202E-04\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.165483\tres = 1.096E-04\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.165590\tres = 1.000E-04\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.165687\tres = 9.126E-05\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.165775\tres = 8.326E-05\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.165856\tres = 7.590E-05\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.165929\tres = 6.924E-05\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.165996\tres = 6.304E-05\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.166057\tres = 5.745E-05\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.166113\tres = 5.243E-05\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.166164\tres = 4.776E-05\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.166210\tres = 4.355E-05\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.166252\tres = 3.962E-05\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.166291\tres = 3.624E-05\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.166326\tres = 3.295E-05\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.166358\tres = 3.003E-05\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.166387\tres = 2.737E-05\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.166413\tres = 2.486E-05\n", + "[ NORMAL ] Iteration 118:\tk_eff = 1.166437\tres = 2.267E-05\n", + "[ NORMAL ] Iteration 119:\tk_eff = 1.166459\tres = 2.061E-05\n", + "[ NORMAL ] Iteration 120:\tk_eff = 1.166479\tres = 1.883E-05\n", + "[ NORMAL ] Iteration 121:\tk_eff = 1.166497\tres = 1.711E-05\n", + "[ NORMAL ] Iteration 122:\tk_eff = 1.166514\tres = 1.563E-05\n", + "[ NORMAL ] Iteration 123:\tk_eff = 1.166529\tres = 1.418E-05\n", + "[ NORMAL ] Iteration 124:\tk_eff = 1.166543\tres = 1.300E-05\n", + "[ NORMAL ] Iteration 125:\tk_eff = 1.166555\tres = 1.176E-05\n", + "[ NORMAL ] Iteration 126:\tk_eff = 1.166567\tres = 1.074E-05\n" + ] + } + ], + "source": [ + "# Generate tracks for OpenMOC\n", + "openmoc_geometry.initializeFlatSourceRegions()\n", + "track_generator = openmoc.TrackGenerator(openmoc_geometry, 128, 0.1)\n", + "track_generator.generateTracks()\n", + "\n", + "# Run OpenMOC\n", + "solver = openmoc.CPUSolver(track_generator)\n", + "solver.computeEigenvalue()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We report the eigenvalues computed by OpenMC and OpenMOC here together to summarize our results." + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "openmc keff = 1.163673\n", + "openmoc keff = 1.166567\n", + "bias [pcm]: 289.4\n" + ] + } + ], + "source": [ + "# Print report of keff and bias with OpenMC\n", + "openmoc_keff = solver.getKeff()\n", + "openmc_keff = sp.k_combined[0]\n", + "bias = (openmoc_keff - openmc_keff) * 1e5\n", + "\n", + "print('openmc keff = {0:1.6f}'.format(openmc_keff))\n", + "print('openmoc keff = {0:1.6f}'.format(openmoc_keff))\n", + "print('bias [pcm]: {0:1.1f}'.format(bias))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Although there is a non-trivial bias, one can easily run the preceding code with more particle histories to show that both codes converge to the same eigenvalue with <10 pcm bias. It should be noted that this discrepancy is due to use of tracklength tallies for `NuFission`, while one must use more slowly converging analog tallies for `TransportXS`, `NuScatterMatrixXS` and `Chi` (which require an 'energyout' filter)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Fuel Pin Cell" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this section we show how to compute multi-group cross sections for a fuel pin cell. In addition, we will illustrate how to use some of the more advanced features in `openmc.mgxs` such as nuclide-by-nuclide microscopic cross section tallies and downstream energy group condensation." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Generate Inputs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "this time we separate our nuclides into three distinct materials for water, clad and fuel." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "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", + "\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 materials, we can now create a materials file object that can be exported to an actual XML file." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "collapsed": true + }, + "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. Our problem will have three regions for the fuel, the clad, and the surrounding coolant. The first step is to create the bounding surfaces -- in this case two cylinders and six reflective planes." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "collapsed": true + }, + "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=-0.63, boundary_type='reflective')\n", + "max_x = openmc.XPlane(x0=+0.63, boundary_type='reflective')\n", + "min_y = openmc.YPlane(y0=-0.63, boundary_type='reflective')\n", + "max_y = openmc.YPlane(y0=+0.63, boundary_type='reflective')\n", + "min_z = openmc.ZPlane(z0=-0.63, boundary_type='reflective')\n", + "max_z = openmc.ZPlane(z0=+0.63, 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": 31, + "metadata": { + "collapsed": true + }, + "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": [ + "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": 32, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Create root Cell\n", + "root_cell = openmc.Cell(name='root cell')\n", + "root_cell.fill = pin_cell_universe\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", + "\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": 33, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Create Geometry and set root Universe\n", + "openmc_geometry = openmc.Geometry()\n", + "openmc_geometry.root_universe = root_universe\n", + "\n", + "# Instantiate a GeometryFile\n", + "geometry_file = openmc.GeometryFile()\n", + "geometry_file.geometry = openmc_geometry\n", + "\n", + "# Export to \"geometry.xml\"\n", + "geometry_file.export_to_xml()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will reuse our settings from the previous simulation. Now, we let's create transport, nu-fission, nu-scatter and chi multi-group cross sections for each cell." + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Extract all Cells filled by Materials\n", + "openmc_cells = openmc_geometry.get_all_material_cells()\n", + "\n", + "# Create dictionary to store multi-group cross sections for all cells\n", + "xs_library = {}\n", + "\n", + "# Instantiate 8-group cross sections for each cell\n", + "for cell in openmc_cells:\n", + " xs_library[cell.id] = {}\n", + " xs_library[cell.id]['transport'] = mgxs.TransportXS(groups=fine_groups)\n", + " xs_library[cell.id]['nu-fission'] = mgxs.NuFissionXS(groups=fine_groups)\n", + " xs_library[cell.id]['nu-scatter'] = mgxs.NuScatterMatrixXS(groups=fine_groups)\n", + " xs_library[cell.id]['chi'] = mgxs.Chi(groups=fine_groups)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this case, we did not give our cross sections a spatial domain in their constructors. Instead, we will loop over all cells to set each cross sections domain. In addition, we will set each cross section to tally cross sections on a per-nuclide basis through the use of the `by_nuclide` instance attribute. " + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Instantiate an empty TalliesFile\n", + "tallies_file = openmc.TalliesFile()\n", + "\n", + "# Iterate over all cells and cross section types\n", + "for cell in openmc_cells:\n", + " for rxn_type in xs_library[cell.id].keys():\n", + "\n", + " # Set the cross sections domain type to the cell\n", + " xs_library[cell.id][rxn_type].domain = cell\n", + " xs_library[cell.id][rxn_type].domain_type = 'cell'\n", + " \n", + " # Tally cross sections by nuclide (e.g., micro cross sections)\n", + " xs_library[cell.id][rxn_type].by_nuclide = True\n", + " \n", + " # Create OpenMC tallies for this cross section\n", + " xs_library[cell.id][rxn_type].create_tallies()\n", + " \n", + " # Add OpenMC tallies to the tallies file for XML generation\n", + " for tally in xs_library[cell.id][rxn_type].tallies.values():\n", + " tallies_file.add_tally(tally, merge=True)\n", + "\n", + "# 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": 36, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Delete old HDF5 files\n", + "!rm *.h5\n", + "\n", + "# Run OpenMC with the output throttled!\n", + "executor = openmc.Executor()\n", + "executor.run_simulation(output=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Tally Data Processing" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Our simulation ran successfully and created a statepoint file with all the tally data in it. As before, we begin our analysis here loading the statepoint file." + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Load the last statepoint and summary files\n", + "sp = openmc.StatePoint('statepoint.50.h5')\n", + "su = openmc.Summary('summary.h5')\n", + "sp.link_with_summary(su)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The statepoint is now ready to be analyzed by our multi-group cross sections. Next, we load the tallies from the statepoint into each object and to compute the cross sections using tally arithmetic." + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Iterate over all cells and cross section types\n", + "for cell in openmc_cells:\n", + " for rxn_type in xs_library[cell.id].keys():\n", + " xs_library[cell.id][rxn_type].load_from_statepoint(sp)\n", + " xs_library[cell.id][rxn_type].compute_xs()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "That's it! Our multi-group cross sections are now ready for the big spotlight. This time we have cross sections in three distinct spatial zones - fuel, clad and moderator - on a per-nuclide basis." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Cross Section Data Visualization" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's first inspect one of our cross sections by printing it to the screen as a microscopic cross section in units of barns." + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Multi-Group XS\n", + "\tReaction Type =\tnu-fission\n", + "\tDomain Type =\tcell\n", + "\tDomain ID =\t10000\n", + "\tNuclide =\tU-235\n", + "\tCross Sections [barns]:\n", + " Group 1 [0.821 - 20.0 MeV]:\t3.31e+00 +/- 6.20e-01%\n", + " Group 2 [0.00553 - 0.821 MeV]:\t3.96e+00 +/- 3.40e-01%\n", + " Group 3 [4e-06 - 0.00553 MeV]:\t5.51e+01 +/- 5.07e-01%\n", + " Group 4 [6.25e-07 - 4e-06 MeV]:\t8.79e+01 +/- 7.27e-01%\n", + " Group 5 [2.8e-07 - 6.25e-07 MeV]:\t2.90e+02 +/- 1.13e+00%\n", + " Group 6 [1.4e-07 - 2.8e-07 MeV]:\t4.49e+02 +/- 1.11e+00%\n", + " Group 7 [5.8e-08 - 1.4e-07 MeV]:\t6.88e+02 +/- 9.03e-01%\n", + " Group 8 [0.0 - 5.8e-08 MeV]:\t1.44e+03 +/- 6.88e-01%\n", + "\n", + "\tNuclide =\tU-238\n", + "\tCross Sections [barns]:\n", + " Group 1 [0.821 - 20.0 MeV]:\t1.07e+00 +/- 6.51e-01%\n", + " Group 2 [0.00553 - 0.821 MeV]:\t1.22e-03 +/- 6.61e-01%\n", + " Group 3 [4e-06 - 0.00553 MeV]:\t6.15e-04 +/- 9.95e+00%\n", + " Group 4 [6.25e-07 - 4e-06 MeV]:\t6.53e-06 +/- 6.29e-01%\n", + " Group 5 [2.8e-07 - 6.25e-07 MeV]:\t1.07e-05 +/- 1.08e+00%\n", + " Group 6 [1.4e-07 - 2.8e-07 MeV]:\t1.55e-05 +/- 1.11e+00%\n", + " Group 7 [5.8e-08 - 1.4e-07 MeV]:\t2.30e-05 +/- 9.03e-01%\n", + " Group 8 [0.0 - 5.8e-08 MeV]:\t4.25e-05 +/- 6.86e-01%\n", + "\n", + "\n", + "\n" + ] + } + ], + "source": [ + "nufission = xs_library[fuel_cell.id]['nu-fission']\n", + "nufission.print_xs(xs_type='micro', nuclides=['U-235', 'U-238'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Our multi-group cross sections are capable of summing across all nuclides to provide us with macroscopic cross sections as well." + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Multi-Group XS\n", + "\tReaction Type =\tnu-fission\n", + "\tDomain Type =\tcell\n", + "\tDomain ID =\t10000\n", + "\tCross Sections [cm^-1]:\n", + " Group 1 [0.821 - 20.0 MeV]:\t2.54e-02 +/- 6.20e-01%\n", + " Group 2 [0.00553 - 0.821 MeV]:\t1.51e-03 +/- 3.34e-01%\n", + " Group 3 [4e-06 - 0.00553 MeV]:\t2.07e-02 +/- 5.07e-01%\n", + " Group 4 [6.25e-07 - 4e-06 MeV]:\t3.30e-02 +/- 7.26e-01%\n", + " Group 5 [2.8e-07 - 6.25e-07 MeV]:\t1.09e-01 +/- 1.13e+00%\n", + " Group 6 [1.4e-07 - 2.8e-07 MeV]:\t1.69e-01 +/- 1.11e+00%\n", + " Group 7 [5.8e-08 - 1.4e-07 MeV]:\t2.58e-01 +/- 9.03e-01%\n", + " Group 8 [0.0 - 5.8e-08 MeV]:\t5.41e-01 +/- 6.88e-01%\n", + "\n", + "\n", + "\n" + ] + } + ], + "source": [ + "nufission = xs_library[fuel_cell.id]['nu-fission']\n", + "nufission.print_xs(xs_type='macro', nuclides='sum')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Although a printed report is nice, it is not scalable or flexible. Let's extract the cross section data for the moderator as a Pandas DataFrame." + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "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", + "
cellgroup ingroup outnuclidemeanstd. dev.
1261000211O-161.5704670.018506
1271000211H-10.2356740.009063
1241000212O-160.2883330.003932
1251000212H-11.5812950.008248
1221000213O-160.0000000.000000
1231000213H-10.0108280.000616
1201000214O-160.0000000.000000
1211000214H-10.0000000.000000
1181000215O-160.0000000.000000
1191000215H-10.0000000.000000
\n", + "
" + ], + "text/plain": [ + " cell group in group out nuclide mean std. dev.\n", + "126 10002 1 1 O-16 1.570467 0.018506\n", + "127 10002 1 1 H-1 0.235674 0.009063\n", + "124 10002 1 2 O-16 0.288333 0.003932\n", + "125 10002 1 2 H-1 1.581295 0.008248\n", + "122 10002 1 3 O-16 0.000000 0.000000\n", + "123 10002 1 3 H-1 0.010828 0.000616\n", + "120 10002 1 4 O-16 0.000000 0.000000\n", + "121 10002 1 4 H-1 0.000000 0.000000\n", + "118 10002 1 5 O-16 0.000000 0.000000\n", + "119 10002 1 5 H-1 0.000000 0.000000" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nuscatter = xs_library[moderator_cell.id]['nu-scatter']\n", + "df = nuscatter.get_pandas_dataframe(xs_type='micro')\n", + "df.head(10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can easily use the Pandas DataFrame to extract the H-1 and O-16 scattering matrices separately." + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Slice DataFrame in two for each nuclide's mean values\n", + "h1 = df[df['nuclide'] == 'H-1']['mean']\n", + "o16 = df[df['nuclide'] == 'O-16']['mean']\n", + "\n", + "# Cast DataFrames as NumPy arrays\n", + "h1 = h1.as_matrix()\n", + "o16 = o16.as_matrix()\n", + "\n", + "# Reshape arrays to 2D matrix for plotting\n", + "h1.shape = (fine_groups.num_groups, fine_groups.num_groups)\n", + "o16.shape = (fine_groups.num_groups, fine_groups.num_groups)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Matplotlib's `imshow` routine can be used to plot the matrices to illustrate their sparsity structures." + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Create plot of the H-1 scattering matrix\n", + "fig = plt.subplot(121)\n", + "fig.imshow(h1, interpolation='nearest')\n", + "plt.title('H-1 Scattering Matrix')\n", + "\n", + "# Create plot of the O-16 scattering matrix\n", + "fig2 = plt.subplot(122)\n", + "fig2.imshow(o16, interpolation='nearest')\n", + "plt.title('O-16 Scattering Matrix')\n", + "\n", + "# Show the plot on screen\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we illustate how one can easily take multi-group cross sections and condense them down to a coarser energy group structure using. The `get_condensed_xs(...)` class method takes in as a parameter an `EnergyGroups` object with a coarse(r) group structure and returns a new multi-group cross section condensed to the coarse groups. We illustrate this process below using the 2-group structure created earlier." + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Extract the 16-group transport cross section for the fuel\n", + "fine_xs = xs_library[fuel_cell.id]['transport']\n", + "\n", + "# Condense to the 2-group structure\n", + "condense_xs = fine_xs.get_condensed_xs(coarse_groups)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Group condensation is as simple as that! We now have a new coarse 2-group cross section in addition to our original 16-group cross section. Let's inspect the 2-group cross section by printing it to the screen and extracting a Pandas DataFrame as we have already learned how to do." + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Multi-Group XS\n", + "\tReaction Type =\ttransport\n", + "\tDomain Type =\tcell\n", + "\tDomain ID =\t10000\n", + "\tNuclide =\tU-238\n", + "\tCross Sections [cm^-1]:\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t2.16e-01 +/- 3.77e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t2.54e-01 +/- 6.46e-01%\n", + "\n", + "\tNuclide =\tO-16\n", + "\tCross Sections [cm^-1]:\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t1.45e-01 +/- 4.03e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t1.75e-01 +/- 7.83e-01%\n", + "\n", + "\tNuclide =\tU-235\n", + "\tCross Sections [cm^-1]:\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t7.72e-03 +/- 1.13e+00%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t1.82e-01 +/- 5.18e-01%\n", + "\n", + "\n", + "\n" + ] + } + ], + "source": [ + "condense_xs.print_xs()" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "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", + "
cellgroup innuclidemeanstd. dev.
3100001U-2389.5669470.036112
4100001O-163.1467800.012666
5100001U-23520.5912530.232675
0100002U-23811.2049120.072348
1100002O-163.7984070.029742
2100002U-235484.5296842.510940
\n", + "
" + ], + "text/plain": [ + " cell group in nuclide mean std. dev.\n", + "3 10000 1 U-238 9.566947 0.036112\n", + "4 10000 1 O-16 3.146780 0.012666\n", + "5 10000 1 U-235 20.591253 0.232675\n", + "0 10000 2 U-238 11.204912 0.072348\n", + "1 10000 2 O-16 3.798407 0.029742\n", + "2 10000 2 U-235 484.529684 2.510940" + ] + }, + "execution_count": 46, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = condense_xs.get_pandas_dataframe(xs_type='micro')\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Verification with OpenMOC" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, let's verify our cross sections using OpenMOC. First, we use OpenCG construct an equivalent OpenMOC geometry just as we did before." + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Create an OpenCG Geometry from the OpenMC Geometry stored in the summary\n", + "su.make_opencg_geometry()\n", + "\n", + "# Create an OpenMOC Geometry from the OpenCG Geometry\n", + "openmoc_geometry = get_openmoc_geometry(su.opencg_geometry)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Likewise, we can inject the multi-group cross sections into the equivalent fuel pin cell OpenMOC geometry." + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Get all OpenMOC cells in the gometry\n", + "openmoc_cells = openmoc_geometry.getRootUniverse().getAllCells()\n", + "\n", + "# Inject multi-group cross sections into OpenMOC Materials\n", + "# NOTE: This code will work for 1, 10, or 1,000s of cells\n", + "# as is the case for a complicated geometry like BEAVRS\n", + "for cell_id, cell in openmoc_cells.items():\n", + " \n", + " # Ignore the root cell\n", + " if cell.getName() == 'root cell':\n", + " continue\n", + " \n", + " # Get a reference to the Material filling this Cell\n", + " openmoc_material = cell.getFillMaterial()\n", + " \n", + " # Set the number of energy groups for the Material\n", + " openmoc_material.setNumEnergyGroups(fine_groups.num_groups)\n", + " \n", + " # Extract the appropriate cross section objects for this cell\n", + " transport = xs_library[cell_id]['transport']\n", + " nufission = xs_library[cell_id]['nu-fission']\n", + " nuscatter = xs_library[cell_id]['nu-scatter']\n", + " chi = xs_library[cell_id]['chi']\n", + " \n", + " # Inject NumPy arrays of cross section data into the Material\n", + " # NOTE: In each case we must sum across nuclides to get the\n", + " # macroscopic cross sections needed by OpenMOC\n", + " openmoc_material.setSigmaT(transport.get_xs(nuclides='sum').flatten())\n", + " openmoc_material.setNuSigmaF(nufission.get_xs(nuclides='sum').flatten())\n", + " openmoc_material.setSigmaS(nuscatter.get_xs(nuclides='sum').flatten())\n", + " openmoc_material.setChi(chi.get_xs(nuclides='sum').flatten())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We are now ready to run OpenMOC to verify our cross-sections from OpenMC." + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Throttle OpenMOC output to screen\n", + "openmoc.log.set_log_level('WARNING')\n", + "\n", + "# Generate tracks for OpenMOC\n", + "openmoc_geometry.initializeFlatSourceRegions()\n", + "track_generator = openmoc.TrackGenerator(openmoc_geometry, 128, 0.1)\n", + "track_generator.generateTracks()\n", + "\n", + "# Run OpenMOC\n", + "solver = openmoc.CPUSolver(track_generator)\n", + "solver.computeEigenvalue()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We report the eigenvalues computed by OpenMC and OpenMOC here together to summarize our results." + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "openmc keff = 1.231090\n", + "openmoc keff = 1.229390\n", + "bias [pcm]: -170.1\n" + ] + } + ], + "source": [ + "# Print report of keff and bias with OpenMC\n", + "openmoc_keff = solver.getKeff()\n", + "openmc_keff = sp.k_combined[0]\n", + "bias = (openmoc_keff - openmc_keff) * 1e5\n", + "\n", + "print('openmc keff = {0:1.6f}'.format(openmc_keff))\n", + "print('openmoc keff = {0:1.6f}'.format(openmoc_keff))\n", + "print('bias [pcm]: {0:1.1f}'.format(bias))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As a sanity check, let's run a simulation with the coarse 2-group cross sections to ensure that they produce a reasonable result." + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "su.make_opencg_geometry()\n", + "openmoc_geometry = get_openmoc_geometry(su.opencg_geometry)\n", + "openmoc_cells = openmoc_geometry.getRootUniverse().getAllCells()\n", + "\n", + "# Inject multi-group cross sections into OpenMOC Materials\n", + "for cell_id, cell in openmoc_cells.items():\n", + " \n", + " # Ignore the root cell\n", + " if cell.getName() == 'root cell':\n", + " continue\n", + " \n", + " openmoc_material = cell.getFillMaterial()\n", + " openmoc_material.setNumEnergyGroups(coarse_groups.num_groups)\n", + " \n", + " # Extract the appropriate cross section objects for this cell\n", + " transport = xs_library[cell_id]['transport']\n", + " nufission = xs_library[cell_id]['nu-fission']\n", + " nuscatter = xs_library[cell_id]['nu-scatter']\n", + " chi = xs_library[cell_id]['chi']\n", + " \n", + " # Perform group condensation\n", + " transport = transport.get_condensed_xs(coarse_groups)\n", + " nufission = nufission.get_condensed_xs(coarse_groups)\n", + " nuscatter = nuscatter.get_condensed_xs(coarse_groups)\n", + " chi = chi.get_condensed_xs(coarse_groups)\n", + " \n", + " # Inject NumPy arrays of cross section data into the Material\n", + " openmoc_material.setSigmaT(transport.get_xs(nuclides='sum').flatten())\n", + " openmoc_material.setNuSigmaF(nufission.get_xs(nuclides='sum').flatten())\n", + " openmoc_material.setSigmaS(nuscatter.get_xs(nuclides='sum').flatten())\n", + " openmoc_material.setChi(chi.get_xs(nuclides='sum').flatten())" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Generate tracks for OpenMOC\n", + "openmoc_geometry.initializeFlatSourceRegions()\n", + "track_generator = openmoc.TrackGenerator(openmoc_geometry, 128, 0.1)\n", + "track_generator.generateTracks()\n", + "\n", + "# Run OpenMOC\n", + "solver = openmoc.CPUSolver(track_generator)\n", + "solver.computeEigenvalue()" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "openmc keff = 1.231090\n", + "openmoc keff = 1.232146\n", + "bias [pcm]: 105.6\n" + ] + } + ], + "source": [ + "# Print report of keff and bias with OpenMC\n", + "openmoc_keff = solver.getKeff()\n", + "openmc_keff = sp.k_combined[0]\n", + "bias = (openmoc_keff - openmc_keff) * 1e5\n", + "\n", + "print('openmc keff = {0:1.6f}'.format(openmc_keff))\n", + "print('openmoc keff = {0:1.6f}'.format(openmoc_keff))\n", + "print('bias [pcm]: {0:1.1f}'.format(bias))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There is a non-trivial bias in both the 2-group and 8-group cases. In the case of the pin cell, one can show that these biases do not converge to <100 pcm with more particle histories. In the case of heterogeneous geometries, additional measures must be taken to address the following three sources of bias:\n", + "\n", + "* Appropriate transport-corrected cross sections\n", + "* Spatial discretization of OpenMOC's mesh\n", + "* Constant-in-angle multi-group cross sections" + ] + } + ], + "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 +} diff --git a/docs/source/pythonapi/examples/multi-group-cross-sections.rst b/docs/source/pythonapi/examples/multi-group-cross-sections.rst new file mode 100644 index 000000000..b2da0e1bc --- /dev/null +++ b/docs/source/pythonapi/examples/multi-group-cross-sections.rst @@ -0,0 +1,11 @@ +==================================== +Multi-Group Cross Section Generation +==================================== + +.. only:: html + + .. notebook:: multi-group-cross-sections.ipynb + +.. only:: latex + + IPython notebooks must be viewed in the online HTML documentation. diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index cb63e2ac3..c7da78a6e 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -358,7 +358,18 @@ "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Run openmc in plotting mode\n", "executor = openmc.Executor()\n", @@ -374,7 +385,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB98JFQMbBgd4EXAAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDktMjFUMTA6MjU6\nMjYrMDc6MDAKj62JAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTA5LTIxVDEwOjI1OjI2KzA3OjAw\ne9IVNQAAAABJRU5ErkJggg==\n", + "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+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEwLTAzVDEzOjAz\nOjU5LTA0OjAwMu4u/QAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0xMC0wM1QxMzowMzo1OS0wNDow\nMEOzlkEAAAAASUVORK5CYII=\n", "text/plain": [ "" ] @@ -563,8 +574,9 @@ " 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: b167d70c877c516deca785801b9fa6f53fb0985b\n", - " Date/Time: 2015-09-21 10:27:06\n", + " Git SHA1: e0c2aace2e73367536fa03e153b67a2d038cd2b3\n", + " Date/Time: 2015-10-03 13:03:59\n", + " MPI Processes: 1\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -631,20 +643,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.4100E-01 seconds\n", - " Reading cross sections = 1.7900E-01 seconds\n", - " Total time in simulation = 1.2656E+01 seconds\n", - " Time in transport only = 1.2642E+01 seconds\n", - " Time in inactive batches = 2.0300E+00 seconds\n", - " Time in active batches = 1.0626E+01 seconds\n", - " Time synchronizing fission bank = 4.0000E-03 seconds\n", - " Sampling source sites = 3.0000E-03 seconds\n", - " SEND/RECV source sites = 1.0000E-03 seconds\n", + " Total time for initialization = 3.9400E-01 seconds\n", + " Reading cross sections = 8.8000E-02 seconds\n", + " Total time in simulation = 1.0755E+01 seconds\n", + " Time in transport only = 1.0746E+01 seconds\n", + " Time in inactive batches = 1.2680E+00 seconds\n", + " Time in active batches = 9.4870E+00 seconds\n", + " Time synchronizing fission bank = 2.0000E-03 seconds\n", + " Sampling source sites = 2.0000E-03 seconds\n", + " SEND/RECV source sites = 0.0000E+00 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 1.3110E+01 seconds\n", - " Calculation Rate (inactive) = 6157.64 neutrons/second\n", - " Calculation Rate (active) = 3529.08 neutrons/second\n", + " Total time elapsed = 1.1159E+01 seconds\n", + " Calculation Rate (inactive) = 9858.04 neutrons/second\n", + " Calculation Rate (active) = 3952.78 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -769,13 +781,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.15044911]]\n", + "[[[ 0.1127471 ]]\n", "\n", - " [[ 0.09149973]]\n", + " [[ 0.06599162]]\n", "\n", - " [[ 0.27611475]]\n", + " [[ 0.25310075]]\n", "\n", - " [[ 0.12476673]]]\n" + " [[ 0.10150973]]]\n" ] } ], @@ -819,16 +831,6 @@ " \n", " \n", " \n", - " \n", - " bin\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", @@ -836,229 +838,228 @@ " 1\n", " 1\n", " 1\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " fission\n", - " 0.000236\n", - " 0.000035\n", + " 0.000224\n", + " 0.000025\n", " \n", " \n", " 1\n", " 1\n", " 1\n", " 1\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " nu-fission\n", - " 0.000574\n", - " 0.000086\n", + " 0.000546\n", + " 0.000062\n", " \n", " \n", " 2\n", " 1\n", " 1\n", " 1\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " fission\n", - " 0.000072\n", - " 0.000006\n", + " 0.000071\n", + " 0.000004\n", " \n", " \n", " 3\n", " 1\n", " 1\n", " 1\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " nu-fission\n", - " 0.000190\n", - " 0.000014\n", + " 0.000187\n", + " 0.000010\n", " \n", " \n", " 4\n", " 1\n", " 2\n", " 1\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " fission\n", - " 0.000451\n", - " 0.000058\n", + " 0.000392\n", + " 0.000045\n", " \n", " \n", " 5\n", " 1\n", " 2\n", " 1\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " nu-fission\n", - " 0.001100\n", - " 0.000141\n", + " 0.000955\n", + " 0.000110\n", " \n", " \n", " 6\n", " 1\n", " 2\n", " 1\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " fission\n", - " 0.000095\n", - " 0.000006\n", + " 0.000096\n", + " 0.000005\n", " \n", " \n", " 7\n", " 1\n", " 2\n", " 1\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " nu-fission\n", - " 0.000250\n", - " 0.000016\n", + " 0.000252\n", + " 0.000014\n", " \n", " \n", " 8\n", " 1\n", " 3\n", " 1\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " fission\n", - " 0.000575\n", - " 0.000080\n", + " 0.000551\n", + " 0.000053\n", " \n", " \n", " 9\n", " 1\n", " 3\n", " 1\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " nu-fission\n", - " 0.001401\n", - " 0.000194\n", + " 0.001343\n", + " 0.000130\n", " \n", " \n", " 10\n", " 1\n", " 3\n", " 1\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " fission\n", - " 0.000134\n", - " 0.000011\n", + " 0.000131\n", + " 0.000008\n", " \n", " \n", " 11\n", " 1\n", " 3\n", " 1\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " nu-fission\n", - " 0.000353\n", - " 0.000028\n", + " 0.000343\n", + " 0.000019\n", " \n", " \n", " 12\n", " 1\n", " 4\n", " 1\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " fission\n", - " 0.000655\n", - " 0.000071\n", + " 0.000688\n", + " 0.000063\n", " \n", " \n", " 13\n", " 1\n", " 4\n", " 1\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " nu-fission\n", - " 0.001596\n", - " 0.000174\n", + " 0.001676\n", + " 0.000153\n", " \n", " \n", " 14\n", " 1\n", " 4\n", " 1\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " fission\n", - " 0.000149\n", - " 0.000009\n", + " 0.000151\n", + " 0.000007\n", " \n", " \n", " 15\n", " 1\n", " 4\n", " 1\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " nu-fission\n", - " 0.000391\n", - " 0.000023\n", + " 0.000395\n", + " 0.000019\n", " \n", " \n", " 16\n", " 1\n", " 5\n", " 1\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " fission\n", - " 0.000781\n", - " 0.000078\n", + " 0.000785\n", + " 0.000065\n", " \n", " \n", " 17\n", " 1\n", " 5\n", " 1\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " nu-fission\n", - " 0.001903\n", - " 0.000191\n", + " 0.001914\n", + " 0.000158\n", " \n", " \n", " 18\n", " 1\n", " 5\n", " 1\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " fission\n", - " 0.000185\n", - " 0.000009\n", + " 0.000187\n", + " 0.000008\n", " \n", " \n", " 19\n", " 1\n", " 5\n", " 1\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " nu-fission\n", - " 0.000484\n", - " 0.000024\n", + " 0.000487\n", + " 0.000019\n", " \n", " \n", "\n", "" ], "text/plain": [ - " mesh 1 energy [MeV] score mean std. dev.\n", - " x y z \n", - "bin \n", - "0 1 1 1 0.0e+00 - 6.3e-07 fission 0.000236 0.000035\n", - "1 1 1 1 0.0e+00 - 6.3e-07 nu-fission 0.000574 0.000086\n", - "2 1 1 1 6.3e-07 - 2.0e+01 fission 0.000072 0.000006\n", - "3 1 1 1 6.3e-07 - 2.0e+01 nu-fission 0.000190 0.000014\n", - "4 1 2 1 0.0e+00 - 6.3e-07 fission 0.000451 0.000058\n", - "5 1 2 1 0.0e+00 - 6.3e-07 nu-fission 0.001100 0.000141\n", - "6 1 2 1 6.3e-07 - 2.0e+01 fission 0.000095 0.000006\n", - "7 1 2 1 6.3e-07 - 2.0e+01 nu-fission 0.000250 0.000016\n", - "8 1 3 1 0.0e+00 - 6.3e-07 fission 0.000575 0.000080\n", - "9 1 3 1 0.0e+00 - 6.3e-07 nu-fission 0.001401 0.000194\n", - "10 1 3 1 6.3e-07 - 2.0e+01 fission 0.000134 0.000011\n", - "11 1 3 1 6.3e-07 - 2.0e+01 nu-fission 0.000353 0.000028\n", - "12 1 4 1 0.0e+00 - 6.3e-07 fission 0.000655 0.000071\n", - "13 1 4 1 0.0e+00 - 6.3e-07 nu-fission 0.001596 0.000174\n", - "14 1 4 1 6.3e-07 - 2.0e+01 fission 0.000149 0.000009\n", - "15 1 4 1 6.3e-07 - 2.0e+01 nu-fission 0.000391 0.000023\n", - "16 1 5 1 0.0e+00 - 6.3e-07 fission 0.000781 0.000078\n", - "17 1 5 1 0.0e+00 - 6.3e-07 nu-fission 0.001903 0.000191\n", - "18 1 5 1 6.3e-07 - 2.0e+01 fission 0.000185 0.000009\n", - "19 1 5 1 6.3e-07 - 2.0e+01 nu-fission 0.000484 0.000024" + " 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, @@ -1083,9 +1084,9 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAEaCAYAAADtxAsqAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xu4nVV94PHvIQnqCPUYoUIuurlpiRdO7EwMo4XjYDHE\nllitUtuhHJwZGC21DjgCYptEx4JabZ7IJGJLITMdoNjBy4xouJQttGpiyQWqBEjK0VxqEAktRhQC\np3/81t77Pfvsc953n8u+nPP9PM9mv++719p7bfKed+21futdCyRJkiRJkiRJkiRJkiRJkiRJHeJZ\nYCuwDbgXOHWS378f+H85aU6fgs9thUFgboPjP2lxOTTDzW53ATSj/BRYnLbPBK4kLvSt9CbgSeBb\n48zfk56HJqc4hY32ea0ux1gOA55rdyE0tQ5rdwE0Y70IeDxt9wCfAu4H7gPelY6vAf4wbb8F+EZK\nez3wOeA7wIPAWxu8/1zgS8B2ooJ4DVACLgT+G9HieWNdnqOB24F/AP6M2q/7UvqcDamMC0cpbz/D\nWzpXA+el7UHgEyn9JuCEzGf+NbA5Pf59Ov4S4LZMWSqVVSOfSenuAI5K731v5vWT6vYr3g98l/h/\ndGM6dgRwXSrnduA30vF3p2P3A1dl3uMnwJ8QrcdTgf+Yvt9W4t/Ia4ykcTtEXEweAJ6g1up4B3GB\n7AF+Efg+8FLgBcTF8E3ADuC4lP564Na0fSKwG3gewy/an6VW4bwpfS7ASuDiUcp3NXBp2n4L8au5\nUmk8CywZo7zHMLLS+Czwu2n7EeDytH1uJt0NwBvS9suA76XttcBH0vbyTFnqPUdc0Enf97Np+2+A\nU9L2HwO/1yDvXmBO2v6F9PwJohKq6AXmpe/4EmAWcCewIvP5v5m2Twa+ktIArEvfVZLG5cnM9lKi\nQgD4U2Ag89r/An49bZ9KVDbZi951dem/QVwg+6ldjLcQF/uKHwBHEpXGJaOUbyvw8sz+j6lVGv+Y\nOf6ZUcp7OmNXGpXyzAEeS9uPps+tPHYDL0zb2fJXylLvELVf88dRqxx/m2ipHQbsBF7cIO/XgC8A\nv5M+E+DvqbWCKlYQFXXFe4BPp+1nqLWCLiIqosp32QH8UYPPVRczpqF2+TbRlXI00S+f7X7podZX\n/1rgR8D8nPdr1Jc+VpfOaEbLczAn3RDDL+AQLaXRVL5fD/B64OkmyjKa7P+3W4gK8m+IiuBAg/Rv\nBU4jKrwriC68Rp871r/PzxgeV9kAfLjJcquL2N+odvkl4vx7DLgHOCftHw38CtG//3KiK2kxcBa1\n7qEe4J3p+QTgeCLmkHUP8QsaogXyI6Kl8yTR4mjk76jFJ86k8a/zyntny3taKu8PgEXA4US3zn+o\ny3dO5vmbafs2IrZQUelSuptoLUB899HKchjx/4KU/p60/TNgI7CeaJnV6yG6w8rAZUSM6QgippNt\n1fWm73Y6te6p3yJad/XuJLqqjk77c9NnSNK4VGIalWG3Z2Ve+yS1wHLlIng78Gtp+3XptecRF8H1\n1ALhy1Oa04k+dYiL7BeJYO43gVen4yelY1upxRIqjiaCyfcDnwf2EV1JpfTZWY3KCxETeIi4YP81\nw7unrkqfvYmo6CAuxDel498l4gAQF9yNRBfe51P+Rt1TTxJdRfensr8k89pSorurUYtlNlHBVILb\nH0rHX0h0Rd1P/Bu9LR3/rUzaKzPv8y917/su4v/tdqKFswRJarPrgLdPwfseTi2IeyoRF5kso130\np9IHgdUt/kxNc8Y0pJqXATcTXT5PA/9lEt+71fdTfJEIjNd3kUmSJEnqJINEd899RBzhWuJekq8B\n/0zEX3pT2qVEHOUAERc4PfM+5xP3YvwLsAu4IPNaP7CHCP7vJ2IqA5P/VSRJU+0RoiI4mrjZbT8R\n8ziFCM7fSdyTMJ8YEbYs5Xtz2q8EqJdTu0nxNGIob+Umx37ivodVRGzlrPT6i6bkG0mSpswj1O68\nhhgZ9T8z+xcRcYQPETf7ZX2d2iiqel+kNuS2n5ifKzsUfj+OQFIH8T4Nqbj9me2n6vZ/Rtzn8HJi\nCO6BzOMNxDQjEK2HbxN3eB8gWh7ZYbI/ZviNij9N7yt1BEdPSeOXvf+hMjpqN/C/GR6rqHge8H+J\nSf2+TMxn9UXGd+e61Ba2NKTJUbnw/yUxLceZRFzi+US303ziPpDDiRjHc0Sr48xWF1SaCCsNafyG\n6raHiNFPK4j5lx4lpha5hKhUniTiFzcT08K/m2hxjPaeUldaRsxW+TC1aaPrrU2vb6c2EqRI3ksY\nPuVziegrrkw1sa5BHklSh5pFTKtcIubg2UbMmZ+1nNraBq8ngnxF8i4kRpVkp1coEXPbSJI6UF73\n1BLiwj9IjB+/idriKxVnE9MhQ0zE1kuMFMnL+xlqk6RJkrpAXqUxnxgNUrGHkesajJZm3hh5V6T9\n+plDobaQTJmRy3FKktoob8ht0aBcM0MGX0AECX+1Qf59RLfVAWIq7C8Br2L4im+SpDbJqzT2Ehfx\nioVEC2GsNAtSmjmj5D2BiF1sz6S/l+jOepTaCmZbiLl5TqJuiuoTTjhhaNeuXTlFlyRNwHagr9lM\ns4kLd4kYX54XCF9KLRBeJC8MD4QfRW09g+OJSqa3QZ4hTb6VK1e2uwhSUzxnpw6j9DTltTQOEXPq\nbEwX82uBB4AL0+vXpApjORH0PkjM4jlW3hEVQGb7NOCjROD8ufQ5T+SUUZLUIkWmEflaemRdU7d/\nURN56x2f2b4lPdQGg4OD7S6C1BTP2dbzjnBV9fU13X0ptdURR3jOtpqVhqo+8IEPtLsIUlOOOspz\nttWsNCRJhTk1uqrK5TL9/f3tLoY0pnI5HgCrV5eJSYShvz8emlpWGpK6SrZyGByEVavaV5aZyO4p\nVdnKULcplfrbXYQZx0pDUtfyd07rWWmoqlzpKJa6RrndBZhxrDQkSYV164L2aWoUSdJU6OnpgQZ1\nhC0NSV3LHtXWs9JQlTENdZvrry+3uwgzjpWGpK71wx+2uwQzjzENSV1l+B3hsHJlbHtH+OQaLaZh\npSGpa5VKcVe4Jt9EAuHLgB3Aw8Clo6RZm17fDixuIu8lxGJLczPHLk/pdwBnFiifJokxDXWDcjmm\nDlm1Cr7//XJ129O3NfIqjVnA1cTFfxHwbhov93oisZb3BcD6gnkXAr8KfD9zbBFwTnpeBqwrUEZJ\nUovkdU+dCqwkLuAAl6XnqzJpPgfcBfxV2t9BTDt5XE7eLwAfA74M/DLwONHKeA74RErzdWAVtXXH\nK+yekkRfH2zb1u5STE/j7Z6aD+zO7O9Jx4qkmTdG3hVp/76695qXjo/1eZKkNsmrNIr+nG8moP4C\n4MNEK6RIfpsULWJMQ93m8MPL7S7CjJO3nsZeIvZQsZDhLYFGaRakNHNGyXsCUCKC5pX09wKvH+W9\n9jYq2MDAAKVSCYDe3l76+vqqU3tXLn7uN7df0Snlcd/9Rvtr1pTZti2mRf/Od2BgIF4fGOinv7/9\n5evW/cr2YM5wtLwWwmzgQeAMYB+wmQhoP5BJsxy4KD0vBdak5yJ5AR6hFtNYBNwALCG6pe4gguz1\nrQ1jGpKMaUyh0WIaeS2NQ0SFsJEYDXUtcdG/ML1+DXArUWHsBA4C5+fkrZe9+n8PuDk9HwLeh91T\nkjKyN/dt315buc+b+1rDm/tUVXaNcHWZ+fPL7N3b3+5iTEvjbWlIUkfJtjT27bOl0Wq2NCR1rWOO\ncdLCqWJLQ9K0kG1p7N9vS6PVnKJDVdmhd1J3KLe7ADOO3VOqMhCubjN3bpnHH+9vdzGmJadGlzQt\nuJ5Ga1hpSJp2vLlv6hgIVy67p9QNht/cV2bVqn7Alkar2NJQlZWGOlX61dvApdRWUhjJ68T42T0l\nadqJCQrbXYrpaSLLvUpSR6rco6HWsdJQlfdpqPuU212AGcdKQ5JUmDENSdIIxjQkSRNWpNJYBuwA\nHibGtzWyNr2+HVhcIO/HUtptwJ3UlngtAU8BW9NjXYHyaZIY01C3qSz1qtbJqzRmAVcTF/9FxHKt\nJ9elWU4syXoScAGwvkDeTwKnAH3Al4CVmffbSVQ8i4mV+ySpoQ0b2l2CmSev0lhCXMQHgWeAm4AV\ndWnOBir/dJuAXuCYnLxPZvIfATw2nsJrcnljn7pPf7sLMOPkVRrzgd2Z/T3pWJE083Lyfhz4AXAe\ncFXm+HFE11QZeGNO+SRJLZRXaRQdojSeUVhXAC8Drgf+NB3bR8Q3FgMXAzcAR47jvTUOxjTUfcrt\nLsCMkzdh4V5qQWrS9p6cNAtSmjkF8kJUDLem7afTA2ALsIuIlWypzzQwMECpVAKgt7eXvr6+avdK\n5eLnfnP7FZ1SHvfdd7+1f//lcpnBwUHGktdCmA08CJxBtAI2EwHtBzJplgMXpeelwJr0PFbek4gR\nVQC/T8Q/zgWOAg4AzwLHA3cDrwaeqCuX92lIYtUqpxKZKuOdGv0QUSFsJEZDXUtc9C9Mr19DtBKW\nE0Hvg8D5OXkBrgReSVQOu4D3puOnAR8lAufPpc+przAkCbDCaAfvCFdV2anR1WU8Z6eOd4RLkibM\nloYkaQRbGpKkCbPSUFV26J3UDZx7qvWsNCR1Leeeaj1jGpK6Vk8PeCmYGsY0JEkTZqWhKmMa6j7l\ndhdgxrHSkCQVZqWhKu+sVbdZubK/3UWYcQyES5JGMBCuXMY01G08Z1vPSkOSVJjdU5KkEeyekiRN\nWJFKYxmwg1hp79JR0qxNr28n1vfOy/uxlHYbcCfDl4W9PKXfAZxZoHyaJPYPq9s491Tr5VUas4Cr\niYv/ImK51pPr0iwHTiSWcL0AWF8g7yeBU4A+4EvAynR8EXBOel4GrCtQRkkzlHNPtV7eBXkJsYzr\nILEE603Airo0ZwOVf7pNQC9wTE7eJzP5jwAeS9srgBtT+sGUf0nhb6MJ8T4NdZ/+dhdgxslbI3w+\nsDuzvwd4fYE084F5OXk/DpwLPEWtYpgHfLvBe0mSOkBeS6PoEKXxjMK6AngZcB2wZhLKoAkypqHu\nU253AWacvJbGXoYHqRcSv/7HSrMgpZlTIC/ADcCtY7zX3kYFGxgYoFQqAdDb20tfX1+1e6Vy8XO/\nuf2KTimP++6739q//3K5zODgIGPJayHMBh4EzgD2AZuJgPYDmTTLgYvS81Ki1bA0J+9JxAgpgN8n\nuqfOJQLgN6T9+cAdRJC9vrXhfRqSWLUqHpp8o92nkdfSOERUCBuJ0VDXEhf9C9Pr1xCthOVE0Pog\ncH5OXoArgVcCzwK7gPem498Dbk7Ph4D3YfeUpFFYYbSed4SrqlwuV5usUjfwnJ063hEuSZowWxqS\npBFsaUiSJsxKQ1XZoXdSN3Duqdaz0pDUtZx7qvWMaUjqWj094KVgahjTkCRNmJWGqoxpqPuU212A\nGcdKQ5JUmJWGqryzVt1m5cr+dhdhxjEQLkkawUC4chnTULfxnG09Kw1JUmF2T0mSRrB7SpI0YUUq\njWXADmKlvUtHSbM2vb4dWFwg76eIBZm2A7cAL0rHS8BTwNb0WFegfJok9g+r2zj3VOvlVRqzgKuJ\ni/8iYrnWk+vSLCeWZD0JuABYXyDvbcCrgFOAh4DLM++3k6h4FhMr90lSQ8491Xp5lcYS4iI+CDwD\n3ASsqEtzNlD5p9sE9ALH5OS9HXguk2fBOMuvSeR9Guo+/e0uwIyTV2nMB3Zn9vekY0XSzCuQF+A9\nxDrjFccRXVNl4I055ZMktVBepVF0iNJ4R2FdATwN3JD29wELia6pi9PxI8f53mqSMQ11n3K7CzDj\nzM55fS9xEa9YSLQYxkqzIKWZk5N3gIiHnJE59nR6AGwBdhGxki31BRsYGKBUKgHQ29tLX19ftXul\ncvFzv7n9ik4pj/vuu9/av/9yuczg4CBjyWshzAYeJC7s+4DNRED7gUya5cBF6XkpsCY9j5V3GfBp\n4HTgscx7HQUcAJ4FjgfuBl4NPFFXLu/TkMSqVfHQ5BvtPo0i3UpnERXBLOBa4ErgwvTaNem5Mkrq\nIHA+tZZBo7wQQ3APBx5P+98iRkq9A1hNBM6fA/4I+GqDMllpSNIUmkil0YmsNKZAuVyuNlmlbuA5\nO3W8I1ySNGG2NCRJI9jSkCRNmJWGqrJD76Ru4NxTrWelIalrOfdU6xnTkNS1enrAS8HUMKYhSZow\nKw1VGdNQ9ym3uwAzjpWGJKkwKw1VeWetus3Klf3tLsKMYyBckjSCgXDlMqahbuM523pWGpKkwuye\nkiSNYPeUJGnCilQay4AdxMJJl46SZm16fTuxvnde3k8RK/htB24BXpR57fKUfgdwZoHyaZLYP6xu\n49xTrZdXacyitirfImK51pPr0iwHTiTW8r4AWF8g723Aq4BTgIeIioKU7pz0vAxYV6CMkmYo555q\nvbwL8hJgJzBILMF6E7CiLs3ZQOWfbhPQCxyTk/d2YjnXSp4FaXsFcGNKP5jyL2nmC2n8vE9D3ae/\n3QWYcfIqjfnA7sz+nnSsSJp5BfICvAe4NW3PS+ny8kiS2iCv0ig6RGm8o7CuAJ4GbpiEMmiCjGmo\n+5TbXYAZZ3bO63uBhZn9hQxvCTRKsyClmZOTd4CIh5yR8157GxVsYGCAUqkEQG9vL319fdXulcrF\nz/3m9is6pTzuu+9+a//+y+Uyg4ODjCWvhTAbeJC4sO8DNhMB7QcyaZYDF6XnpcCa9DxW3mXAp4HT\ngccy77WIaHUsIbql7iCC7PWtDe/TkMSqVfHQ5BvtPo0i3UpnERXBLOBa4ErgwvTaNem5MkrqIHA+\nsGWMvBBDag8HHk/73wLel7Y/TMQ5DgF/AGxsUCYrDUmaQhOpNDqRlcYUKJfL1Sar1A08Z6eOd4RL\nkibMloYkaQRbGpKkCbPSUNWaNeV2F0FqinNPtZ6Vhqq2bWt3CaTmOPdU61lpqKpU6m93EaQm9be7\nADNO3h3hmubK5XgArF5dO97fHw9JynL0lKqWLSvz9a/3t7sYUmE9PWWGhvrbXYxpydFTyrVzZ7tL\nIKnTWWkoo7/dBdAMNncu9PQ094D+pvPMndvub9rdjGnMcNmYxq5dtcnfjGmo1Q4cgFb0Ovd0a6d8\nh7CloYxyuwsgNSU7rbdaw0pDklSYlYYy+ttdAKkpznDbelYakqTCilQay4AdxMJJl46SZm16fTuw\nuEDedwLfBZ4FXpc5XgKeAramx7oC5dOkKbe7AFJTjGm0Xt7oqVnEqnxvJtbq/g7wFUYu93oicBLw\nemA9sdzrWHnvB36D2sp/WTsZXvFoCm3bVhs9BbXt3l5HT0kaKa/SWEJcxAfT/k3ACoZXGmcDlWnD\nNgG9wDHAcWPk3TGxYmuy9PXBE0/E9je+0V+tKPr62lYkqTBjGq2XV2nMB3Zn9vcQrYm8NPOBeQXy\nNnIc0TX1z8BHgL8tkEdN6Bl1oPo/sXr1scDweagqnLpFUl5Mo+hVYrJul9kHLCS6py4GbgCOnKT3\nVjI0NNTwATtGfc0KQ53ImEbr5bU09hIX8YqFRIthrDQLUpo5BfLWezo9ALYAu4hYyZb6hAMDA5RK\nJQB6e3vp6+urNlUrJ5L7ze1XdEp53J9Z+5Uh31P9eVCmXG7/9+20/cr24OAgY8lrIcwGHgTOIFoB\nm4F3MzIQflF6XgqsSc9F8t4FfBC4N+0fBRwgRlUdD9wNvBp4oq5cznI7BXp6WjONg9RIq84/z/Ni\nRpvlNq+lcYioEDYSo6GuJS76F6bXrwFuJSqMncBB4PycvBAjp9YSlcRXiRjGWcDpwGrgGeC59Dn1\nFYamyMqV7S6BpE7XrVN32dKYAuVyOdOEl1prPC2A8ZyztjSKcT0NSdKE2dKQ1BGMaXQWWxqSpAmz\n0lBVduid1A08Z1vPSkNV11/f7hJI6nTGNFRlX6/ayZhGZzGmIUmaMCsNZZTbXQCpKcY0Ws9KQ5JU\nmDENVdnXq3YyptFZjGkol3NPScpjpaGq/v5yu4sgNcWYRutZaUiSCjOmIakjGNPoLMY0JEkTVqTS\nWAbsAB4GLh0lzdr0+nZife+8vO8Evkus0Pe6uve6PKXfAZxZoHyaJPYPq9t4zrZeXqUxC7iauPgv\nIpZrPbkuzXLgRGIt7wuA9QXy3k+s3nd33XstAs5Jz8uAdQXKqEni3FOS8uRdkJcQy7gOEkuw3gSs\nqEtzNrAhbW8CeoFjcvLuAB5q8HkrgBtT+sGUf0mxr6KJ2rChv91FkJriSpOtl1dpzAd2Z/b3pGNF\n0swrkLfevJSumTySpBbJqzSKjjGYylFYjnNomXK7CyA1xZhG683OeX0vsDCzv5DhLYFGaRakNHMK\n5M37vAXp2AgDAwOUSiUAent76evrqzZVKyeS+83tV3RKedyfWfvQms+DMuVy+79vp+1XtgcHBxlL\nXgthNvAgcAawD9hMBLQfyKRZDlyUnpcCa9Jzkbx3AR8E7k37i4AbiDjGfOAOIshe39rwPo0p4Ph1\ntZP3aXSW0e7TyGtpHCIqhI3EaKhriYv+hen1a4BbiQpjJ3AQOD8nL8TIqbXAUcBXga3AWcD3gJvT\n8yHgfdg91TLOPSUpj3eEq6pcLmea8FJrjacFMJ5z1pZGMd4RLkmaMFsakjqCMY3OYktDkjRhVhqq\nyg69k7qB52zrWWmoyrmnJOUxpqEq+3rVTsY0OosxDUnShFlpKKPc7gJITTGm0XpWGpKkwoxpqMq+\nXrVVTwsvR57oucY795S61Ny5cOBA8/ma/bt98Yvh8ceb/xypXg9DrQuET/3HTFt2T01TBw7Ej6lm\nHnfdVW46z3gqJmmyGNNoPSsNSVJhxjSmKce8q9t4znYW79OQJE1YkUpjGbADeBi4dJQ0a9Pr24HF\nBfLOBW4HHgJuA3rT8RLwFLEo01ZgXYHyaZLYP6xu4znbenmVxizgauLiv4hYrvXkujTLiSVZTwIu\nANYXyHsZUWm8Argz7VfsJCqexcTKfZKkDpFXaSwhLuKDwDPATcCKujRnAxvS9iai1XBMTt5sng3A\n28ZZfk0iV+1Tt/Gcbb28SmM+sDuzvycdK5Jm3hh5XwrsT9v7037FcUTXVBl4Y075JEktlFdpFB1j\nUGQUVs8o7zeUOb4PWEh0TV0M3AAcWbAMmiD7h9VtPGdbL++O8L3ERbxiIdFiGCvNgpRmToPje9P2\nfqIL64fAscCj6fjT6QGwBdhFxEq21BdsYGCAUqkEQG9vL319fdWmauVEmun70Gx6Oqr87s+s/WbP\n1/HuQ5lyuf3ft9P2K9uDg4OMJa+FMBt4EDiDaAVsJgLaD2TSLAcuSs9LgTXpeay8nwR+DHyCCIL3\npuejgAPAs8DxwN3Aq4En6srlfRo5HPOubuM521nGO/fUIaJC2EiMhrqWuOhfmF6/BriVqDB2AgeB\n83PyAlwF3Az8JyJQ/q50/DTgo0Tg/Ln0OfUVhiSpTbwjfJoaz6+pcrmcacJP3edIjXjOdhbvCJck\nTZgtjWnK/mF1m1Ytp+F0/sW4noakjjaeHx/+aGk9u6dUlR16J3WHcrsLMONYaUiSCjOmMU0Z09BM\n4Pk3dYxpzDBD9LTkJ8FQ5r+Spj+7p6apHppc7HtoiPJddzWdp8cKQ2103nnldhdhxrHSkNS1Bgba\nXYKZx5jGNGVMQ9JEeEe4JGnCrDRU5X0a6jaes61npSFJKswht9NY83P59Df9GS9+cdNZpElTLvfj\nMuGtZSBcVQa11W08Z6fORALhy4AdwMPApaOkWZte306s752Xdy5wO/AQcBuxcl/F5Sn9DuDMAuXT\npCm3uwBSk8rtLsCMk1dpzAKuJi7+i4jlWk+uS7McOJFYy/sCYH2BvJcRlcYrgDvTPindOel5GbCu\nQBk1aba1uwBSkzxnWy3vgryEWMZ1kFiC9SZgRV2as4ENaXsT0Wo4JidvNs8G4G1pewVwY0o/mPIv\naeYLaSJcWVfdxnO21fIqjfnA7sz+nnSsSJp5Y+R9KbA/be9P+6Q8e3I+T9IM09PT0/ABq0d9radV\nqzrNMHmVRtEQU5F/nZ5R3m8o53MMc00y/wDVbYaGhho+zjvvvFFfc7DM1MgbcrsXWJjZX8jwlkCj\nNAtSmjkNju9N2/uJLqwfAscCj47xXnsZaXtPT88pOWXXJLPiUCfasGFDfiKNx/bxZJoN7AJKwOFE\n1KlRIPzWtL0U+HaBvJ+kNprqMuCqtL0opTscOC7l90olSV3kLOBBIih9eTp2YXpUXJ1e3w68Licv\nxJDbO2g85PbDKf0O4C2T9SUkSZIkSRP0fuB7wOPAh8aR/+8mtzjShPwS0W19L3A84zs/VwNnTGah\npOnkAWL4sjQdXAZc0e5CSNPV54CfA/cBHwA+m46/E7if+MX2jXTsVcQNmVuJeNQJ6fhP0nMP8KmU\n7z7gXel4PzF/wxeICuovp+KLaNooEefJ54F/ADYCzyfOoV9OaY4CHmmQdznwT8SIzDvTscr5eSxw\nN3H+3g+8gbiN4Hpq5+wfpLTXA+9I22cAW9Lr1xIDbyBuKF5FtGjuA17Z7BeVutUjxGCD84h5wSD+\nCI5N27+QntcCv522ZxN/yABPpud3EAMVeoBfBL5PDJXuJ27FnZde+ybxBys1UiJmeXht2v8r4HeA\nu6gNnBmt0gBYCVyc2a+cn5cQA2cgzsMjiErotkzayrl+HfB24hz/ATH1EcSMFJWK5RHg99L2e4E/\ny/tiM5HzOk1fPZkHRD/wBuA/U7s/51vEH92HiD/sn9W9xxuBG4gbLB8lWij/Lu1vBval7W0pvzSa\nR4gfLhC/5EtN5m809H4zcD5RqbyWaIHsIuIea4nRl09m0vcQrYdHiBGaEH8Tp2XS3JKet4yjjDOC\nlcb0lr0l9r3AR4ibJ+8lWiI3Ar8OPEXca/OmBvnr/1gr7/nzzLFncW0Wja3R+XKImNgUaq1ciFbB\nVuD/57znPcCvEDcAXw+cS7SATyG6vv4r8Od1eepvE6+fqaJSTs/pUVhpTG/ZC/4JxC+zlcCPiLvt\njyP6cT8LfBl4TV3+e4hZhw8DjiZ+kW3GGy41OQapxTR+M3P8fGKJhV/Lyf8y4lz+8/R4HfASoiK6\nBfhDhi9EFZRgAAABvklEQVTVMETcN1aiFr87l1qMTwVYk05PQ3UPiLvwTyIu+HcQXQWXEn80zxDB\nxo9n8gN8ETiVCJIPAf+d6KY6mZG/2JzoR2NpdL78CXAzsaTCVxukGS1/ZftNwAeJ8/dJ4HeJCU6v\no/aD+DKG+zlRKX2BuP5tJgaPNPoMz2lJkiRJkiRJkiRJkiRJkiRJkiRJmqa8wVaSprkXEncwbyOm\n4H4XMZHjN9OxTSnN84m7k+8jJsDrT/kHgK8QU33fBfwb4C9Svi3A2S35FpKklngHsTZExS8Qs6tW\n5lE6gpj/6BJqE+a9kpha/nlEpbEb6E2v/TExVTjp2INERSJJmgZOIqbXvoqYPv41wN82SHcLtdYF\nxIJBryHWOfmLzPG/J1osW9NjEBcAUoeyP1Vq3sPE7KlvBf4H0cU0mtFmBD5Yt//29L5SR3NqdKl5\nxxILVv0fYqbWJcSKhv82vX4k0T11D7Vup1cQU3nvYGRFshF4f2Z/MVKHsqUhNe81xNrpzwFPEwtc\nHUasS/IC4KfAm4F1wHoiEH6I6JZ6hpHTbn8MWJPSHQb8IwbDJUmSJEmSJEmSJEmSJEmSJEmSJEmS\nBPCvjMC6bD6xSh4AAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1108,7 +1109,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 27, @@ -1117,9 +1118,9 @@ }, { "data": { - "image/png": "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\nEvx/rHWCrxSlro8AAAAASUVORK5CYII=\n", + "image/png": "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\nefX/AdmeWI23zkQnAAAAAElFTkSuQmCC\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1129,7 +1130,7 @@ "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", + "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", @@ -1200,14 +1201,6 @@ " mean\n", " std. dev.\n", " \n", - " \n", - " bin\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", @@ -1215,170 +1208,169 @@ " 10000\n", " U-235\n", " scatter-Y0,0\n", - " 0.036453\n", - " 0.001219\n", + " 0.038330\n", + " 0.001119\n", " \n", " \n", " 1\n", " 10000\n", " U-235\n", " scatter-Y1,-1\n", - " 0.000302\n", - " 0.000314\n", + " 0.000008\n", + " 0.000341\n", " \n", " \n", " 2\n", " 10000\n", " U-235\n", " scatter-Y1,0\n", - " -0.000006\n", - " 0.000347\n", + " -0.000342\n", + " 0.000342\n", " \n", " \n", " 3\n", " 10000\n", " U-235\n", " scatter-Y1,1\n", - " 0.000244\n", - " 0.000286\n", + " 0.000201\n", + " 0.000262\n", " \n", " \n", " 4\n", " 10000\n", " U-235\n", " scatter-Y2,-2\n", - " 0.000184\n", - " 0.000211\n", + " 0.000136\n", + " 0.000152\n", " \n", " \n", " 5\n", " 10000\n", " U-235\n", " scatter-Y2,-1\n", - " 0.000067\n", - " 0.000173\n", + " 0.000042\n", + " 0.000131\n", " \n", " \n", " 6\n", " 10000\n", " U-235\n", " scatter-Y2,0\n", - " 0.000353\n", - " 0.000210\n", + " 0.000303\n", + " 0.000185\n", " \n", " \n", " 7\n", " 10000\n", " U-235\n", " scatter-Y2,1\n", - " -0.000266\n", - " 0.000263\n", + " -0.000407\n", + " 0.000184\n", " \n", " \n", " 8\n", " 10000\n", " U-235\n", " scatter-Y2,2\n", - " -0.000246\n", - " 0.000153\n", + " -0.000145\n", + " 0.000120\n", " \n", " \n", " 9\n", " 10000\n", " U-238\n", " scatter-Y0,0\n", - " 2.315893\n", - " 0.008243\n", + " 2.319322\n", + " 0.006166\n", " \n", " \n", " 10\n", " 10000\n", " U-238\n", " scatter-Y1,-1\n", - " -0.022028\n", - " 0.002316\n", + " -0.023638\n", + " 0.001940\n", " \n", " \n", " 11\n", " 10000\n", " U-238\n", " scatter-Y1,0\n", - " -0.003426\n", - " 0.002651\n", + " -0.003463\n", + " 0.001892\n", " \n", " \n", " 12\n", " 10000\n", " U-238\n", " scatter-Y1,1\n", - " 0.026620\n", - " 0.002084\n", + " 0.025099\n", + " 0.002270\n", " \n", " \n", " 13\n", " 10000\n", " U-238\n", " scatter-Y2,-2\n", - " -0.001295\n", - " 0.001627\n", + " -0.000617\n", + " 0.001197\n", " \n", " \n", " 14\n", " 10000\n", " U-238\n", " scatter-Y2,-1\n", - " 0.000759\n", - " 0.001426\n", + " 0.002549\n", + " 0.001187\n", " \n", " \n", " 15\n", " 10000\n", " U-238\n", " scatter-Y2,0\n", - " 0.005513\n", - " 0.001983\n", + " 0.007121\n", + " 0.001646\n", " \n", " \n", " 16\n", " 10000\n", " U-238\n", " scatter-Y2,1\n", - " 0.000431\n", - " 0.001862\n", + " -0.000058\n", + " 0.001323\n", " \n", " \n", " 17\n", " 10000\n", " U-238\n", " scatter-Y2,2\n", - " -0.001962\n", - " 0.001222\n", + " -0.002235\n", + " 0.000867\n", " \n", " \n", "\n", "" ], "text/plain": [ - " cell nuclide score mean std. dev.\n", - "bin \n", - "0 10000 U-235 scatter-Y0,0 0.036453 0.001219\n", - "1 10000 U-235 scatter-Y1,-1 0.000302 0.000314\n", - "2 10000 U-235 scatter-Y1,0 -0.000006 0.000347\n", - "3 10000 U-235 scatter-Y1,1 0.000244 0.000286\n", - "4 10000 U-235 scatter-Y2,-2 0.000184 0.000211\n", - "5 10000 U-235 scatter-Y2,-1 0.000067 0.000173\n", - "6 10000 U-235 scatter-Y2,0 0.000353 0.000210\n", - "7 10000 U-235 scatter-Y2,1 -0.000266 0.000263\n", - "8 10000 U-235 scatter-Y2,2 -0.000246 0.000153\n", - "9 10000 U-238 scatter-Y0,0 2.315893 0.008243\n", - "10 10000 U-238 scatter-Y1,-1 -0.022028 0.002316\n", - "11 10000 U-238 scatter-Y1,0 -0.003426 0.002651\n", - "12 10000 U-238 scatter-Y1,1 0.026620 0.002084\n", - "13 10000 U-238 scatter-Y2,-2 -0.001295 0.001627\n", - "14 10000 U-238 scatter-Y2,-1 0.000759 0.001426\n", - "15 10000 U-238 scatter-Y2,0 0.005513 0.001983\n", - "16 10000 U-238 scatter-Y2,1 0.000431 0.001862\n", - "17 10000 U-238 scatter-Y2,2 -0.001962 0.001222" + " 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, @@ -1412,8 +1404,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.00122163 0.00824348]\n", - " [ 0.00015287 0.00121882]]]\n" + "[[[ 0.00086668 0.0061658 ]\n", + " [ 0.00011981 0.00111862]]]\n" ] } ], @@ -1481,25 +1473,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.0400168 ]]\n", - "\n", - " [[ 0.05233031]]\n", - "\n", - " [[ 0.03819276]]\n", - "\n", - " [[ 0.02900783]]\n", - "\n", - " [[ 0.03176394]]\n", - "\n", - " [[ 0.03046477]]\n", - "\n", - " [[ 0.03864163]]\n", - "\n", - " [[ 0.02455132]]\n", - "\n", - " [[ 0.02282716]]\n", - "\n", - " [[ 0.02162945]]]\n" + "[[[ 0.03658762]]]\n" ] } ], @@ -1507,7 +1481,7 @@ "# 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=[range(10)], value='rel_err')\n", + " filter_bins=[(i,) for i in range(10)], value='rel_err')\n", "print(data)" ] }, @@ -1538,154 +1512,147 @@ " mean\n", " std. dev.\n", " \n", - " \n", - " bin\n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " 558\n", " 279\n", " absorption\n", - " 0.000085\n", + " 0.000081\n", " 0.000008\n", " \n", " \n", " 559\n", " 279\n", " scatter\n", - " 0.013429\n", - " 0.000449\n", + " 0.013109\n", + " 0.000358\n", " \n", " \n", " 560\n", " 280\n", " absorption\n", - " 0.000095\n", - " 0.000014\n", + " 0.000088\n", + " 0.000010\n", " \n", " \n", " 561\n", " 280\n", " scatter\n", - " 0.014770\n", - " 0.000783\n", + " 0.014395\n", + " 0.000586\n", " \n", " \n", " 562\n", " 281\n", " absorption\n", - " 0.000107\n", - " 0.000013\n", + " 0.000097\n", + " 0.000010\n", " \n", " \n", " 563\n", " 281\n", " scatter\n", - " 0.015044\n", - " 0.000605\n", + " 0.014637\n", + " 0.000427\n", " \n", " \n", " 564\n", " 282\n", " absorption\n", - " 0.000110\n", - " 0.000010\n", + " 0.000107\n", + " 0.000009\n", " \n", " \n", " 565\n", " 282\n", " scatter\n", - " 0.016090\n", - " 0.000795\n", + " 0.015683\n", + " 0.000552\n", " \n", " \n", " 566\n", " 283\n", " absorption\n", - " 0.000121\n", - " 0.000012\n", + " 0.000110\n", + " 0.000009\n", " \n", " \n", " 567\n", " 283\n", " scatter\n", - " 0.017010\n", - " 0.000793\n", + " 0.016293\n", + " 0.000627\n", " \n", " \n", " 568\n", " 284\n", " absorption\n", - " 0.000110\n", + " 0.000111\n", " 0.000007\n", " \n", " \n", " 569\n", " 284\n", " scatter\n", - " 0.017010\n", - " 0.000430\n", + " 0.017032\n", + " 0.000445\n", " \n", " \n", " 570\n", " 285\n", " absorption\n", " 0.000112\n", - " 0.000007\n", + " 0.000006\n", " \n", " \n", " 571\n", " 285\n", " scatter\n", - " 0.017499\n", - " 0.000615\n", + " 0.017666\n", + " 0.000425\n", " \n", " \n", " 572\n", " 286\n", " absorption\n", - " 0.000127\n", - " 0.000016\n", + " 0.000123\n", + " 0.000011\n", " \n", " \n", " 573\n", " 286\n", " scatter\n", - " 0.017716\n", - " 0.000690\n", + " 0.017706\n", + " 0.000597\n", " \n", " \n", " 574\n", " 287\n", " absorption\n", - " 0.000119\n", - " 0.000013\n", + " 0.000108\n", + " 0.000011\n", " \n", " \n", " 575\n", " 287\n", " scatter\n", - " 0.018041\n", - " 0.000702\n", + " 0.017339\n", + " 0.000664\n", " \n", " \n", " 576\n", " 288\n", " absorption\n", - " 0.000125\n", - " 0.000013\n", + " 0.000129\n", + " 0.000011\n", " \n", " \n", " 577\n", " 288\n", " scatter\n", - " 0.018212\n", - " 0.000715\n", + " 0.018452\n", + " 0.000523\n", " \n", " \n", "\n", @@ -1693,27 +1660,26 @@ ], "text/plain": [ " distribcell score mean std. dev.\n", - "bin \n", - "558 279 absorption 0.000085 0.000008\n", - "559 279 scatter 0.013429 0.000449\n", - "560 280 absorption 0.000095 0.000014\n", - "561 280 scatter 0.014770 0.000783\n", - "562 281 absorption 0.000107 0.000013\n", - "563 281 scatter 0.015044 0.000605\n", - "564 282 absorption 0.000110 0.000010\n", - "565 282 scatter 0.016090 0.000795\n", - "566 283 absorption 0.000121 0.000012\n", - "567 283 scatter 0.017010 0.000793\n", - "568 284 absorption 0.000110 0.000007\n", - "569 284 scatter 0.017010 0.000430\n", - "570 285 absorption 0.000112 0.000007\n", - "571 285 scatter 0.017499 0.000615\n", - "572 286 absorption 0.000127 0.000016\n", - "573 286 scatter 0.017716 0.000690\n", - "574 287 absorption 0.000119 0.000013\n", - "575 287 scatter 0.018041 0.000702\n", - "576 288 absorption 0.000125 0.000013\n", - "577 288 scatter 0.018212 0.000715" + "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, @@ -1786,21 +1752,6 @@ " \n", " \n", " \n", - " \n", - " bin\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", @@ -1815,8 +1766,8 @@ " 10000\n", " 0\n", " absorption\n", - " 0.000136\n", - " 0.000017\n", + " 0.000131\n", + " 0.000014\n", " \n", " \n", " 1\n", @@ -1830,8 +1781,8 @@ " 10000\n", " 0\n", " scatter\n", - " 0.018504\n", - " 0.000740\n", + " 0.018582\n", + " 0.000680\n", " \n", " \n", " 2\n", @@ -1845,8 +1796,8 @@ " 10000\n", " 1\n", " absorption\n", - " 0.000231\n", - " 0.000031\n", + " 0.000220\n", + " 0.000023\n", " \n", " \n", " 3\n", @@ -1860,8 +1811,8 @@ " 10000\n", " 1\n", " scatter\n", - " 0.029149\n", - " 0.001525\n", + " 0.028711\n", + " 0.001186\n", " \n", " \n", " 4\n", @@ -1875,8 +1826,8 @@ " 10000\n", " 2\n", " absorption\n", - " 0.000306\n", - " 0.000032\n", + " 0.000295\n", + " 0.000022\n", " \n", " \n", " 5\n", @@ -1890,8 +1841,8 @@ " 10000\n", " 2\n", " scatter\n", - " 0.039770\n", - " 0.001519\n", + " 0.038782\n", + " 0.001084\n", " \n", " \n", " 6\n", @@ -1905,8 +1856,8 @@ " 10000\n", " 3\n", " absorption\n", - " 0.000339\n", - " 0.000028\n", + " 0.000331\n", + " 0.000022\n", " \n", " \n", " 7\n", @@ -1920,8 +1871,8 @@ " 10000\n", " 3\n", " scatter\n", - " 0.046708\n", - " 0.001355\n", + " 0.045772\n", + " 0.001084\n", " \n", " \n", " 8\n", @@ -1935,8 +1886,8 @@ " 10000\n", " 4\n", " absorption\n", - " 0.000433\n", - " 0.000031\n", + " 0.000419\n", + " 0.000026\n", " \n", " \n", " 9\n", @@ -1950,8 +1901,8 @@ " 10000\n", " 4\n", " scatter\n", - " 0.056359\n", - " 0.001790\n", + " 0.055975\n", + " 0.001344\n", " \n", " \n", " 10\n", @@ -1965,8 +1916,8 @@ " 10000\n", " 5\n", " absorption\n", - " 0.000538\n", - " 0.000028\n", + " 0.000514\n", + " 0.000024\n", " \n", " \n", " 11\n", @@ -1980,8 +1931,8 @@ " 10000\n", " 5\n", " scatter\n", - " 0.064943\n", - " 0.001978\n", + " 0.063289\n", + " 0.001605\n", " \n", " \n", " 12\n", @@ -1995,8 +1946,8 @@ " 10000\n", " 6\n", " absorption\n", - " 0.000588\n", - " 0.000028\n", + " 0.000591\n", + " 0.000027\n", " \n", " \n", " 13\n", @@ -2010,8 +1961,8 @@ " 10000\n", " 6\n", " scatter\n", - " 0.070231\n", - " 0.002714\n", + " 0.071011\n", + " 0.002058\n", " \n", " \n", " 14\n", @@ -2025,8 +1976,8 @@ " 10000\n", " 7\n", " absorption\n", - " 0.000670\n", - " 0.000041\n", + " 0.000671\n", + " 0.000036\n", " \n", " \n", " 15\n", @@ -2040,8 +1991,8 @@ " 10000\n", " 7\n", " scatter\n", - " 0.075852\n", - " 0.001862\n", + " 0.077891\n", + " 0.001952\n", " \n", " \n", " 16\n", @@ -2055,8 +2006,8 @@ " 10000\n", " 8\n", " absorption\n", - " 0.000745\n", - " 0.000039\n", + " 0.000721\n", + " 0.000031\n", " \n", " \n", " 17\n", @@ -2070,8 +2021,8 @@ " 10000\n", " 8\n", " scatter\n", - " 0.086234\n", - " 0.001968\n", + " 0.086393\n", + " 0.001722\n", " \n", " \n", " 18\n", @@ -2085,8 +2036,8 @@ " 10000\n", " 9\n", " absorption\n", - " 0.000731\n", - " 0.000039\n", + " 0.000748\n", + " 0.000033\n", " \n", " \n", " 19\n", @@ -2100,63 +2051,61 @@ " 10000\n", " 9\n", " scatter\n", - " 0.090448\n", - " 0.001956\n", + " 0.090861\n", + " 0.001669\n", " \n", " \n", "\n", "" ], "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", - "bin \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", + " 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", - "bin \n", - "0 0.000136 0.000017 \n", - "1 0.018504 0.000740 \n", - "2 0.000231 0.000031 \n", - "3 0.029149 0.001525 \n", - "4 0.000306 0.000032 \n", - "5 0.039770 0.001519 \n", - "6 0.000339 0.000028 \n", - "7 0.046708 0.001355 \n", - "8 0.000433 0.000031 \n", - "9 0.056359 0.001790 \n", - "10 0.000538 0.000028 \n", - "11 0.064943 0.001978 \n", - "12 0.000588 0.000028 \n", - "13 0.070231 0.002714 \n", - "14 0.000670 0.000041 \n", - "15 0.075852 0.001862 \n", - "16 0.000745 0.000039 \n", - "17 0.086234 0.001968 \n", - "18 0.000731 0.000039 \n", - "19 0.090448 0.001956 " + " 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, @@ -2209,38 +2158,38 @@ " \n", " \n", " mean\n", - " 0.000416\n", - " 0.000025\n", + " 0.000417\n", + " 0.000020\n", " \n", " \n", " std\n", " 0.000238\n", - " 0.000011\n", + " 0.000008\n", " \n", " \n", " min\n", - " 0.000023\n", - " 0.000004\n", + " 0.000020\n", + " 0.000003\n", " \n", " \n", " 25%\n", - " 0.000206\n", - " 0.000017\n", + " 0.000214\n", + " 0.000014\n", " \n", " \n", " 50%\n", - " 0.000391\n", - " 0.000024\n", + " 0.000394\n", + " 0.000019\n", " \n", " \n", " 75%\n", - " 0.000626\n", - " 0.000031\n", + " 0.000627\n", + " 0.000025\n", " \n", " \n", " max\n", - " 0.000928\n", - " 0.000061\n", + " 0.000915\n", + " 0.000049\n", " \n", " \n", "\n", @@ -2251,13 +2200,13 @@ " \n", " \n", "count 289.000000 289.000000\n", - "mean 0.000416 0.000025\n", - "std 0.000238 0.000011\n", - "min 0.000023 0.000004\n", - "25% 0.000206 0.000017\n", - "50% 0.000391 0.000024\n", - "75% 0.000626 0.000031\n", - "max 0.000928 0.000061" + "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, @@ -2292,7 +2241,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Mann-Whitney Test p-value: 0.474494586047\n" + "Mann-Whitney Test p-value: 0.498462484897\n" ] } ], @@ -2330,7 +2279,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Mann-Whitney Test p-value: 1.364780046e-41\n" + "Mann-Whitney Test p-value: 1.61253828675e-41\n" ] } ], @@ -2376,7 +2325,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 38, @@ -2385,9 +2334,9 @@ }, { "data": { - "image/png": "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\n", + "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": [ - "" + "" ] }, "metadata": {}, @@ -2414,7 +2363,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 39, @@ -2423,9 +2372,9 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2458,7 +2407,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.9" + "version": "2.7.6" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/post-processing.ipynb b/docs/source/pythonapi/examples/post-processing.ipynb index 1bd7ee49a..de6234a72 100644 --- a/docs/source/pythonapi/examples/post-processing.ipynb +++ b/docs/source/pythonapi/examples/post-processing.ipynb @@ -326,7 +326,18 @@ "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Run openmc in plotting mode\n", "executor = openmc.Executor()\n", @@ -342,7 +353,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB98JEwAiCb5uYN4AAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDktMThUMjE6MTc6\nMDErMDc6MDA/DItCAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTA5LTE4VDIxOjE3OjAxKzA3OjAw\nTlEz/gAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAALKSURB\nVGje7dpLcqQwDAbgHHE2YeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmN\nP+HDhw8fPnz48Kf6VH9G+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4\nzPji99z0/AJ4n1lfvJ6fnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6\npA0wfln+ho/fwgYYn19C/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tN\nDbSGz7T0SBEWw4vLXzbQ6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X5\n8wZaxWd1+fMGiuFvir8bvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV\n873hB8UnM3xzANtf8nb4dwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7\nT/ppARBvp48UwJnelT5SACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4/\n/Jve+fhsH6Ctv7n8PTzjvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V\n32/o9+fl389Xnx+g5x/o+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6\n/4Le/6D3T/D9V67Y/ZsVQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/\ngPs/0P4TtP8F7r9J3AIO9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTu\nf4X7b+H+X7T/+BPuf3aM8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIw\nMTUtMTAtMDNUMTE6MTc6MDItMDQ6MDDQML6SAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTEwLTAz\nVDExOjE3OjAyLTA0OjAwoW0GLgAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -376,8 +387,7 @@ "outputs": [], "source": [ "# Instantiate an empty TalliesFile\n", - "tallies_file = openmc.TalliesFile()\n", - "tallies_file.tallies = []" + "tallies_file = openmc.TalliesFile()" ] }, { @@ -454,9 +464,9 @@ " 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: 3df61825cc8c93656ed1458c34fca14000884e73\n", - " Date/Time: 2015-09-19 07:34:09\n", - " OpenMP Threads: 4\n", + " Git SHA1: e0c2aace2e73367536fa03e153b67a2d038cd2b3\n", + " Date/Time: 2015-10-03 11:17:02\n", + " MPI Processes: 1\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -591,20 +601,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.6600E-01 seconds\n", - " Reading cross sections = 1.1500E-01 seconds\n", - " Total time in simulation = 8.1308E+01 seconds\n", - " Time in transport only = 8.1157E+01 seconds\n", - " Time in inactive batches = 2.1600E+00 seconds\n", - " Time in active batches = 7.9148E+01 seconds\n", - " Time synchronizing fission bank = 1.6000E-02 seconds\n", - " Sampling source sites = 9.0000E-03 seconds\n", - " SEND/RECV source sites = 7.0000E-03 seconds\n", - " Time accumulating tallies = 1.0000E-02 seconds\n", - " Total time for finalization = 1.6400E-01 seconds\n", - " Total time elapsed = 8.1856E+01 seconds\n", - " Calculation Rate (inactive) = 23148.1 neutrons/second\n", - " Calculation Rate (active) = 5685.55 neutrons/second\n", + " Total time for initialization = 5.2900E-01 seconds\n", + " Reading cross sections = 9.6000E-02 seconds\n", + " Total time in simulation = 3.1874E+02 seconds\n", + " Time in transport only = 3.1866E+02 seconds\n", + " Time in inactive batches = 1.3286E+01 seconds\n", + " Time in active batches = 3.0545E+02 seconds\n", + " Time synchronizing fission bank = 1.1000E-02 seconds\n", + " Sampling source sites = 7.0000E-03 seconds\n", + " SEND/RECV source sites = 3.0000E-03 seconds\n", + " Time accumulating tallies = 2.2000E-02 seconds\n", + " Total time for finalization = 1.7800E-01 seconds\n", + " Total time elapsed = 3.1947E+02 seconds\n", + " Calculation Rate (inactive) = 3763.36 neutrons/second\n", + " Calculation Rate (active) = 1473.24 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -682,8 +692,8 @@ "\tName =\t\n", "\tFilters =\t\n", " \t\tmesh\t[10000]\n", - "\tNuclides =\t-1 \n", - "\tScores =\t['flux', 'fission']\n", + "\tNuclides =\ttotal \n", + "\tScores =\t[u'flux', u'fission']\n", "\tEstimator =\ttracklength\n", "\n" ] @@ -817,8 +827,8 @@ "\tName =\t\n", "\tFilters =\t\n", " \t\tmesh\t[10000]\n", - "\tNuclides =\t-1 \n", - "\tScores =\t['flux']\n", + "\tNuclides =\ttotal \n", + "\tScores =\t[u'flux']\n", "\tEstimator =\ttracklength\n", "\n" ] @@ -861,7 +871,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 24, @@ -870,9 +880,9 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\ncPmIaKHPh5wAAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -902,9 +912,9 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAEACAYAAACznAEdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAFPNJREFUeJzt3XuMHVd9wPHvxhsXAl7sbYrjRyIbx65xHyJIMaiFMrTB\nNWnwuiA5Rmq1gKmqWg3pk9hBrbeqKE4qCq1QKrU8ukTYrQut5VTU2EkzfUitXSAOSZatH22ADXhD\ncIi3hRYbb/84Z72zd+/uzt29M/fu7PcjXd25M2dmzvHcvT+fc+bMAUmSJEmSJEmSJEmSJEmSJKkp\n7gaeAJ6MywDdwHHgNHAMWJpJvxc4AwwCW8rLpiSpSD9KCAYvAhYRgsA64H7gvTHNPcD+uLwJOAVc\nC6wBzgLXlJddSdJszfRjvRE4Afwv8H3gH4G3AduA/pimH9gel3uAg8Al4GlCQNjc1BxLkgoxU0B4\nEng9oYnoOuB2YDWwHBiOaYbjZ4CVwFBm/yFgVbMyK0kqTucM2weB+wj9BP9DaA76fk2a0fiaynTb\nJEltYqaAAPDx+AJ4P+F//cPADcB5YAXwbNz+DHBjZt/Vcd0E69atGz137twssyxJC9Y54OaiDp6n\nw/fl8f0m4K3AAeAI0BvX9wKH4/IRYCewGFgLrAdO1h7w3LlzjI6OVva1b9++lufB8lm+hVa2hVA+\nwk09hclTQ/g08IOEjuLdwAuEu4oOAbsIncc7YtqBuH4AuBzT22QkSfNAnoDwU3XWXQBumyL9H8SX\nJGkecYxAAZIkaXUWCmX55q8qlw2qX76idbTovKOxPUySlFNHRwcU+LttDUGSBBgQJEmRAUGSBBgQ\nJEmRAUGSBBgQJEmRAUGSBBgQJEmRAUGSBBgQJEmRAUGSBBgQJEmRAUGSBBgQJElRnoCwF3gKeIIw\nfeYPAN3AceA0cAxYWpP+DDAIbGlmZtV+urq66ejomPTq6upuddYkNWim52qvAf4BeCXwf8BfAZ8F\nfgR4DrgfuAdYBuwBNhGCxq3AKuBhYANwpea4zodQEeH57PWuZQf1rnFXVzcjI89PWr9kyTIuXrzQ\n/AxKFdLq+RAuEuZSvo4w3eZ1wNeBbUB/TNMPbI/LPcDBuM/TwFlgc1NzrHktBIPRSa96QUJSuWYK\nCBeADwJfJQSCbxOaipYDwzHNcPwMsBIYyuw/RKgpSJLaXOcM29cBv0ZoOnoB+GvgF2rSjP03byp1\nt/X19V1dTpLEuVAlqUaapqRpWtr5ZmqLuhN4E/Du+PkXgdcCPw28ETgPrAAeBTYS+hEA9sf3o8A+\n4ETNce1DqIhG+xAaTS9pXKv7EAYJAeDFMRO3AQPAQ0BvTNMLHI7LR4CdwGJgLbAeONncLGt+6Kx7\n95Gk9jVTk9HjwCeBzxPuFPoi8GfAEuAQsIvQebwjph+I6weAy8Bupm9OUmVdZqqagKT21Kq/TpuM\nKmK6JqBG1/udkKbX6iYjSdICYUCQJAEGBElSZECQJAEGBElSZECQJAEGBDWg3qOuJVWH4xCUW/0x\nB45DkMriOARJUikMCJIkwICgtlH/YXhOxSmVxz4E5VZ0H4J9C9L07EOQJJXCgCBJAgwIkqTIgCBJ\nAvIFhB8GHsu8XgDeA3QDx4HTwDFgaWafvcAZwhScW5qYX0lSQRrtrb4GeAbYDNwFPAfcD9wDLAP2\nAJuAA8CtwCrgYWADYQrOMd5lNA95l5HUWu12l9FtwFnga8A2oD+u7we2x+Ue4CBwiTDf8llCAJEk\ntbFGA8JOwo89wHJgOC4Px88AK4GhzD5DhJqCJKmNdTaQdjHwFkLzUK1R6tf3s9sn6Ovru7qcJAlJ\nkjSQFUmqvjRNSdO0tPM10hbVA/wKsDV+HgQS4DywAngU2EjoRwDYH9+PAvuAE5lj2YcwD9mHILVW\nO/UhvJ3x5iKAI0BvXO4FDmfW7yTUKNYC64GTc8umFq7Jzzjy+UZSMfJGmpcAXyH8wI/Edd3AIeAm\nQufxDuDbcdu9wLuAy8DdwOdqjmcNYR5qVQ2h3jn9/mghKrqG4MPtlJsBQWqtdmoykiRVmAFBkgQY\nECRJkQFBk3R1ddedvUxStdmprEnqdx7DVB28dipL5bBTWZJUCgOCJAkwIEiSIgOCJAkwIEiSIgOC\nJAkwIEiSIgOCJAkwIEiSIgOCJAkwIGhemjyLmjOpSXOXNyAsBT4NfBkYAF5DmDHtOHAaOBbTjNkL\nnCHMu7ylWZmVgsuE5xtNfI2MPN/SXEnzXd6A8MfAZ4FXAj9O+KHfQwgIG4BH4meATcCd8X0r8EAD\n55EktUieH+qXAa8HPh4/XwZeALYB/XFdP7A9LvcAB4FLhLmWzwKbm5NdSVJR8gSEtcA3gU8AXwT+\nHHgJsBwYjmmG42eAlcBQZv8hYFUzMitJKk5nzjSvBn4V+Hfgw4w3D40Za8idyqRtfX19V5eTJCFJ\nkhxZkaSFI01T0jQt7Xx5Jlq4AfhXQk0B4HWETuNXAG8EzgMrgEeBjYwHi/3x/SiwDziROaYT5LSx\n+TBBzlRp/V6pytphgpzzwNcInccAtwFPAQ8BvXFdL3A4Lh8BdgKLCUFkPXCySfmVJBUkT5MRwF3A\npwg/8ueAdwKLgEPALkLn8Y6YdiCuHyB0QO9m+uYkSVIbcE5lTWKTkdSe2qHJSJK0ABgQFrCuru66\nj4CQtDDZZLSANdY0NNV6m4yksthkJEkqhQFBkgQYECRJkQFBkgQYECRJkQFBkgQYECRJkQFBkgQY\nECRJkQFBkgQYECRJkQFBkgTkDwhPA18CHmN89rNu4DhwGjgGLM2k3wucAQaBLc3IqCSpWHkDwiiQ\nALcAm+O6PYSAsAF4hPG5lDcBd8b3rcADDZxHktQijfxQ1z5ydRvQH5f7ge1xuQc4CFwi1CzOMh5E\nJEltqpEawsPA54FfiuuWA8NxeTh+BlgJDGX2HQJWzS2bkqSideZM95PAN4AfIjQTDdZsH6X+jCXZ\n7ZKkNpY3IHwjvn8T+FtCE9AwcANwHlgBPBvTPAPcmNl3dVw3QV9f39XlJElIkiR/riVpAUjTlDRN\nSztfnqnYrgMWASPASwh3FP0ecBvwLeA+Qofy0vi+CThACBqrCE1NNzOxluAUmm3AKTSl+aXoKTTz\n1BCWE2oFY+k/RQgKnwcOAbsIncc7YpqBuH4AuAzsxiYjlaJz7A9mgiVLlnHx4oUW5EeaXwqLNDOw\nhtAGqlhDsOagKiu6huD4AEkSYECQJEUGBEkSYECQJEUGBEkSYECQJEUGBEkSYECQJEUGBEkSYECQ\nJEUGBEkSYECQJEUGBEkSYECQJEUGBEkSYEBYELq6uuno6Jj0kqSsvAFhEfAY8FD83A0cB04TZk9b\nmkm7FzgDDAJbmpNNzcXIyPOEiWNqX5I0Lm9AuJswJebYr8geQkDYADwSP0OYT/nO+L4VeKCBc0iS\nWijPj/Vq4Hbgo4xP3bYN6I/L/cD2uNwDHAQuEeZZPgtsblJeJUkFyhMQPgT8NnAls245MByXh+Nn\ngJXAUCbdELBqjnmUJJVgpoBwB/Asof9gql7ImRqkbayWpHmgc4btP0FoHrodeBHQBTxIqBXcAJwH\nVhCCBsAzwI2Z/VfHdZP09fVdXU6ShCRJGs27JFVamqakaVra+Rq59/ANwG8BbwHuB74F3EfoUF4a\n3zcBBwj9BquAh4GbmVxLGB0dteJQlnCLab1/72asL/LYzTun3zdVQbxdvLB7xmeqIdQa+6vaDxwC\ndhE6j3fE9QNx/QBwGdiNTUZquc664y6WLFnGxYsXWpAfqT21anSSNYQSWUOw5qBqKLqG4BgBSRJg\nQJAkRQYESRJgQJAkRQYESRJgQJAkRQYESRJgQJAkRQaEiqk3O5ok5eFI5YqpPyp5fowadqSyND1H\nKkuSSmFAkCQBBgRJUmRAkCQBBgRJUmRAkCQBMweEFwEngFOEWdA+ENd3A8eB08AxwhSaY/YCZ4BB\nYEszMytJKk6e+1mvA75DmG7zXwjzKm8DniPMrXwPsIyJcyrfyvicyhuAKzXHdBxCQRyH4DgEVVc7\njEP4TnxfDCwCnicEhP64vh/YHpd7gIPAJcJcy2eBzU3KqySpQHkCwjWEJqNh4FHgKWB5/Ex8Xx6X\nVwJDmX2HCDUFSVKb68yR5grwKuBlwOeAN9ZsH6V+fTy7fZK+vr6ry0mSkCRJjqxI0sKRpilpmpZ2\nvkbbon4H+C7wbiABzgMrCDWHjYR+BID98f0osI/QMZ1lH0JB7EOwD0HV1eo+hOsZv4PoxcCbgMeA\nI0BvXN8LHI7LR4CdhP6GtcB64GQT8ytJKshMTUYrCJ3G18TXg8AjhKBwCNhF6DzeEdMPxPUDwGVg\nN9M3J0kt1Dnp8eBLlizj4sULLcqP1Fo+/rpibDKa+7H9bqpdtbrJSJK0QBgQJEmAAUGSFBkQJEmA\nAUGSFBkQJEmAAUGSFBkQJEmAAWHe6urqpqOjY9JLkmbLkcrzVP0RydCKkb2OVJbK4UhlSVIpDAiS\nJMCAIEmKDAiSJMCAINXorHv3VldXd6szJhUuz5zK0gJymXp3JI2MeEuvqi9PDeFGwpzJTwFPAu+J\n67uB48Bp4BjjU20C7AXOAIPAlmZlVpJUnDz/7bkhvk4BLwW+AGwH3gk8B9wP3AMsA/YAm4ADwK3A\nKuBhYANwJXNMxyHMkeMQyj+231m1WjuMQzhPCAYA/w18mfBDv40w3zLxfXtc7gEOApcI8y2fBTY3\nJ7uSpKI02qm8BrgFOAEsB4bj+uH4GWAlMJTZZ4gQQCRJbayRTuWXAp8B7gZGaraNUr+end0+QV9f\n39XlJElIkqSBrEhS9aVpSpqmpZ0vb1vUtcDfAX8PfDiuGwQSQpPSCkLH80ZCPwLA/vh+FNhHqFWM\nsQ9hjuxDsA9BC0879CF0AB8DBhgPBgBHgN643AsczqzfCSwG1gLrgZPNyKwkqTh5Is3rgH8CvsT4\nf532En7kDwE3ETqPdwDfjtvvBd5FuKn7buBzNce0hjBH1hCsIWjhKbqG4OOv5ykDggFBC087NBlJ\nkhYAA0Kbc2Y0SWXxWUZtbmTkeaZu7pCk5rGGIEkCDAiSpMiAIEkCDAhSTk6co+qzU1nKxYlzVH3W\nECRJgAFBmiObklQdNhlJc2JTkqrDGoIkCTAgSJIiA4IkCTAgtA0fYiep1exUbhM+xE5Sq+WpIXwc\nGAaeyKzrBo4Dp4FjwNLMtr3AGcKcy1uak01JUtHyBIRPAFtr1u0hBIQNwCPxM8Am4M74vhV4IOc5\nJEktlufH+p+B52vWbQP643I/sD0u9wAHgUuEeZbPApvnnEtJUuFm+7/35YRmJOL78ri8EhjKpBsC\nVs3yHJKkEjWjU3mU+r2h2e2T9PX1XV1OkoQkSZqQFUmqjjRNSdO0tPPlvYVlDfAQ8GPx8yCQAOeB\nFcCjwEbG+xL2x/ejwD7gRM3xRkdHp4shC0+4xXSqu4zmun6+HrsV52zesf2Oq9nireiF3Xo42yaj\nI0BvXO4FDmfW7wQWA2uB9cDJuWRQklSOPE1GB4E3ANcDXwN+l1ADOATsInQe74hpB+L6AcJTv3Yz\nfXOSVFGdkwYWLlmyjIsXL7QoP9LMWjXqySajGjYZtcs5iz2233vNRbs2GUmSKsaA0AL1nlskSa3m\ns4xaoP5ziwwKklrLGoIkCTAgSJIiA4IkCTAgFMpJbzRRZ93vQ1dXd6szJgGOQyhUY2ML5u+99Y5D\nmOuxryWM45zIgWyqVfQ4BO8yklruMvUCxciItUmVyyYjSRJgQJAkRQYESRJgQJDamHclqVwGBKlt\njXU2T3yNjIwYJFQI7zKS5p3JdyV5R5KaoagawlbCNJtngHsKOkfbcACaWs/mJc1dEQFhEfARQlDY\nBLwdeGUB52kb408vHXs9SrUniktbnYGCpa3OwCzkb16qcqAoc0L6KioiIGwGzhKm1rwE/CXQU8B5\nSpe/JpCWnbWSpa3OQMHSVmegiWoDxT6mCxQdHYvndQAxIMxNEQFhFWHu5TFDcd28N7kmMPaS5pv6\nNYrwfzg7sheqIgJC4b+QV65cmeJ/Nx3cccfPN+UczmomZU0OII02R01Vw66XvpG0ap4ifuVeC/QR\n+hAA9gJXgPsyac4C6wo4tyRV2Tng5lZnohGdhEyvARYDp6h4p7IkaWpvBv6DUBPY2+K8SJIkSSpa\nnoFnfxK3Pw7ckmPfPwS+HNP/DfCyzLa9Mf0gsGXu2Z9RmeVbA3wXeCy+HmhGAWZQRPl+P6Y9BTwC\n3JjZVoXrN1X51lDu9SuibGN+k9Dfl+25rcK1G1NbvjVU42+vj3A351g53pzZVvj1W0RoClpDmOqp\nXh/B7cBn4/JrgH/Lse+bGL/raX98QRjcdiqmXxP3L/IZTGWXbw3wRPOyP6Oiyrcks/9dwEfjclWu\n31TlW0N516+oskEIcEeB/2L8B7Mq1w7ql28N1fjb2wf8Rp3zNXz9ZnNx8ww82wb0x+UTwFLghhn2\nPU6I3mP7rI7LPcDBmP7puP/mWeQ7r7LLV7aiyjeS2f+lwHNxuSrXb6rylamosgH8EfDemmNV5dpB\n/fKVrcjy1btjtOHrN5uAkGfg2VRpVubYF+BdjEfJlTHdTPs0S9nlA1hLqOqlwOtmk+kGFFm+9wNf\nBd4BfCCuq9L1GytfL+M1PCjv+hVVtp74+Us1x6rKtZuqfFCdv727CE1MHyMEEZjF9ZtNQMg78Gy2\nYxzeB3wPONCEPMxG2eX7OqE6ewuh2neAic0TzVZk+d4H3AR8AvhwE/IwG2WU7y+AD8V1ZV6/Isr2\nYuBeQrNDnv3n27WbrnxV+dv7U0JgexXwDeCDs83DbB5//QwTOwxvZGIUqpdmdUxz7Qz7voPQhvYz\nMxzrmVnkO6+yy/e9+AL4ImEMx/q4XIQiyzfmAOM1oCpdvzHZ8pV5/Yoo2zpC+/LjmfRfILRfV+Ha\nTVW+zcCzVONv79nM+o8CD01zrKZfvzwDz7IdI69lvGNkun23Ak8B19cca6xjZDEhCp6jmBHWY8ou\n3/WEDiOAVxAu8lKKU1T51mf2vwt4MC5X5fpNVb4yr19RZcuq16k8369dVrZ8VfnbW5HZ/9cZb30o\n7frVG3j2y/E15iNx++PAq2fYF8KtUV+h/i1g98b0g8DPNqsQ0yizfG8DnozrvgD8XBPLMZUiyvdp\nwh0bp4DPAC/PbKvC9ZuqfG+l3OtXRNmy/pOJt51W4dplZctX9rWDYsr3SUL/yOPAYWB5ZlvZ10+S\nJEmSJEmSJEmSJEmSJEmSJEmStJD8PzxAIwQKcNCwAAAAAElFTkSuQmCC\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1018,7 +1028,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 28, @@ -1027,9 +1037,9 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAEUCAYAAAA8+dFZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGeRJREFUeJzt3X20ZFV55/Hvz8YXUBL6Jo4O0IojELtdOgENsGJmxBdc\npFVQOhFoEpUZBY0dXyaZMK6oMOOsTHSiImHJ4BIVDQ0qEAdHEF9BaR0UQVT6grAcMrysIcRu3yAq\nL8/8UXWhKG7VrXO7zq26t7+ftWp1nX32OfXUprof9tn77JOqQpKkUT1i0gFIkpYXE4ckqREThySp\nEROHJKkRE4ckqREThySpkVYTR5LDk1yf5MYkJ82z/2lJvpHkF0n+rMmxkqTJSFv3cSRZBdwAvBC4\nDfgWcGxVzfbUeTzwZOBlwPaqes+ox0qSJqPNHsdBwE1VdXNV3QOcBxzZW6Gq7qyqq4B7mh4rSZqM\nNhPHXsAtPdu3dsvaPlaS1KI2E8eOXANzHRRJmlK7tHju24A1Pdtr6PQcxnZsEhOMJC1CVWWxx7bZ\n47gK2C/JPkkeBRwNXDSgbv8XGPnYqmr9dfLJJ7d+3EJ1B+1vUt5f1r991FFHTW1bNjl2lHq25/ja\nc9j+UdptlLKlaMsdac+l+Lu+I+3Zv72jWutxVNW9STYBlwKrgLOqajbJid39ZyZ5Ip0ZU78G3J/k\nTcC6qvr5fMe2FetCDj300NaPW6juoP1NyvvLFvu9dsSOfOaox45Sz/YcX3sO2z9KuzUpa9s0/10f\ntG8Sv83WpuMuhSS1nOOfNhs2bOCCCy6YdBgrhu05PrbleCWhpvRSlZaZtWvXTjqEFcX2HB/bcrqY\nOPSAdevWTTqEFcX2HB/bcrqYOCRJjZg4JEmNmDgkSY2YOCRJjZg4JEmNmDgkSY2YOCRJjZg4JEmN\nmDgkSY2YOCRJjZg4JK14MzOQzP+amZl0dMtPmw9ykqSpsH07DFpIO4teI3bnZY9DktSIiUOS1IiJ\nQ5LUiIlDktSIiUPSsuHsqOngrCpJy4azo6aDPQ5JUiMmDklSIyYOSVIjJg5JUiMmDklSIyYOSZqH\nU38HczquJM3Dqb+D2eOQJDVi4pAkNWLikCQ1YuKQJDVi4pAkNWLikCQ1YuKQJDVi4pAkNWLikCQ1\n0mriSHJ4kuuT3JjkpAF1TuvuvzbJAT3lb01yXZLvJdmc5NFtxipJGk1riSPJKuB04HBgHXBskrV9\n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\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1078,9 +1088,9 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1113,7 +1123,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.9" + "version": "2.7.6" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/tally-arithmetic.ipynb b/docs/source/pythonapi/examples/tally-arithmetic.ipynb index 2f32f3d9a..a0055b8b1 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -342,7 +342,18 @@ "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Run openmc in plotting mode\n", "executor = openmc.Executor()\n", @@ -358,7 +369,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB98JFQMZGiFPL70AAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDktMjFUMTA6MDg6\nNTcrMDc6MDALr51VAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTA5LTIxVDEwOjA4OjU3KzA3OjAw\nevIl6QAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAALKSURB\nVGje7dpLcqQwDAbgHHE2YeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmN\nP+HDhw8fPnz48Kf6VH9G+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4\nzPji99z0/AJ4n1lfvJ6fnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6\npA0wfln+ho/fwgYYn19C/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tN\nDbSGz7T0SBEWw4vLXzbQ6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X5\n8wZaxWd1+fMGiuFvir8bvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV\n873hB8UnM3xzANtf8nb4dwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7\nT/ppARBvp48UwJnelT5SACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4/\n/Jve+fhsH6Ctv7n8PTzjvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V\n32/o9+fl389Xnx+g5x/o+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6\n/4Le/6D3T/D9V67Y/ZsVQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/\ngPs/0P4TtP8F7r9J3AIO9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTu\nf4X7b+H+X7T/+BPuf3aM8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIw\nMTUtMTAtMDNUMTM6MDI6MDItMDQ6MDCXyx9dAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTEwLTAz\nVDEzOjAyOjAyLTA0OjAw5pan4QAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -387,13 +398,12 @@ "cell_type": "code", "execution_count": 15, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ "# Instantiate an empty TalliesFile\n", - "tallies_file = openmc.TalliesFile()\n", - "tallies_file.tallies = []" + "tallies_file = openmc.TalliesFile()" ] }, { @@ -569,8 +579,9 @@ " 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: b167d70c877c516deca785801b9fa6f53fb0985b\n", - " Date/Time: 2015-09-21 10:25:26\n", + " Git SHA1: e0c2aace2e73367536fa03e153b67a2d038cd2b3\n", + " Date/Time: 2015-10-03 13:02:02\n", + " MPI Processes: 1\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -625,20 +636,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 9.1800E-01 seconds\n", - " Reading cross sections = 6.5800E-01 seconds\n", - " Total time in simulation = 1.7037E+01 seconds\n", - " Time in transport only = 1.7024E+01 seconds\n", - " Time in inactive batches = 2.8600E+00 seconds\n", - " Time in active batches = 1.4177E+01 seconds\n", - " Time synchronizing fission bank = 4.0000E-03 seconds\n", - " Sampling source sites = 4.0000E-03 seconds\n", + " Total time for initialization = 4.1600E-01 seconds\n", + " Reading cross sections = 9.1000E-02 seconds\n", + " Total time in simulation = 1.4793E+01 seconds\n", + " Time in transport only = 1.4785E+01 seconds\n", + " Time in inactive batches = 2.1450E+00 seconds\n", + " Time in active batches = 1.2648E+01 seconds\n", + " Time synchronizing fission bank = 2.0000E-03 seconds\n", + " Sampling source sites = 2.0000E-03 seconds\n", " SEND/RECV source sites = 0.0000E+00 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 1.0000E-03 seconds\n", - " Total time elapsed = 1.7971E+01 seconds\n", - " Calculation Rate (inactive) = 4370.63 neutrons/second\n", - " Calculation Rate (active) = 2645.13 neutrons/second\n", + " Total time elapsed = 1.5219E+01 seconds\n", + " Calculation Rate (inactive) = 5827.51 neutrons/second\n", + " Calculation Rate (active) = 2964.90 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -746,13 +757,6 @@ " mean\n", " std. dev.\n", " \n", - " \n", - " bin\n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", @@ -767,9 +771,8 @@ "" ], "text/plain": [ - " nuclide score mean std. dev.\n", - "bin \n", - "0 total (nu-fission / absorption) 1.046353 0.00935" + " nuclide score mean std. dev.\n", + "0 total (nu-fission / absorption) 1.046353 0.00935" ] }, "execution_count": 26, @@ -809,22 +812,17 @@ " \n", " \n", " \n", + " energy [MeV]\n", " nuclide\n", " score\n", " mean\n", " std. dev.\n", " \n", - " \n", - " bin\n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " 0\n", + " (0.0e+00 - 6.2e-01)\n", " total\n", " absorption\n", " 0.95873\n", @@ -835,9 +833,8 @@ "" ], "text/plain": [ - " nuclide score mean std. dev.\n", - "bin \n", - "0 total absorption 0.95873 0.00774" + " energy [MeV] nuclide score mean std. dev.\n", + "0 (0.0e+00 - 6.2e-01) total absorption 0.95873 0.00774" ] }, "execution_count": 27, @@ -880,13 +877,6 @@ " mean\n", " std. dev.\n", " \n", - " \n", - " bin\n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", @@ -901,9 +891,8 @@ "" ], "text/plain": [ - " nuclide score mean std. dev.\n", - "bin \n", - "0 total nu-fission 1.091622 0.011163" + " nuclide score mean std. dev.\n", + "0 total nu-fission 1.091622 0.011163" ] }, "execution_count": 28, @@ -949,20 +938,11 @@ " mean\n", " std. dev.\n", " \n", - " \n", - " bin\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " 0\n", - " 0.0e+00 - 6.2e-01\n", + " (0.0e+00 - 6.2e-01)\n", " 10000\n", " total\n", " absorption\n", @@ -975,8 +955,7 @@ ], "text/plain": [ " energy [MeV] cell nuclide score mean std. dev.\n", - "bin \n", - "0 0.0e+00 - 6.2e-01 10000 total absorption 0.802012 0.006609" + "0 (0.0e+00 - 6.2e-01) 10000 total absorption 0.802012 0.006609" ] }, "execution_count": 29, @@ -1014,27 +993,16 @@ " \n", " \n", " energy [MeV]\n", - " cell\n", " nuclide\n", " score\n", " mean\n", " std. dev.\n", " \n", - " \n", - " bin\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " 0\n", - " 0.0e+00 - 6.2e-01\n", - " 10000\n", + " (0.0e+00 - 6.2e-01)\n", " total\n", " (nu-fission / absorption)\n", " 1.246604\n", @@ -1045,13 +1013,8 @@ "" ], "text/plain": [ - " energy [MeV] cell nuclide score mean \\\n", - "bin \n", - "0 0.0e+00 - 6.2e-01 10000 total (nu-fission / absorption) 1.246604 \n", - "\n", - " std. dev. \n", - "bin \n", - "0 0.011825 " + " energy [MeV] nuclide score mean std. dev.\n", + "0 (0.0e+00 - 6.2e-01) total (nu-fission / absorption) 1.246604 0.011825" ] }, "execution_count": 30, @@ -1087,22 +1050,17 @@ " \n", " \n", " \n", + " energy [MeV]\n", " nuclide\n", " score\n", " mean\n", " std. dev.\n", " \n", - " \n", - " bin\n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " 0\n", + " (0.0e+00 - 6.2e-01)\n", " total\n", " (((absorption * nu-fission) * absorption) * (n...\n", " 1.046353\n", @@ -1113,13 +1071,11 @@ "" ], "text/plain": [ - " nuclide score mean \\\n", - "bin \n", - "0 total (((absorption * nu-fission) * absorption) * (n... 1.046353 \n", + " energy [MeV] nuclide \\\n", + "0 (0.0e+00 - 6.2e-01) total \n", "\n", - " std. dev. \n", - "bin \n", - "0 0.01894 " + " score mean std. dev. \n", + "0 (((absorption * nu-fission) * absorption) * (n... 1.046353 0.01894 " ] }, "execution_count": 31, @@ -1179,87 +1135,78 @@ " mean\n", " std. dev.\n", " \n", - " \n", - " bin\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " 0\n", " 10000\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " (U-238 / total)\n", " (nu-fission / flux)\n", - " 0.000001\n", + " 6.641746e-07\n", " 6.859257e-09\n", " \n", " \n", " 1\n", " 10000\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " (U-238 / total)\n", " (scatter / flux)\n", - " 0.209986\n", + " 2.099861e-01\n", " 1.966887e-03\n", " \n", " \n", " 2\n", " 10000\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " (U-235 / total)\n", " (nu-fission / flux)\n", - " 0.355667\n", + " 3.556665e-01\n", " 3.717881e-03\n", " \n", " \n", " 3\n", " 10000\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " (U-235 / total)\n", " (scatter / flux)\n", - " 0.005555\n", + " 5.554650e-03\n", " 5.218094e-05\n", " \n", " \n", " 4\n", " 10000\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " (U-238 / total)\n", " (nu-fission / flux)\n", - " 0.007165\n", + " 7.165057e-03\n", " 5.625590e-05\n", " \n", " \n", " 5\n", " 10000\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " (U-238 / total)\n", " (scatter / flux)\n", - " 0.227653\n", + " 2.276535e-01\n", " 8.544314e-04\n", " \n", " \n", " 6\n", " 10000\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " (U-235 / total)\n", " (nu-fission / flux)\n", - " 0.008089\n", + " 8.089493e-03\n", " 5.080374e-05\n", " \n", " \n", " 7\n", " 10000\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " (U-235 / total)\n", " (scatter / flux)\n", - " 0.003370\n", + " 3.370111e-03\n", " 1.361116e-05\n", " \n", " \n", @@ -1267,27 +1214,25 @@ "" ], "text/plain": [ - " cell energy [MeV] nuclide score mean \\\n", - "bin \n", - "0 10000 0.0e+00 - 6.3e-07 (U-238 / total) (nu-fission / flux) 0.000001 \n", - "1 10000 0.0e+00 - 6.3e-07 (U-238 / total) (scatter / flux) 0.209986 \n", - "2 10000 0.0e+00 - 6.3e-07 (U-235 / total) (nu-fission / flux) 0.355667 \n", - "3 10000 0.0e+00 - 6.3e-07 (U-235 / total) (scatter / flux) 0.005555 \n", - "4 10000 6.3e-07 - 2.0e+01 (U-238 / total) (nu-fission / flux) 0.007165 \n", - "5 10000 6.3e-07 - 2.0e+01 (U-238 / total) (scatter / flux) 0.227653 \n", - "6 10000 6.3e-07 - 2.0e+01 (U-235 / total) (nu-fission / flux) 0.008089 \n", - "7 10000 6.3e-07 - 2.0e+01 (U-235 / total) (scatter / flux) 0.003370 \n", + " cell energy [MeV] nuclide score \\\n", + "0 10000 (0.0e+00 - 6.3e-07) (U-238 / total) (nu-fission / flux) \n", + "1 10000 (0.0e+00 - 6.3e-07) (U-238 / total) (scatter / flux) \n", + "2 10000 (0.0e+00 - 6.3e-07) (U-235 / total) (nu-fission / flux) \n", + "3 10000 (0.0e+00 - 6.3e-07) (U-235 / total) (scatter / flux) \n", + "4 10000 (6.3e-07 - 2.0e+01) (U-238 / total) (nu-fission / flux) \n", + "5 10000 (6.3e-07 - 2.0e+01) (U-238 / total) (scatter / flux) \n", + "6 10000 (6.3e-07 - 2.0e+01) (U-235 / total) (nu-fission / flux) \n", + "7 10000 (6.3e-07 - 2.0e+01) (U-235 / total) (scatter / flux) \n", "\n", - " std. dev. \n", - "bin \n", - "0 6.859257e-09 \n", - "1 1.966887e-03 \n", - "2 3.717881e-03 \n", - "3 5.218094e-05 \n", - "4 5.625590e-05 \n", - "5 8.544314e-04 \n", - "6 5.080374e-05 \n", - "7 1.361116e-05 " + " mean std. dev. \n", + "0 6.641746e-07 6.859257e-09 \n", + "1 2.099861e-01 1.966887e-03 \n", + "2 3.556665e-01 3.717881e-03 \n", + "3 5.554650e-03 5.218094e-05 \n", + "4 7.165057e-03 5.625590e-05 \n", + "5 2.276535e-01 8.544314e-04 \n", + "6 8.089493e-03 5.080374e-05 \n", + "7 3.370111e-03 1.361116e-05 " ] }, "execution_count": 33, @@ -1416,21 +1361,12 @@ " mean\n", " std. dev.\n", " \n", - " \n", - " bin\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " 0\n", " 10000\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " U-238\n", " nu-fission\n", " 0.000002\n", @@ -1439,7 +1375,7 @@ " \n", " 1\n", " 10000\n", - " 0.0e+00 - 6.3e-07\n", + " (0.0e+00 - 6.3e-07)\n", " U-235\n", " nu-fission\n", " 0.867982\n", @@ -1448,7 +1384,7 @@ " \n", " 2\n", " 10000\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " U-238\n", " nu-fission\n", " 0.082801\n", @@ -1457,7 +1393,7 @@ " \n", " 3\n", " 10000\n", - " 6.3e-07 - 2.0e+01\n", + " (6.3e-07 - 2.0e+01)\n", " U-235\n", " nu-fission\n", " 0.093484\n", @@ -1468,12 +1404,11 @@ "" ], "text/plain": [ - " cell energy [MeV] nuclide score mean std. dev.\n", - "bin \n", - "0 10000 0.0e+00 - 6.3e-07 U-238 nu-fission 0.000002 1.284890e-08\n", - "1 10000 0.0e+00 - 6.3e-07 U-235 nu-fission 0.867982 7.022256e-03\n", - "2 10000 6.3e-07 - 2.0e+01 U-238 nu-fission 0.082801 6.087096e-04\n", - "3 10000 6.3e-07 - 2.0e+01 U-235 nu-fission 0.093484 5.275039e-04" + " cell energy [MeV] nuclide score mean std. dev.\n", + "0 10000 (0.0e+00 - 6.3e-07) U-238 nu-fission 0.000002 1.284890e-08\n", + "1 10000 (0.0e+00 - 6.3e-07) U-235 nu-fission 0.867982 7.022256e-03\n", + "2 10000 (6.3e-07 - 2.0e+01) U-238 nu-fission 0.082801 6.087096e-04\n", + "3 10000 (6.3e-07 - 2.0e+01) U-235 nu-fission 0.093484 5.275039e-04" ] }, "execution_count": 37, @@ -1509,21 +1444,12 @@ " mean\n", " std. dev.\n", " \n", - " \n", - " bin\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " 0\n", " 10002\n", - " 1.0e-08 - 1.1e-07\n", + " (1.0e-08 - 1.1e-07)\n", " H-1\n", " scatter\n", " 4.620525\n", @@ -1532,7 +1458,7 @@ " \n", " 1\n", " 10002\n", - " 1.1e-07 - 1.2e-06\n", + " (1.1e-07 - 1.2e-06)\n", " H-1\n", " scatter\n", " 2.036841\n", @@ -1541,7 +1467,7 @@ " \n", " 2\n", " 10002\n", - " 1.2e-06 - 1.3e-05\n", + " (1.2e-06 - 1.3e-05)\n", " H-1\n", " scatter\n", " 1.659916\n", @@ -1550,7 +1476,7 @@ " \n", " 3\n", " 10002\n", - " 1.3e-05 - 1.4e-04\n", + " (1.3e-05 - 1.4e-04)\n", " H-1\n", " scatter\n", " 1.861546\n", @@ -1559,7 +1485,7 @@ " \n", " 4\n", " 10002\n", - " 1.4e-04 - 1.5e-03\n", + " (1.4e-04 - 1.5e-03)\n", " H-1\n", " scatter\n", " 2.049664\n", @@ -1568,7 +1494,7 @@ " \n", " 5\n", " 10002\n", - " 1.5e-03 - 1.6e-02\n", + " (1.5e-03 - 1.6e-02)\n", " H-1\n", " scatter\n", " 2.162157\n", @@ -1577,7 +1503,7 @@ " \n", " 6\n", " 10002\n", - " 1.6e-02 - 1.7e-01\n", + " (1.6e-02 - 1.7e-01)\n", " H-1\n", " scatter\n", " 2.224496\n", @@ -1586,7 +1512,7 @@ " \n", " 7\n", " 10002\n", - " 1.7e-01 - 1.9e+00\n", + " (1.7e-01 - 1.9e+00)\n", " H-1\n", " scatter\n", " 1.997585\n", @@ -1595,7 +1521,7 @@ " \n", " 8\n", " 10002\n", - " 1.9e+00 - 2.0e+01\n", + " (1.9e+00 - 2.0e+01)\n", " H-1\n", " scatter\n", " 0.373472\n", @@ -1606,17 +1532,16 @@ "" ], "text/plain": [ - " cell energy [MeV] nuclide score mean std. dev.\n", - "bin \n", - "0 10002 1.0e-08 - 1.1e-07 H-1 scatter 4.620525 0.038249\n", - "1 10002 1.1e-07 - 1.2e-06 H-1 scatter 2.036841 0.013203\n", - "2 10002 1.2e-06 - 1.3e-05 H-1 scatter 1.659916 0.010107\n", - "3 10002 1.3e-05 - 1.4e-04 H-1 scatter 1.861546 0.013328\n", - "4 10002 1.4e-04 - 1.5e-03 H-1 scatter 2.049664 0.008215\n", - "5 10002 1.5e-03 - 1.6e-02 H-1 scatter 2.162157 0.010245\n", - "6 10002 1.6e-02 - 1.7e-01 H-1 scatter 2.224496 0.013796\n", - "7 10002 1.7e-01 - 1.9e+00 H-1 scatter 1.997585 0.009161\n", - "8 10002 1.9e+00 - 2.0e+01 H-1 scatter 0.373472 0.003922" + " cell energy [MeV] nuclide score mean std. dev.\n", + "0 10002 (1.0e-08 - 1.1e-07) H-1 scatter 4.620525 0.038249\n", + "1 10002 (1.1e-07 - 1.2e-06) H-1 scatter 2.036841 0.013203\n", + "2 10002 (1.2e-06 - 1.3e-05) H-1 scatter 1.659916 0.010107\n", + "3 10002 (1.3e-05 - 1.4e-04) H-1 scatter 1.861546 0.013328\n", + "4 10002 (1.4e-04 - 1.5e-03) H-1 scatter 2.049664 0.008215\n", + "5 10002 (1.5e-03 - 1.6e-02) H-1 scatter 2.162157 0.010245\n", + "6 10002 (1.6e-02 - 1.7e-01) H-1 scatter 2.224496 0.013796\n", + "7 10002 (1.7e-01 - 1.9e+00) H-1 scatter 1.997585 0.009161\n", + "8 10002 (1.9e+00 - 2.0e+01) H-1 scatter 0.373472 0.003922" ] }, "execution_count": 38, @@ -1649,7 +1574,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.9" + "version": "2.7.6" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/index.rst b/docs/source/pythonapi/index.rst index 12baf937d..09fbb3ac9 100644 --- a/docs/source/pythonapi/index.rst +++ b/docs/source/pythonapi/index.rst @@ -65,6 +65,7 @@ on a given module or class. examples/post-processing examples/pandas-dataframes examples/tally-arithmetic + examples/multi-group-cross-sections .. _Jupyter: https://jupyter.org/ .. _NumPy: http://www.numpy.org/ diff --git a/openmc/__init__.py b/openmc/__init__.py index d966a155a..397d9f3e2 100644 --- a/openmc/__init__.py +++ b/openmc/__init__.py @@ -12,6 +12,8 @@ from openmc.trigger import * from openmc.tallies import * from openmc.cmfd import * from openmc.executor import * +from openmc.statepoint import * +from openmc.summary import * try: from openmc.opencg_compatible import * diff --git a/openmc/cross.py b/openmc/cross.py index 735bb4cd2..9b8a1d240 100644 --- a/openmc/cross.py +++ b/openmc/cross.py @@ -1,9 +1,20 @@ +import sys + from openmc import Filter, Nuclide +from openmc.filter import _FILTER_TYPES +import openmc.checkvalue as cv + + +if sys.version_info[0] >= 3: + basestring = str + +# Acceptable tally arithmetic binary operations +TALLY_ARITHMETIC_OPS = ['+', '-', '*', '/', '^'] class CrossScore(object): """A special-purpose tally score used to encapsulate all combinations of two - tally's scores as a outer product for tally arithmetic. + tally's scores as an outer product for tally arithmetic. Parameters ---------- @@ -40,6 +51,33 @@ class CrossScore(object): if binary_op is not None: self.binary_op = binary_op + def __hash__(self): + return hash(str(self)) + + def __eq__(self, other): + return str(other) == str(self) + + def __ne__(self, other): + return not self == other + + def __deepcopy__(self, memo): + existing = memo.get(id(self)) + + # If this is the first time we have tried to copy this object, create a copy + if existing is None: + clone = type(self).__new__(type(self)) + clone._left_score = self.left_score + clone._right_score = self.right_score + clone._binary_op = self.binary_op + + memo[id(self)] = clone + + return clone + + # If this object has been copied before, return the first copy made + else: + return existing + @property def left_score(self): return self._left_score @@ -54,19 +92,20 @@ class CrossScore(object): @left_score.setter def left_score(self, left_score): + cv.check_type('left_score', left_score, (basestring, CrossScore)) self._left_score = left_score @right_score.setter def right_score(self, right_score): + cv.check_type('right_score', right_score, (basestring, CrossScore)) self._right_score = right_score @binary_op.setter def binary_op(self, binary_op): + cv.check_type('binary_op', binary_op, (basestring, CrossScore)) + cv.check_value('binary_op', binary_op, TALLY_ARITHMETIC_OPS) self._binary_op = binary_op - def __eq__(self, other): - return str(other) == str(self) - def __repr__(self): string = '({0} {1} {2})'.format(self.left_score, self.binary_op, self.right_score) @@ -75,7 +114,7 @@ class CrossScore(object): class CrossNuclide(object): """A special-purpose nuclide used to encapsulate all combinations of two - tally's nuclides as a outer product for tally arithmetic. + tally's nuclides as an outer product for tally arithmetic. Parameters ---------- @@ -112,6 +151,33 @@ class CrossNuclide(object): if binary_op is not None: self.binary_op = binary_op + def __hash__(self): + return hash(str(self)) + + def __eq__(self, other): + return str(other) == str(self) + + def __ne__(self, other): + return not self == other + + def __deepcopy__(self, memo): + existing = memo.get(id(self)) + + # If this is the first time we have tried to copy this object, create a copy + if existing is None: + clone = type(self).__new__(type(self)) + clone._left_nuclide = self.left_nuclide + clone._right_nuclide = self.right_nuclide + clone._binary_op = self.binary_op + + memo[id(self)] = clone + + return clone + + # If this object has been copied before, return the first copy made + else: + return existing + @property def left_nuclide(self): return self._left_nuclide @@ -126,14 +192,18 @@ class CrossNuclide(object): @left_nuclide.setter def left_nuclide(self, left_nuclide): + cv.check_type('left_nuclide', left_nuclide, (Nuclide, CrossNuclide)) self._left_nuclide = left_nuclide @right_nuclide.setter def right_nuclide(self, right_nuclide): + cv.check_type('right_nuclide', right_nuclide, (Nuclide, CrossNuclide)) self._right_nuclide = right_nuclide @binary_op.setter def binary_op(self, binary_op): + cv.check_type('binary_op', binary_op, basestring) + cv.check_value('binary_op', binary_op, TALLY_ARITHMETIC_OPS) self._binary_op = binary_op def __eq__(self, other): @@ -164,7 +234,7 @@ class CrossNuclide(object): class CrossFilter(object): """A special-purpose filter used to encapsulate all combinations of two - tally's filter bins as a outer product for tally arithmetic. + tally's filter bins as an outer product for tally arithmetic. Parameters ---------- @@ -192,12 +262,10 @@ class CrossFilter(object): left_type = left_filter.type right_type = right_filter.type - self.type = '({0} {1} {2})'.format(left_type, binary_op, right_type) + self._type = '({0} {1} {2})'.format(left_type, binary_op, right_type) self._bins = {} - self._bins['left'] = left_filter.bins - self._bins['right'] = right_filter.bins - self._num_bins = left_filter.num_bins * right_filter.num_bins + self._stride = None self._left_filter = None self._right_filter = None @@ -205,13 +273,21 @@ class CrossFilter(object): if left_filter is not None: self.left_filter = left_filter + self._bins['left'] = left_filter.bins if right_filter is not None: self.right_filter = right_filter + self._bins['right'] = right_filter.bins if binary_op is not None: self.binary_op = binary_op def __hash__(self): - return hash((self.type, self.bins)) + return hash((self.left_filter, self.right_filter)) + + def __eq__(self, other): + return str(other) == str(self) + + def __ne__(self, other): + return not self == other def __deepcopy__(self, memo): existing = memo.get(id(self)) @@ -221,9 +297,12 @@ class CrossFilter(object): clone = type(self).__new__(type(self)) clone._left_filter = self.left_filter clone._right_filter = self.right_filter + clone._binary_op = self.binary_op clone._type = self.type clone._bins = self.bins clone._num_bins = self.num_bins + clone._stride = self.stride + memo[id(self)] = clone return clone @@ -250,54 +329,49 @@ class CrossFilter(object): @property def bins(self): - return (self._bins['left'], self._bins['right']) + return self._bins['left'], self._bins['right'] @property def num_bins(self): - return self._num_bins + if self.left_filter is not None and self.right_filter is not None: + return self.left_filter.num_bins * self.right_filter.num_bins + else: + return 0 @property def stride(self): - return self.left_filter.stride * self.right_filter.stride + return self._stride @type.setter def type(self, filter_type): + if filter_type not in _FILTER_TYPES.values(): + msg = 'Unable to set Filter type to "{0}" since it is not one ' \ + 'of the supported types'.format(type) + raise ValueError(msg) + self._type = filter_type @left_filter.setter def left_filter(self, left_filter): + cv.check_type('left_filter', left_filter, (Filter, CrossFilter)) self._left_filter = left_filter + self._bins['left'] = left_filter.bins @right_filter.setter def right_filter(self, right_filter): + cv.check_type('right_filter', right_filter, (Filter, CrossFilter)) self._right_filter = right_filter + self._bins['right'] = right_filter.bins @binary_op.setter def binary_op(self, binary_op): + cv.check_type('binary_op', binary_op, basestring) + cv.check_value('binary_op', binary_op, TALLY_ARITHMETIC_OPS) self._binary_op = binary_op - def __eq__(self, other): - return str(other) == str(self) - - def split_filters(self): - - split_filters = [] - - # If left Filter is not a CrossFilter, simply append to list - if isinstance(self.left_filter, Filter): - split_filters.append(self.left_filter) - # Recursively descend CrossFilter tree to collect all Filters - else: - split_filters.extend(self.left_filter.split_filters()) - - # If right Filter is not a CrossFilter, simply append to list - if isinstance(self.right_filter, Filter): - split_filters.append(self.right_filter) - # Recursively descend CrossFilter tree to collect all Filters - else: - split_filters.extend(self.right_filter.split_filters()) - - return split_filters + @stride.setter + def stride(self, stride): + self._stride = stride def get_bin_index(self, filter_bin): """Returns the index in the CrossFilter for some bin. @@ -316,7 +390,7 @@ class CrossFilter(object): Returns ------- - filter_index : int + filter_index : Integral The index in the Tally data array for this filter bin. """ @@ -326,6 +400,60 @@ class CrossFilter(object): filter_index = left_index * self.right_filter.num_bins + right_index return filter_index + def get_pandas_dataframe(self, datasize, summary=None): + """Builds a Pandas DataFrame for the CrossFilter's bins. + + This method constructs a Pandas DataFrame object for the CrossFilter + with columns annotated by filter bin information. This is a helper + method for the Tally.get_pandas_dataframe(...) method. This method + recursively builds and concatenates Pandas DataFrames for the left + and right filters and crossfilters. + + This capability has been tested for Pandas >=0.13.1. However, it is + recommended to use v0.16 or newer versions of Pandas since this method + uses Pandas' Multi-index functionality. + + Parameters + ---------- + data_size : Integral + The total number of bins in the tally corresponding to this filter + summary : None or Summary + An optional Summary object to be used to construct columns for + distribcell tally filters (default is None). The geometric + information in the Summary object is embedded into a Multi-index + column with a geometric "path" to each distribcell instance. + NOTE: This option requires the OpenCG Python package. + + Returns + ------- + pandas.DataFrame + A Pandas DataFrame with columns of strings that characterize the + crossfilter's bins. Each entry in the DataFrame will include one + or more binary operations used to construct the crossfilter's bins. + The number of rows in the DataFrame is the same as the total number + of bins in the corresponding tally, with the filter bins + appropriately tiled to map to the corresponding tally bins. + + See also + -------- + Tally.get_pandas_dataframe(), Filter.get_pandas_dataframe() + + """ + + # If left and right filters are identical, do not combine bins + if self.left_filter == self.right_filter: + df = self.left_filter.get_pandas_dataframe(datasize, summary) + + # If left and right filters are different, combine their bins + else: + left_df = self.left_filter.get_pandas_dataframe(datasize, summary) + right_df = self.right_filter.get_pandas_dataframe(datasize, summary) + left_df = left_df.astype(str) + right_df = right_df.astype(str) + df = '(' + left_df + ' ' + self.binary_op + ' ' + right_df + ')' + + return df + def __repr__(self): string = 'CrossFilter\n' @@ -337,4 +465,4 @@ class CrossFilter(object): self.right_filter.bins) string += '{0: <16}{1}{2}\n'.format('\tType', '=\t', filter_type) string += '{0: <16}{1}{2}\n'.format('\tBins', '=\t', filter_bins) - return string + return string \ No newline at end of file diff --git a/openmc/element.py b/openmc/element.py index 2f81b9f30..a99d47127 100644 --- a/openmc/element.py +++ b/openmc/element.py @@ -38,18 +38,18 @@ class Element(object): if xs is not None: self.xs = xs - def __eq__(self, element2): - # Check type - if not isinstance(element2, Element): - return False - - # Check name and xs - if self._name != element2._name: - return False - elif self._xs != element2._xs: - return False - else: + def __eq__(self, other): + if isinstance(other, Element): + if self._name != other._name: + return False + elif self._xs != other._xs: + return False + else: + return True + elif isinstance(other, basestring) and other == self.name: return True + else: + return False def __hash__(self): return hash((self._name, self._xs)) diff --git a/openmc/executor.py b/openmc/executor.py index 54c8a64c1..58cb91246 100644 --- a/openmc/executor.py +++ b/openmc/executor.py @@ -30,14 +30,16 @@ class Executor(object): stdout=subprocess.PIPE) # Capture and re-print OpenMC output in real-time - while (True and output): - line = p.stdout.readline() - print(line, end='') - + while True: # If OpenMC is finished, break loop + line = p.stdout.readline() if not line and p.poll() != None: break + # If user requested output, print to screen + if output: + print(line, end='') + # Return the returncode (integer, zero if no problems encountered) return p.returncode diff --git a/openmc/filter.py b/openmc/filter.py index 6dd4bdaff..eaa30d30e 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -1,19 +1,25 @@ from collections import Iterable import copy from numbers import Real, Integral +import sys import numpy as np from openmc import Mesh -from openmc.checkvalue import check_type, check_iterable_type, \ - check_greater_than, _isinstance +from openmc.summary import Summary +import openmc.checkvalue as cv + + +if sys.version_info[0] >= 3: + basestring = str + _FILTER_TYPES = ['universe', 'material', 'cell', 'cellborn', 'surface', 'mesh', 'energy', 'energyout', 'distribcell'] class Filter(object): - """A filter used to constrain a tally to a specific criterion, e.g. only tally - events when the particle is in a certain cell and energy range. + """A filter used to constrain a tally to a specific criterion, e.g. only + tally events when the particle is in a certain cell and energy range. Parameters ---------- @@ -21,46 +27,60 @@ class Filter(object): The type of the tally filter. Acceptable values are "universe", "material", "cell", "cellborn", "surface", "mesh", "energy", "energyout", and "distribcell". - bins : int or Iterable of int or Iterable of float + bins : Integral or Iterable of Integral or Iterable of Real The bins for the filter. This takes on different meaning for different - filters. + filters. See the OpenMC online documentation for more details. Attributes ---------- type : str The type of the tally filter. - bins : int or Iterable of int or Iterable of float + bins : Integral or Iterable of Integral or Iterable of Real The bins for the filter + num_bins : Integral + The number of filter bins + mesh : Mesh or None + A Mesh object for 'mesh' type filters. + offset : Integral + A value used to index tally bins for 'distribcell' tallies. + stride : Integral + The number of filter, nuclide and score bins within each of this + filter's bins. """ # Initialize Filter class attributes def __init__(self, type=None, bins=None): - self.type = type + + self._type = None self._num_bins = 0 - self.bins = bins + self._bins = None self._mesh = None self._offset = -1 self._stride = None - def __eq__(self, filter2): - # Check type - if self.type != filter2.type: - return False + if type is not None: + self.type = type + if bins is not None: + self.bins = bins - # Check number of bins - elif len(self.bins) != len(filter2.bins): + def __eq__(self, other): + if not isinstance(other, Filter): return False - - # Check bin edges - elif not np.allclose(self.bins, filter2.bins): + elif self.type != other.type: + return False + elif len(self.bins) != len(other.bins): + return False + elif not np.allclose(self.bins, other.bins): return False - else: return True + def __ne__(self, other): + return not self == other + def __hash__(self): - return hash((self._type, self._bins)) + return hash((self.type, tuple(self.bins))) def __deepcopy__(self, memo): existing = memo.get(id(self)) @@ -93,7 +113,14 @@ class Filter(object): @property def num_bins(self): - return self._num_bins + if self.bins is None: + return 0 + elif self.type in ['energy', 'energyout']: + return len(self.bins) - 1 + elif self.type in ['cell', 'cellborn', 'surface', 'universe', 'material']: + return len(self.bins) + else: + return self._num_bins @property def mesh(self): @@ -120,15 +147,13 @@ class Filter(object): @bins.setter def bins(self, bins): - if bins is None: - self.num_bins = 0 - elif self._type is None: + if self.type is None: msg = 'Unable to set bins for Filter to "{0}" since ' \ 'the Filter type has not yet been set'.format(bins) raise ValueError(msg) # If the bin edge is a single value, it is a Cell, Material, etc. ID - if not _isinstance(bins, Iterable): + if not cv._isinstance(bins, Iterable): bins = [bins] # If the bins are in a collection, convert it to a list @@ -137,13 +162,13 @@ class Filter(object): if self.type in ['cell', 'cellborn', 'surface', 'material', 'universe', 'distribcell']: - check_iterable_type('filter bins', bins, Integral) + cv.check_iterable_type('filter bins', bins, Integral) for edge in bins: - check_greater_than('filter bin', edge, 0, equality=True) + cv.check_greater_than('filter bin', edge, 0, equality=True) - elif self._type in ['energy', 'energyout']: + elif self.type in ['energy', 'energyout']: for edge in bins: - if not _isinstance(edge, Real): + if not cv._isinstance(edge, Real): msg = 'Unable to add bin edge "{0}" to a "{1}" Filter ' \ 'since it is a non-integer or floating point ' \ 'value'.format(edge, self.type) @@ -162,12 +187,12 @@ class Filter(object): raise ValueError(msg) # mesh filters - elif self._type == 'mesh': + elif self.type == 'mesh': if not len(bins) == 1: msg = 'Unable to add bins "{0}" to a mesh Filter since ' \ 'only a single mesh can be used per tally'.format(bins) raise ValueError(msg) - elif not _isinstance(bins[0], Integral): + elif not cv._isinstance(bins[0], Integral): msg = 'Unable to add bin "{0}" to mesh Filter since it ' \ 'is a non-integer'.format(bins[0]) raise ValueError(msg) @@ -179,16 +204,15 @@ class Filter(object): # If all error checks passed, add bin edges self._bins = np.array(bins) - # FIXME @num_bins.setter def num_bins(self, num_bins): - check_type('filter num_bins', num_bins, Integral) - check_greater_than('filter num_bins', num_bins, 0, equality=True) + cv.check_type('filter num_bins', num_bins, Integral) + cv.check_greater_than('filter num_bins', num_bins, 0, equality=True) self._num_bins = num_bins @mesh.setter def mesh(self, mesh): - check_type('filter mesh', mesh, Mesh) + cv.check_type('filter mesh', mesh, Mesh) self._mesh = mesh self.type = 'mesh' @@ -196,12 +220,12 @@ class Filter(object): @offset.setter def offset(self, offset): - check_type('filter offset', offset, Integral) + cv.check_type('filter offset', offset, Integral) self._offset = offset @stride.setter def stride(self, stride): - check_type('filter stride', stride, Integral) + cv.check_type('filter stride', stride, Integral) if stride < 0: msg = 'Unable to set stride "{0}" for a "{1}" Filter since it ' \ 'is a negative value'.format(stride, self.type) @@ -270,31 +294,66 @@ class Filter(object): merged_filter = copy.deepcopy(self) # Merge unique filter bins - merged_bins = list(set(self.bins + filter.bins)) + merged_bins = list(set(list(self.bins) + list(filter.bins))) merged_filter.bins = merged_bins merged_filter.num_bins = len(merged_bins) return merged_filter + def is_subset(self, other): + """Determine if another filter is a subset of this filter. + + If all of the bins in the other filter are included as bins in this + filter, then it is a subset of this filter. + + Parameters + ---------- + other : Filter + The filter to query as a subset of this filter + + Returns + ------- + bool + Whether or not the other filter is a subset of this filter + + """ + + if not isinstance(other, Filter): + return False + elif self.type != other.type: + return False + elif self.type in ['energy', 'energyout']: + return np.all(self.bins == other.bins) + + for bin in other.bins: + if bin not in self.bins: + return False + + return True + def get_bin_index(self, filter_bin): """Returns the index in the Filter for some bin. Parameters ---------- - filter_bin : int or tuple + filter_bin : Integral or tuple The bin is the integer ID for 'material', 'surface', 'cell', 'cellborn', and 'universe' Filters. The bin is an integer for the cell instance ID for 'distribcell' Filters. The bin is a 2-tuple of floats for 'energy' and 'energyout' filters corresponding to the - energy boundaries of the bin of interest. The bin is a (x,y,z) - 3-tuple for 'mesh' filters corresponding to the mesh cell of + energy boundaries of the bin of interest. The bin is an (x,y,z) + 3-tuple for 'mesh' filters corresponding to the mesh cell interest. Returns ------- - filter_index : int + filter_index : Integral The index in the Tally data array for this filter bin. + See also + -------- + Filter.get_bin() + """ try: @@ -319,7 +378,7 @@ class Filter(object): val = np.where(self.bins == filter_bin[0])[0][0] filter_index = val - # Filter bins for distribcell are the "IDs" of each unique placement + # Filter bins for distribcells are "IDs" of each unique placement # of the Cell in the Geometry (integers starting at 0) elif self.type == 'distribcell': filter_index = filter_bin @@ -331,11 +390,358 @@ class Filter(object): except ValueError: msg = 'Unable to get the bin index for Filter since "{0}" ' \ - 'is not one of the bins'.format(filter_bin) + 'is not one of the bins'.format(filter_bin) raise ValueError(msg) return filter_index + def get_bin(self, bin_index): + """Returns the filter bin for some filter bin index. + + Parameters + ---------- + bin_index : Integral + The zero-based index into the filter's array of bins. The bin + index for 'material', 'surface', 'cell', 'cellborn', and 'universe' + filters corresponds to the ID in the filter's list of bins. For + 'distribcell' tallies the bin index necessarily can only be zero + since only one cell can be tracked per tally. The bin index for + 'energy' and 'energyout' filters corresponds to the energy range of + interest in the filter bins of energies. The bin index for 'mesh' + filters is the index into the flattened array of (x,y) or (x,y,z) + mesh cell bins. + + Returns + ------- + bin : 1-, 2-, or 3-tuple of Real + The bin in the Tally data array. The bin for 'material', surface', + 'cell', 'cellborn', 'universe' and 'distribcell' filters is a + 1-tuple of the ID corresponding to the appropriate filter bin. + The bin for 'energy' and 'energyout' filters is a 2-tuple of the + lower and upper energies bounding the energy interval for the filter + bin. The bin for 'mesh' tallies is a 2-tuple or 3-tuple of the x,y + or x,y,z mesh cell indices corresponding to the bin in a 2D/3D mesh. + + See also + -------- + Filter.get_bin_index() + + """ + + cv.check_type('bin_index', bin_index, Integral) + cv.check_greater_than('bin_index', bin_index, 0, equality=True) + cv.check_less_than('bin_index', bin_index, self.num_bins) + + if self.type == 'mesh': + + # Construct 3-tuple of x,y,z cell indices for a 3D mesh + if (len(self.mesh.dimension) == 3): + nx, ny, nz = self.mesh.dimension + x = bin_index / (ny * nz) + y = (bin_index - (x * ny * nz)) / nz + z = bin_index - (x * ny * nz) - (y * nz) + filter_bin = (x, y, z) + + # Construct 2-tuple of x,y cell indices for a 2D mesh + else: + nx, ny = self.mesh.dimension + x = bin_index / ny + y = bin_index - (x * ny) + filter_bin = (x, y) + + # Construct 2-tuple of lower, upper energies for energy(out) filters + elif self.type in ['energy', 'energyout']: + filter_bin = (self.bins[bin_index], self.bins[bin_index+1]) + # Construct 1-tuple of with the cell ID for distribcell filters + elif self.type == 'distribcell': + filter_bin = (self.bins[0],) + # Construct 1-tuple with domain ID (e.g., material) for other filters + else: + filter_bin = (self.bins[bin_index],) + + return filter_bin + + def get_pandas_dataframe(self, data_size, summary=None): + """Builds a Pandas DataFrame for the Filter's bins. + + This method constructs a Pandas DataFrame object for the filter with + columns annotated by filter bin information. This is a helper method + for the Tally.get_pandas_dataframe(...) method. + + This capability has been tested for Pandas >=0.13.1. However, it is + recommended to use v0.16 or newer versions of Pandas since this method + uses Pandas' Multi-index functionality. + + Parameters + ---------- + data_size : Integral + The total number of bins in the tally corresponding to this filter + summary : None or Summary + An optional Summary object to be used to construct columns for + distribcell tally filters (default is None). The geometric + information in the Summary object is embedded into a Multi-index + column with a geometric "path" to each distribcell instance. + NOTE: This option requires the OpenCG Python package. + + Returns + ------- + pandas.DataFrame + A Pandas DataFrame with columns of strings that characterize the + filter's bins. The number of rows in the DataFrame is the same as + the total number of bins in the corresponding tally, with the filter + bin appropriately tiled to map to the corresponding tally bins. + + For 'cell', 'cellborn', 'surface', 'material', and 'universe' + filters, the DataFrame includes a single column with the cell, + surface, material or universe ID corresponding to each filter bin. + + For 'distribcell' filters, the DataFrame either includes: + 1) a single column with the cell instance IDs (without summary info) + 2) separate columns for the cell IDs, universe IDs, and lattice IDs + and x,y,z cell indices corresponding to each (with summary info). + + For 'energy' and 'energyout' filters, the DataFrame include a single + column with each element comprising a string with the lower, upper + energy bounds for each filter bin. + + For 'mesh' filters, the DataFrame includes three columns for the + x,y,z mesh cell indices corresponding to each filter bin. + + Raises + ------ + ImportError + When Pandas is not installed, or summary info is requested but + OpenCG is not installed. + + See also + -------- + Tally.get_pandas_dataframe(), CrossFilter.get_pandas_dataframe() + + """ + + # Attempt to import Pandas + try: + import pandas as pd + except ImportError: + msg = 'The Pandas Python package must be installed on your system' + raise ImportError(msg) + + # Initialize Pandas DataFrame + df = pd.DataFrame() + + # mesh filters + if self.type == 'mesh': + + # Initialize dictionary to build Pandas Multi-index column + filter_dict = {} + + # Append Mesh ID as outermost index of mult-index + mesh_key = 'mesh {0}'.format(self.mesh.id) + + # Find mesh dimensions - use 3D indices for simplicity + if (len(self.mesh.dimension) == 3): + nx, ny, nz = self.mesh.dimension + else: + nx, ny = self.mesh.dimension + nz = 1 + + # Generate multi-index sub-column for x-axis + filter_bins = np.arange(1, nx+1) + repeat_factor = ny * nz * self.stride + filter_bins = np.repeat(filter_bins, repeat_factor) + tile_factor = data_size / len(filter_bins) + filter_bins = np.tile(filter_bins, tile_factor) + filter_dict[(mesh_key, 'x')] = filter_bins + + # Generate multi-index sub-column for y-axis + filter_bins = np.arange(1, ny+1) + repeat_factor = nz * self.stride + filter_bins = np.repeat(filter_bins, repeat_factor) + tile_factor = data_size / len(filter_bins) + filter_bins = np.tile(filter_bins, tile_factor) + filter_dict[(mesh_key, 'y')] = filter_bins + + # Generate multi-index sub-column for z-axis + filter_bins = np.arange(1, nz+1) + repeat_factor = self.stride + filter_bins = np.repeat(filter_bins, repeat_factor) + tile_factor = data_size / len(filter_bins) + filter_bins = np.tile(filter_bins, tile_factor) + filter_dict[(mesh_key, 'z')] = filter_bins + + # Initialize a Pandas DataFrame from the mesh dictionary + df = pd.concat([df, pd.DataFrame(filter_dict)]) + + # distribcell filters + elif self.type == 'distribcell': + level_df = None + + if isinstance(summary, Summary): + # Attempt to import the OpenCG package + try: + import opencg + except ImportError: + msg = 'The OpenCG package must be installed ' \ + 'to use a Summary for distribcell dataframes' + raise ImportError(msg) + + # Create and extract the OpenCG geometry the Summary + summary.make_opencg_geometry() + opencg_geometry = summary.opencg_geometry + openmc_geometry = summary.openmc_geometry + + # Use OpenCG to compute the number of regions + opencg_geometry.initialize_cell_offsets() + num_regions = opencg_geometry.num_regions + + # Initialize a dictionary mapping OpenMC distribcell + # offsets to OpenCG LocalCoords linked lists + offsets_to_coords = {} + + # Use OpenCG to compute LocalCoords linked list for + # each region and store in dictionary + for region in range(num_regions): + coords = opencg_geometry.find_region(region) + path = opencg.get_path(coords) + cell_id = path[-1] + + # If this region is in Cell corresponding to the + # distribcell filter bin, store it in dictionary + if cell_id == self.bins[0]: + offset = openmc_geometry.get_offset(path, self.offset) + offsets_to_coords[offset] = coords + + # Each distribcell offset is a DataFrame bin + # Unravel the paths into DataFrame columns + num_offsets = len(offsets_to_coords) + + # Initialize termination condition for while loop + levels_remain = True + counter = 0 + + # Iterate over each level in the CSG tree hierarchy + while levels_remain: + levels_remain = False + + # Initialize dictionary to build Pandas Multi-index + # column for this level in the CSG tree hierarchy + level_dict = {} + + # Initialize prefix Multi-index keys + counter += 1 + level_key = 'level {0}'.format(counter) + univ_key = (level_key, 'univ', 'id') + cell_key = (level_key, 'cell', 'id') + lat_id_key = (level_key, 'lat', 'id') + lat_x_key = (level_key, 'lat', 'x') + lat_y_key = (level_key, 'lat', 'y') + lat_z_key = (level_key, 'lat', 'z') + + # Allocate NumPy arrays for each CSG level and + # each Multi-index column in the DataFrame + level_dict[univ_key] = np.empty(num_offsets) + level_dict[cell_key] = np.empty(num_offsets) + level_dict[lat_id_key] = np.empty(num_offsets) + level_dict[lat_x_key] = np.empty(num_offsets) + level_dict[lat_y_key] = np.empty(num_offsets) + level_dict[lat_z_key] = np.empty(num_offsets) + + # Initialize Multi-index columns to NaN - this is + # necessary since some distribcell instances may + # have very different LocalCoords linked lists + level_dict[univ_key][:] = np.NAN + level_dict[cell_key][:] = np.NAN + level_dict[lat_id_key][:] = np.NAN + level_dict[lat_x_key][:] = np.NAN + level_dict[lat_y_key][:] = np.NAN + level_dict[lat_z_key][:] = np.NAN + + # Iterate over all regions (distribcell instances) + for offset in range(num_offsets): + coords = offsets_to_coords[offset] + + # If entire LocalCoords has been unraveled into + # Multi-index columns already, continue + if coords is None: + continue + + # Assign entry to Universe Multi-index column + if coords._type == 'universe': + level_dict[univ_key][offset] = coords._universe._id + level_dict[cell_key][offset] = coords._cell._id + + # Assign entry to Lattice Multi-index column + else: + level_dict[lat_id_key][offset] = coords._lattice._id + level_dict[lat_x_key][offset] = coords._lat_x + level_dict[lat_y_key][offset] = coords._lat_y + level_dict[lat_z_key][offset] = coords._lat_z + + # Move to next node in LocalCoords linked list + if coords._next is None: + offsets_to_coords[offset] = None + else: + offsets_to_coords[offset] = coords._next + levels_remain = True + + # Tile the Multi-index columns + for level_key, level_bins in level_dict.items(): + level_bins = np.repeat(level_bins, self.stride) + tile_factor = data_size / len(level_bins) + level_bins = np.tile(level_bins, tile_factor) + level_dict[level_key] = level_bins + + # Initialize a Pandas DataFrame from the level dictionary + if level_df is None: + level_df = pd.DataFrame(level_dict) + else: + level_df = pd.concat([level_df, pd.DataFrame(level_dict)], axis=1) + + # Create DataFrame column for distribcell instances IDs + # NOTE: This is performed regardless of whether the user + # requests Summary geometric information + filter_bins = np.arange(self.num_bins) + filter_bins = np.repeat(filter_bins, self.stride) + tile_factor = data_size / len(filter_bins) + filter_bins = np.tile(filter_bins, tile_factor) + filter_bins = filter_bins + df = pd.DataFrame({self.type : filter_bins}) + + # If OpenCG level info DataFrame was created, concatenate + # with DataFrame of distribcell instance IDs + if level_df is not None: + level_df = level_df.dropna(axis=1, how='all') + level_df = level_df.astype(np.int) + df = pd.concat([level_df, df], axis=1) + + # energy, energyout filters + elif 'energy' in self.type: + bins = self.bins + num_bins = self.num_bins + + # Create strings for + template = '({0:.1e} - {1:.1e})' + filter_bins = [] + for i in range(num_bins): + filter_bins.append(template.format(bins[i], bins[i+1])) + + # Tile the energy bins into a DataFrame column + filter_bins = np.repeat(filter_bins, self.stride) + tile_factor = data_size / len(filter_bins) + filter_bins = np.tile(filter_bins, tile_factor) + filter_bins = filter_bins + df = pd.concat([df, pd.DataFrame({self.type + ' [MeV]' : filter_bins})]) + + # universe, material, surface, cell, and cellborn filters + else: + filter_bins = np.repeat(self.bins, self.stride) + tile_factor = data_size / len(filter_bins) + filter_bins = np.tile(filter_bins, tile_factor) + filter_bins = filter_bins + df = pd.concat([df, pd.DataFrame({self.type : filter_bins})]) + + return df + def __repr__(self): string = 'Filter\n' string += '{0: <16}{1}{2}\n'.format('\tType', '=\t', self.type) diff --git a/openmc/material.py b/openmc/material.py index 8f514f37c..6128d23d8 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -132,9 +132,12 @@ class Material(object): @name.setter def name(self, name): - check_type('name for Material ID="{0}"'.format(self._id), - name, basestring) - self._name = name + if name is not None: + check_type('name for Material ID="{0}"'.format(self._id), + name, basestring) + self._name = name + else: + self._name = None def set_density(self, units, density=NO_DENSITY): """Set the density of the material diff --git a/openmc/mesh.py b/openmc/mesh.py index 2fe873d2b..e410c9910 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -4,8 +4,10 @@ from numbers import Real, Integral from xml.etree import ElementTree as ET import sys -from openmc.checkvalue import (check_type, check_length, check_value, - check_greater_than) +import numpy as np + +import openmc.checkvalue as cv + if sys.version_info[0] >= 3: basestring = str @@ -142,45 +144,49 @@ class Mesh(object): self._id = AUTO_MESH_ID AUTO_MESH_ID += 1 else: - check_type('mesh ID', mesh_id, Integral) - check_greater_than('mesh ID', mesh_id, 0) + cv.check_type('mesh ID', mesh_id, Integral) + cv.check_greater_than('mesh ID', mesh_id, 0) self._id = mesh_id @name.setter def name(self, name): - check_type('name for mesh ID="{0}"'.format(self._id), name, basestring) - self._name = name + if name is not None: + cv.check_type('name for mesh ID="{0}"'.format(self._id), + name, basestring) + self._name = name + else: + self._name = None @type.setter def type(self, meshtype): - check_type('type for mesh ID="{0}"'.format(self._id), + cv.check_type('type for mesh ID="{0}"'.format(self._id), meshtype, basestring) - check_value('type for mesh ID="{0}"'.format(self._id), + cv.check_value('type for mesh ID="{0}"'.format(self._id), meshtype, ['regular']) self._type = meshtype @dimension.setter def dimension(self, dimension): - check_type('mesh dimension', dimension, Iterable, Integral) - check_length('mesh dimension', dimension, 2, 3) + cv.check_type('mesh dimension', dimension, Iterable, Integral) + cv.check_length('mesh dimension', dimension, 2, 3) self._dimension = dimension @lower_left.setter def lower_left(self, lower_left): - check_type('mesh lower_left', lower_left, Iterable, Real) - check_length('mesh lower_left', lower_left, 2, 3) + cv.check_type('mesh lower_left', lower_left, Iterable, Real) + cv.check_length('mesh lower_left', lower_left, 2, 3) self._lower_left = lower_left @upper_right.setter def upper_right(self, upper_right): - check_type('mesh upper_right', upper_right, Iterable, Real) - check_length('mesh upper_right', upper_right, 2, 3) + cv.check_type('mesh upper_right', upper_right, Iterable, Real) + cv.check_length('mesh upper_right', upper_right, 2, 3) self._upper_right = upper_right @width.setter def width(self, width): - check_type('mesh width', width, Iterable, Real) - check_length('mesh width', width, 2, 3) + cv.check_type('mesh width', width, Iterable, Real) + cv.check_length('mesh width', width, 2, 3) self._width = width def __repr__(self): diff --git a/openmc/mgxs/__init__.py b/openmc/mgxs/__init__.py new file mode 100644 index 000000000..b6f928b09 --- /dev/null +++ b/openmc/mgxs/__init__.py @@ -0,0 +1,2 @@ +from groups import EnergyGroups +from mgxs import * \ No newline at end of file diff --git a/openmc/mgxs/groups.py b/openmc/mgxs/groups.py new file mode 100644 index 000000000..f0adc5101 --- /dev/null +++ b/openmc/mgxs/groups.py @@ -0,0 +1,275 @@ +from collections import Iterable +from numbers import Real, Integral +import copy +import sys + +import numpy as np + +import openmc.checkvalue as cv + + +if sys.version_info[0] >= 3: + basestring = str + + +class EnergyGroups(object): + """An energy groups structure used for multi-group cross-sections. + + Parameters + ---------- + group_edges : ndarray + The energy group boundaries [MeV] + num_groups : Integral + The number of energy groups + + Attributes + ---------- + group_edges : ndarray + The energy group boundaries [MeV] + num_groups : Integral + The number of energy groups + + """ + + def __init__(self, group_edges=None, num_groups=None): + self._group_edges = None + self._num_groups = None + + if group_edges is not None: + self.group_edges = group_edges + if num_groups is not None: + self.num_groups = num_groups + + def __deepcopy__(self, memo): + existing = memo.get(id(self)) + + # If this is the first time we have tried to copy object, create copy + if existing is None: + clone = type(self).__new__(type(self)) + clone._group_edges = copy.deepcopy(self.group_edges, memo) + clone._num_groups = self.num_groups + + memo[id(self)] = clone + + return clone + + # If this object has been copied before, return the first copy made + else: + return existing + + def __eq__(self, other): + if not isinstance(other, EnergyGroups): + return False + elif self.group_edges != other.group_edges: + return False + else: + return True + + def __ne__(self, other): + return not self == other + + def __hash__(self): + return hash(tuple(self.group_edges)) + + @property + def group_edges(self): + return self._group_edges + + @property + def num_groups(self): + return self._num_groups + + @group_edges.setter + def group_edges(self, edges): + cv.check_type('group edges', edges, Iterable, Real) + cv.check_greater_than('number of group edges', len(edges), 1) + self._group_edges = np.array(edges) + self._num_groups = len(edges)-1 + + def generate_bin_edges(self, start, stop, num_groups, spacing='linear'): + """Generate equally or logarithmically-spaced energy group boundaries. + + Parameters + ---------- + start : Real + The lowest energy in MeV + stop : Real + The highest energy in MeV + num_groups : Integral + The number of energy groups + spacing : {'linear', 'logarithmic'} + The spacing between groups + + """ + + cv.check_type('first edge', start, Real) + cv.check_type('last edge', stop, Real) + cv.check_type('number of groups', num_groups, Integral) + cv.check_type('spacing', spacing, basestring) + cv.check_greater_than('first edge', start, 0, True) + cv.check_greater_than('last edge', stop, start, False) + cv.check_greater_than('number of groups', num_groups, 0) + cv.check_value('spacing', spacing, ('linear', 'logarithmic')) + + if spacing == 'linear': + self.group_edges = np.linspace(start, stop, num_groups + 1) + elif spacing == 'logarithmic': + self.group_edges = \ + np.logspace(np.log10(start), np.log10(stop), num_groups + 1) + + self._num_groups = num_groups + + def get_group(self, energy): + """Returns the energy group in which the given energy resides. + + Parameters + ---------- + energy : Real + The energy of interest in MeV + + Returns + ------- + Integral + The energy group index, starting at 1 for the highest energies + + Raises + ------ + ValueError + If the group edges have not yet been set. + + """ + + if self.group_edges is None: + msg = 'Unable to get energy group for energy "{0}" MeV since ' \ + 'the group edges have not yet been set'.format(energy) + raise ValueError(msg) + + index = np.where(self.group_edges > energy)[0] + group = self.num_groups - index + return group + + def get_group_bounds(self, group): + """Returns the energy boundaries for the energy group of interest. + + Parameters + ---------- + group : Integral + The energy group index, starting at 1 for the highest energies + + Returns + ------- + 2-tuple + The low and high energy bounds for the group in MeV + + Raises + ------ + ValueError + If the group edges have not yet been set. + + """ + + if self.group_edges is None: + msg = 'Unable to get energy group bounds for group "{0}" since ' \ + 'the group edges have not yet been set'.format(group) + raise ValueError(msg) + + lower = self.group_edges[self.num_groups-group] + upper = self.group_edges[self.num_groups-group+1] + return lower, upper + + def get_group_indices(self, groups='all'): + """Returns the array indices for one or more energy groups. + + Parameters + ---------- + groups : str, tuple + The energy groups of interest - a tuple of the energy group indices, + starting at 1 for the highest energies (default is 'all') + + Returns + ------- + ndarray + The ndarray array indices for each energy group of interest + + Raises + ------ + ValueError + If the group edges have not yet been set, or if a group is requested + that is outside the bounds of the number of energy groups. + + """ + + if self.group_edges is None: + msg = 'Unable to get energy group indices for groups "{0}" since ' \ + 'the group edges have not yet been set'.format(groups) + raise ValueError(msg) + + if groups == 'all': + indices = np.arange(self.num_groups) + else: + indices = np.zeros(len(groups), dtype=np.int) + + for i, group in enumerate(groups): + cv.check_greater_than('group', group, 0) + cv.check_less_than('group', group, self.num_groups, equality=True) + indices[i] = group - 1 + + return indices + + def get_condensed_groups(self, coarse_groups): + """Return a coarsened version of this EnergyGroups object. + + This method merges together energy groups in this object into wider + energy groups as defined by the list of groups specified by the user, + and returns a new, coarse EnergyGroups object. + + Parameters + ---------- + coarse_groups : Iterable of 2-tuple + The energy groups of interest - a list of 2-tuples, each directly + corresponding to one of the new coarse groups. The values in the + 2-tuples are upper/lower energy groups used to construct a new + coarse group. For example, if [(1,2), (2,4)] was used as the coarse + groups, fine groups 1 and 2 would be merged into coarse group 1 + while fine groups 3 and 4 would be merged into coarse group 2. + + Returns + ------- + EnergyGroups + A coarsened version of this EnergyGroups object. + + Raises + ------ + ValueError + If the group edges have not yet been set. + """ + + cv.check_type('group edges', coarse_groups, Iterable) + for group in coarse_groups: + cv.check_type('group edges', group, Iterable) + cv.check_length('group edges', group, 2) + cv.check_greater_than('lower group', group[0], 1, True) + cv.check_less_than('lower group', group[0], self.num_groups, True) + cv.check_greater_than('upper group', group[0], 1, True) + cv.check_less_than('upper group', group[0], self.num_groups, True) + cv.check_less_than('lower group', group[0], group[1], False) + + # Compute the group indices into the coarse group + group_bounds = [group[0] for group in coarse_groups] + group_bounds.append(coarse_groups[-1][1]) + + # Determine the indices mapping the fine-to-coarse energy groups + group_bounds = np.asarray(group_bounds) + group_indices = np.flipud(self.num_groups - group_bounds) + group_indices[-1] += 1 + + # Determine the edges between coarse energy groups and sort + # in increasing order in case the user passed in unordered groups + group_edges = self.group_edges[group_indices] + group_edges = np.sort(group_edges) + + # Create a new condensed EnergyGroups object + condensed_groups = EnergyGroups() + condensed_groups.group_edges = group_edges + + return condensed_groups \ No newline at end of file diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py new file mode 100644 index 000000000..a41dcb5b2 --- /dev/null +++ b/openmc/mgxs/mgxs.py @@ -0,0 +1,2050 @@ +from collections import Iterable +from numbers import Integral +import os +import sys +import copy +import abc + +import numpy as np + +import openmc +import openmc.checkvalue as cv +from openmc.mgxs import EnergyGroups + + +if sys.version_info[0] >= 3: + basestring = str + + +# Supported domain types +# TODO: Implement Mesh domains +DOMAIN_TYPES = ['cell', + 'distribcell', + 'universe', + 'material'] + +# Supported domain classes +# TODO: Implement Mesh domains +DOMAINS = [openmc.Cell, + openmc.Universe, + openmc.Material] + + +class MultiGroupXS(object): + """A multi-group cross section for some energy group structure within + some spatial domain. + + This class can be used for both OpenMC input generation and tally data + post-processing to compute spatially-homogenized and energy-integrated + multi-group cross sections for deterministic neutronics calculations. + + Parameters + ---------- + domain : Material or Cell or Universe + The domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + The domain type for spatial homogenization + energy_groups : EnergyGroups + The energy group structure for energy condensation + by_nuclide : bool + If true, computes multi-group cross sections for each nuclide in domain + name : str, optional + Name of the multi-group cross section. Used as a label to identify + tallies in OpenMC 'tallies.xml' file. + + Attributes + ---------- + name : str, optional + Name of the multi-group cross section + rxn_type : str + Reaction type (e.g., 'total', 'nu-fission', etc.) + by_nuclide : bool + If true, computes multi-group cross sections for each nuclide in domain + domain : Material or Cell or Universe + Domain for spatial homogenization + domain_type : {'material', 'cell', 'distribcell', 'universe'} + Domain type for spatial homogenization + energy_groups : EnergyGroups + Energy group structure for energy condensation + num_groups : Integral + Number of energy groups + tallies : dict + OpenMC tallies needed to compute the multi-group cross section + xs_tally : Tally + Derived tally for the multi-group cross section. This attribute + is None unless the multi-group cross section has been computed. + + """ + + # This is an abstract class which cannot be instantiated + __metaclass__ = abc.ABCMeta + + def __init__(self, domain=None, domain_type=None, + energy_groups=None, by_nuclide=False, name=''): + + self._name = '' + self._rxn_type = None + self._by_nuclide = None + self._domain = None + self._domain_type = None + self._energy_groups = None + self._num_groups = None + self._tallies = dict() + self._xs_tally = None + + self.name = name + self.by_nuclide = by_nuclide + + if domain_type is not None: + self.domain_type = domain_type + if domain is not None: + self.domain = domain + if energy_groups is not None: + self.energy_groups = energy_groups + + def __deepcopy__(self, memo): + existing = memo.get(id(self)) + + # If this is the first time we have tried to copy this object, copy it + if existing is None: + clone = type(self).__new__(type(self)) + clone._name = self.name + clone._rxn_type = self.rxn_type + clone._by_nuclide = self.by_nuclide + clone._domain = self.domain + clone._domain_type = self.domain_type + clone._energy_groups = copy.deepcopy(self.energy_groups, memo) + clone._num_groups = self.num_groups + clone._xs_tally = copy.deepcopy(self.xs_tally, memo) + + clone._tallies = dict() + for tally_type, tally in self.tallies.items(): + clone.tallies[tally_type] = copy.deepcopy(tally, memo) + + memo[id(self)] = clone + + return clone + + # If this object has been copied before, return the first copy made + else: + return existing + + @property + def name(self): + return self._name + + @property + def rxn_type(self): + return self._rxn_type + + @property + def by_nuclide(self): + return self._by_nuclide + + @property + def domain(self): + return self._domain + + @property + def domain_type(self): + return self._domain_type + + @property + def energy_groups(self): + return self._energy_groups + + @property + def num_groups(self): + return self._num_groups + + @property + def tallies(self): + return self._tallies + + @property + def xs_tally(self): + return self._xs_tally + + @property + def num_subdomains(self): + tally = self.tallies.values()[0] + domain_filter = tally.find_filter(self.domain_type) + return domain_filter.num_bins + + @name.setter + def name(self, name): + cv.check_type('name', name, basestring) + self._name = name + + @by_nuclide.setter + def by_nuclide(self, by_nuclide): + cv.check_type('by_nuclide', by_nuclide, bool) + self._by_nuclide = by_nuclide + + @property + def num_nuclides(self): + if self.by_nuclide: + return len(self.get_all_nuclides()) + else: + return 1 + + @property + def nuclides(self): + if self.by_nuclide: + return self.get_all_nuclides() + else: + return 'sum' + + @domain.setter + def domain(self, domain): + cv.check_type('domain', domain, tuple(DOMAINS)) + self._domain = domain + + @domain_type.setter + def domain_type(self, domain_type): + cv.check_value('domain type', domain_type, tuple(DOMAIN_TYPES)) + self._domain_type = domain_type + + @energy_groups.setter + def energy_groups(self, energy_groups): + cv.check_type('energy groups', energy_groups, openmc.mgxs.EnergyGroups) + self._energy_groups = energy_groups + self._num_groups = energy_groups.num_groups + + def get_all_nuclides(self): + """Get all nuclides in the cross section's spatial domain. + + Returns + ------- + list of str + A list of the string names for each nuclide in the problem domain + (e.g., ['U-235', 'U-238', 'O-16']) + + Raises + ------ + ValueError + When this method is called before the spatial domain has been set. + + """ + + if self.domain is None: + raise ValueError('Unable to get all nuclides without a domain') + + nuclides = self.domain.get_all_nuclides() + return nuclides.keys() + + def get_nuclide_density(self, nuclide): + """Get the atomic number density in units of atoms/b-cm for a nuclide + in the cross section's spatial domain. + + Paramters + --------- + nuclide : str + A nuclide name string (e.g., 'U-235') + + Returns + ------- + Real + The atomic number density (atom/b-cm) for the nuclide of interest + + Raises + ------ + ValueError + When the density is requested for a nuclide which is not found in + the spatial domain. + + """ + + cv.check_type('nuclide', nuclide, basestring) + + # Get list of all nuclides in the spatial domain + nuclides = self.domain.get_all_nuclides() + + if nuclide not in nuclides: + msg = 'Unable to get density for nuclide "{0}" which is not in ' \ + '{1} "{2}"'.format(nuclide, self.domain_type, self.domain.id) + ValueError(msg) + + density = nuclides[nuclide][1] + return density + + def get_nuclide_densities(self, nuclides='all'): + """Get an array of atomic number densities in units of atom/b-cm for all + nuclides in the cross section's spatial domain. + + Paramters + --------- + nuclides : Iterable of str or 'all' or 'sum' + A list of nuclide name strings (e.g., ['U-235', 'U-238']). The + special string 'all' will return the atom densities for all nuclides + in the spatial domain. The special string 'sum' will return the atom + density summed across all nuclides in the spatial domain. + + Returns + ------- + ndarray of Real + An array of the atomic number densities (atom/b-cm) for each of the + nuclides in the problem domain + + Raises + ------ + ValueError + When this method is called before the spatial domain has been set. + + """ + + if self.domain is None: + raise ValueError('Unable to get nuclide densities without a domain') + + # Sum the atomic number densities for all nuclides + if nuclides == 'sum': + nuclides = self.get_all_nuclides() + densities = np.zeros(1, dtype=np.float) + for nuclide in nuclides: + densities[0] += self.get_nuclide_density(nuclide) + + # Tabulate the atomic number densities for all nuclides + elif nuclides == 'all': + nuclides = self.get_all_nuclides() + densities = np.zeros(self.num_nuclides, dtype=np.float) + for i, nuclide in enumerate(nuclides): + densities[i] += self.get_nuclide_density(nuclide) + + # Tabulate the atomic number densities for each specified nuclide + else: + densities = np.zeros(len(nuclides), dtype=np.float) + for i, nuclide in enumerate(nuclides): + densities[i] = self.get_nuclide_density(nuclide) + + return densities + + @abc.abstractmethod + def create_tallies(self, scores, all_filters, keys, estimator): + """Instantiates tallies needed to compute the multi-group cross section. + + This is a helper method for MultiGroupXS subclasses to create tallies + for input file generation. The tallies are stored in the tallies dict. + This method is called by each subclass' create_tallies(...) method + which define the parameters given to this parent class method. + + Parameters + ---------- + scores : Iterable of str + Scores for each tally + all_filters : Iterable of tuple of Filter + Tuples of non-spatial domain filters for each tally + keys : Iterable of str + Key string used to store each tally in the tallies dictionary + estimator : {'analog' or 'tracklength'} + Type of estimator to use for each tally + + """ + + cv.check_iterable_type('scores', scores, basestring) + cv.check_length('scores', scores, len(keys)) + cv.check_iterable_type('filters', all_filters, openmc.Filter, 1, 2) + cv.check_type('keys', keys, Iterable, basestring) + cv.check_value('estimator', estimator, ['analog', 'tracklength']) + + # Create a domain Filter object + domain_filter = openmc.Filter(self.domain_type, self.domain.id) + + # Create each Tally needed to compute the multi group cross section + for score, key, filters in zip(scores, keys, all_filters): + self.tallies[key] = openmc.Tally(name=self.name) + self.tallies[key].add_score(score) + self.tallies[key].estimator = estimator + self.tallies[key].add_filter(domain_filter) + + # Add all non-domain specific Filters (e.g., 'energy') to the Tally + for filter in filters: + self.tallies[key].add_filter(filter) + + # If this is a by-nuclide cross-section, add all nuclides to Tally + if self.by_nuclide and score != 'flux': + all_nuclides = self.domain.get_all_nuclides() + for nuclide in all_nuclides: + self.tallies[key].add_nuclide(nuclide) + else: + self.tallies[key].add_nuclide('total') + + @abc.abstractmethod + def compute_xs(self): + """Performs generic cleanup after a subclass' uses tally arithmetic to + compute a multi-group cross section as a derived tally. + + This method replaces CrossNuclides generated by tally arithmetic with + the original Nuclide objects in the xs_tally instance attribute. The + simple Nuclides allow for cleaner output through Pandas DataFrames as + well as simpler data access through the get_xs(...) class method. + + In addition, this routine resets NaNs in the multi group cross section + array to 0.0. This may be needed occur if no events were scored in + certain tally bins, which will lead to a divide-by-zero situation. + + """ + + # If computing xs for each nuclide, replace CrossNuclides with originals + if self.by_nuclide: + self.xs_tally._nuclides = [] + nuclides = self.domain.get_all_nuclides() + for nuclide in nuclides: + self.xs_tally.add_nuclide(openmc.Nuclide(nuclide)) + + # Remove NaNs which may have resulted from divide-by-zero operations + self._xs_tally._mean = np.nan_to_num(self.xs_tally.mean) + self._xs_tally._std_dev = np.nan_to_num(self.xs_tally.std_dev) + + def load_from_statepoint(self, statepoint): + """Extracts tallies in an OpenMC StatePoint with the data needed to + compute multi-group cross sections. + + This method is needed to compute cross section data from tallies + in an OpenMC StatePoint object. + + NOTE: The statepoint must first be linked with an OpenMC Summary object. + + Parameters + ---------- + statepoint : openmc.StatePoint + An OpenMC StatePoint object with tally data + + Raises + ------ + ValueError + When this method is called with a statepoint that has not been + linked with a summary object. + + """ + + cv.check_type('statepoint', statepoint, openmc.statepoint.StatePoint) + + if not statepoint.with_summary: + msg = 'Unable to load data from a statepoint which has not been ' \ + 'linked with a summary file' + raise ValueError(msg) + + # Override the domain object that loaded from an OpenMC summary file + # NOTE: This is necessary for micro cross-sections which require + # the isotopic number densities as computed by OpenMC + if self.domain_type == 'cell' or self.domain_type == 'distribcell': + self.domain = statepoint.summary.get_cell_by_id(self.domain.id) + elif self.domain_type == 'universe': + self.domain = statepoint.summary.get_universe_by_id(self.domain.id) + elif self.domain_type == 'material': + self.domain = statepoint.summary.get_material_by_id(self.domain.id) + else: + msg = 'Unable to load data from a statepoint for domain type {} ' \ + 'which is not yet supported'.format(self.domain_type) + raise ValueError(msg) + + # Create Tallies to search for in StatePoint + self.create_tallies() + + # Use tally "slicing" to ensure that tallies correspond to our domain + # NOTE: This is important if tally merging was used + if self.domain_type != 'distribcell': + filters = [self.domain_type] + filter_bins = [(self.domain.id,)] + # Distribcell filters only accept single cell - neglect it when slicing + else: + filters = [] + filter_bins = [] + + # Find, slice and store Tallies from StatePoint + # The tally slicing is needed if tally merging was used + for tally_type, tally in self.tallies.items(): + sp_tally = statepoint.get_tally(tally.scores, tally.filters, + tally.nuclides, + estimator=tally.estimator) + sp_tally = sp_tally.get_slice(tally.scores, filters, + filter_bins, tally.nuclides) + self.tallies[tally_type] = sp_tally + + def get_xs(self, groups='all', subdomains='all', nuclides='all', + xs_type='macro', order_groups='increasing', value='mean'): + """Returns an array of multi-group cross sections. + + This method constructs a 2D NumPy array for the requested multi-group + cross section data data for one or more energy groups and subdomains. + + Parameters + ---------- + groups : Iterable of Integral or 'all' + Energy groups of interest + subdomains : Iterable of Integral or 'all' + Subdomain IDs of interest + nuclides : Iterable of str or 'all' or 'sum' + A list of nuclide name strings (e.g., ['U-235', 'U-238']). The + special string 'all' (default) will return the cross sections for + all nuclides in the spatial domain. The special string 'sum' will + return the cross section summed over all nuclides. + xs_type: {'macro' or 'micro'} + Return the macro or micro cross section in units of cm^-1 or barns + order_groups: {'increasing', 'decreasing'} + Return the cross section indexed according to increasing (default) + or decreasing energy groups (decreasing or increasing energies) + value : str + A string for the type of value to return - 'mean' (default), + 'std_dev' or 'rel_err' are accepted + + Returns + ------- + ndarray + A NumPy array of the multi-group cross section indexed in the order + each group, subdomain and nuclide is listed in the parameters. + + Raises + ------ + ValueError + When this method is called before the multi-group cross section is + computed from tally data. + + """ + + if self.xs_tally is None: + msg = 'Unable to get cross section since it has not been computed' + raise ValueError(msg) + + cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + filters = [] + filter_bins = [] + + # Construct a collection of the domain filter bins + if subdomains != 'all': + cv.check_iterable_type('subdomains', subdomains, Integral) + for subdomain in subdomains: + filters.append(self.domain_type) + filter_bins.append((subdomain,)) + + # Construct list of energy group bounds tuples for all requested groups + if groups != 'all': + cv.check_iterable_type('groups', groups, Integral) + for group in groups: + filters.append('energy') + filter_bins.append((self.energy_groups.get_group_bounds(group),)) + + # Construct a collection of the nuclides to retrieve from the xs tally + if self.by_nuclide: + if nuclides == 'all' or nuclides == 'sum' or nuclides == ['sum']: + query_nuclides = self.get_all_nuclides() + else: + query_nuclides = nuclides + else: + query_nuclides = ['total'] + + # If user requested the sum for all nuclides, use tally summation + if nuclides == 'sum' or nuclides == ['sum']: + xs_tally = self.xs_tally.summation(nuclides=query_nuclides) + xs = xs_tally.get_values(filters=filters, + filter_bins=filter_bins, value=value) + else: + xs = self.xs_tally.get_values(filters=filters, filter_bins=filter_bins, + nuclides=query_nuclides, value=value) + + # Divide by atom number densities for microscopic cross sections + if xs_type == 'micro': + if self.by_nuclide: + densities = self.get_nuclide_densities(nuclides) + else: + densities = self.get_nuclide_densities('sum') + if value == 'mean' or value == 'std_dev': + xs /= densities[np.newaxis, :, np.newaxis] + + # Reverse data if user requested increasing energy groups since + # tally data is stored in order of increasing energies + if order_groups == 'increasing': + if groups == 'all': + num_groups = self.num_groups + else: + num_groups = len(groups) + + # Reshape tally data array with separate axes for domain and energy + num_subdomains = xs.shape[0] / num_groups + new_shape = (num_subdomains, num_groups) + xs.shape[1:] + xs = np.reshape(xs, new_shape) + + # Reverse energies to align with increasing energy groups + xs = xs[:, ::-1, :] + + # Reshape array to original axes (filters, nuclides, scores) + new_shape = (num_subdomains * num_groups,) + xs.shape[2:] + xs = np.reshape(xs, new_shape) + + return xs + + def get_condensed_xs(self, coarse_groups): + """Construct an energy-condensed version of this cross section. + + Parameters + ---------- + coarse_groups : openmc.mgxs.EnergyGroups + The coarse energy group structure of interest + + Returns + ------- + MultiGroupXS + A new MultiGroupXS condensed to the group structure of interest + + """ + + if self.xs_tally is None: + msg = 'Unable to get a condensed coarse group cross section ' \ + 'since the fine group cross section has not been computed' + raise ValueError(msg) + + cv.check_type('coarse_groups', coarse_groups, EnergyGroups) + cv.check_less_than('coarse groups', coarse_groups.num_groups, + self.num_groups, equality=True) + cv.check_value('upper coarse energy', coarse_groups.group_edges[-1], + [self.energy_groups.group_edges[-1]]) + cv.check_value('lower coarse energy', coarse_groups.group_edges[0], + [self.energy_groups.group_edges[0]]) + + # Clone this MultiGroupXS to initialize the condensed version + condensed_xs = copy.deepcopy(self) + condensed_xs.energy_groups = coarse_groups + + # Build energy indices to sum across + energy_indices = [] + for group in range(coarse_groups.num_groups, 0, -1): + low, high = coarse_groups.get_group_bounds(group) + low_index = np.where(self.energy_groups.group_edges == low)[0][0] + energy_indices.append(low_index) + + fine_edges = self.energy_groups.group_edges + + # Condense each of the tallies to the coarse group structure + for tally_type, tally in condensed_xs.tallies.items(): + + # Make condensed tally derived and null out sum, sum_sq + tally._derived = True + tally._sum = None + tally._sum_sq = None + + # Get tally data arrays reshaped with one dimension per filter + mean = tally.get_reshaped_data(value='mean') + std_dev = tally.get_reshaped_data(value='std_dev') + + # Sum across all applicable fine energy group filters + for i, filter in enumerate(tally.filters): + if 'energy' in filter.type and np.all(filter.bins == fine_edges): + filter.bins = coarse_groups.group_edges + mean = np.add.reduceat(mean, energy_indices, axis=i) + std_dev = np.add.reduceat(std_dev**2, energy_indices, axis=i) + std_dev = np.sqrt(std_dev) + + # Reshape condensed data arrays with one dimension for all filters + new_shape = \ + (tally.num_filter_bins, tally.num_nuclides, tally.num_score_bins,) + mean = np.reshape(mean, new_shape) + std_dev = np.reshape(std_dev, new_shape) + + # Override tally's data with the new condensed data + tally._mean = mean + tally._std_dev = std_dev + + # Compute the energy condensed multi-group cross section + condensed_xs.compute_xs() + return condensed_xs + + def get_subdomain_avg_xs(self, subdomains='all'): + """Construct a subdomain-averaged version of this cross section. + + This method is useful for averaging cross sections across distribcell + instances. The method performs spatial homogenization to compute the + scalar flux-weighted average cross section across the subdomains. + + Parameters + ---------- + subdomains : Iterable of Integral or 'all' + The subdomain IDs to average across + + Returns + ------- + MultiGroupXS + A new MultiGroupXS averaged across the subdomains of interest + + Raises + ------ + ValueError + When this method is called before the multi-group cross section is + computed from tally data. + + """ + + if self.xs_tally is None: + msg = 'Unable to get subdomain-averaged cross section since the ' \ + 'subdomain-distributed cross section has not been computed' + raise ValueError(msg) + + # Construct a collection of the subdomain filter bins to average across + if subdomains != 'all': + cv.check_iterable_type('subdomains', subdomains, Integral) + elif self.domain_type == 'distribcell': + subdomains = np.arange(self.num_subdomains) + else: + subdomains = [0] + + # Clone this MultiGroupXS to initialize the subdomain-averaged version + avg_xs = copy.deepcopy(self) + avg_xs.domain_type = 'cell' + + # Average each of the tallies across subdomains + for tally_type, tally in avg_xs.tallies.items(): + + # Make condensed tally derived and null out sum, sum_sq + tally._derived = True + tally._sum = None + tally._sum_sq = None + + # Get tally data arrays reshaped with one dimension per filter + mean = tally.get_reshaped_data(value='mean') + std_dev = tally.get_reshaped_data(value='std_dev') + + # Get the mean of the mean, std. dev. across requested subdomains + mean = np.mean(mean[subdomains, ...], axis=0) + std_dev = np.mean(std_dev[subdomains, ...]**2, axis=0) + std_dev = np.sqrt(std_dev) + + # If domain is distribcell, make subdomain-averaged a 'cell' domain + domain_filter = tally.find_filter(self._domain_type) + if domain_filter.type == 'distribcell': + domain_filter.type = 'cell' + domain_filter.num_bins = 1 + + # Reshape averaged data arrays with one dimension for all filters + new_shape = \ + (tally.num_filter_bins, tally.num_nuclides, tally.num_score_bins,) + mean = np.reshape(mean, new_shape) + std_dev = np.reshape(std_dev, new_shape) + + # Override tally's data with the new condensed data + tally._mean = mean + tally._std_dev = std_dev + + # Compute the subdomain-averaged multi-group cross section + avg_xs.compute_xs() + + return avg_xs + + def print_xs(self, subdomains='all', nuclides='all', xs_type='macro'): + """Print a string representation for the multi-group cross section. + + Parameters + ---------- + subdomains : Iterable of Integral or 'all' + The subdomain IDs of the cross sections to include in the report + nuclides : Iterable of str or 'all' or 'sum' + The nuclides of the cross-sections to include in the report. This + may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). + The special string 'all' (default) will report the cross sections + for all nuclides in the spatial domain. The special string 'sum' + will report the cross sections summed over all nuclides. + xs_type: {'macro' or 'micro'} + Return the macro or micro cross section in units of cm^-1 or barns + + """ + + # Construct a collection of the subdomains to report + if subdomains != 'all': + cv.check_iterable_type('subdomains', subdomains, Integral) + elif self.domain_type == 'distribcell': + subdomains = np.arange(self.num_subdomains, dtype=np.int) + else: + subdomains = [self.domain.id] + + # Construct a collection of the nuclides to report + if self.by_nuclide: + if nuclides == 'all': + nuclides = self.get_all_nuclides() + elif nuclides == 'sum': + nuclides = ['sum'] + else: + cv.check_iterable_type('nuclides', nuclides, basestring) + else: + nuclides = ['sum'] + + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + # Build header for string with type and domain info + string = 'Multi-Group XS\n' + string += '{0: <16}=\t{1}\n'.format('\tReaction Type', self.rxn_type) + string += '{0: <16}=\t{1}\n'.format('\tDomain Type', self.domain_type) + string += '{0: <16}=\t{1}\n'.format('\tDomain ID', self.domain.id) + + # If cross section data has not been computed, only print string header + if self.xs_tally is None: + print(string) + return + + # Loop over all subdomains + for subdomain in subdomains: + + if self.domain_type == 'distribcell': + string += '{0: <16}=\t{1}\n'.format('\tSubdomain', subdomain) + + # Loop over all Nuclides + for nuclide in nuclides: + + # Build header for nuclide type + if nuclide != 'sum': + string += '{0: <16}=\t{1}\n'.format('\tNuclide', nuclide) + + # Build header for cross section type + if xs_type == 'macro': + string += '{0: <16}\n'.format('\tCross Sections [cm^-1]:') + else: + string += '{0: <16}\n'.format('\tCross Sections [barns]:') + + template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]:\t' + + # Loop over energy groups ranges + for group in range(1, self.num_groups+1): + bounds = self.energy_groups.get_group_bounds(group) + string += template.format('', group, bounds[0], bounds[1]) + average = self.get_xs([group], [subdomain], [nuclide], + xs_type=xs_type, value='mean') + rel_err = self.get_xs([group], [subdomain], [nuclide], + xs_type=xs_type, value='rel_err') + average = average.flatten()[0] + rel_err = rel_err.flatten()[0] * 100. + string += '{:.2e} +/- {:1.2e}%'.format(average, rel_err) + string += '\n' + string += '\n' + string += '\n' + + print(string) + + def build_hdf5_store(self, filename='mgxs', directory='mgxs', + xs_type='macro', append=True): + """Export the multi-group cross section data to an HDF5 binary file. + + This method constructs an HDF5 file which stores the multi-group + cross section data. The data is stored in a hierarchy of HDF5 groups + from the domain type, domain id, subdomain id (for distribcell domains), + nuclides and cross section type. Two datasets for the mean and standard + deviation are stored for each subdomain entry in the HDF5 file. + + NOTE: This requires the h5py Python package. + + Parameters + ---------- + filename : str + Filename for the HDF5 file (default is 'mgxs') + directory : str + Directory for the HDF5 file (default is 'mgxs') + xs_type: {'macro' or 'micro'} + Store the macro or micro cross section in units of cm^-1 or barns + append : boolean + If true, appends to an existing HDF5 file with the same filename + directory (if one exists) + + Raises + ------ + ValueError + When this method is called before the multi-group cross section is + computed from tally data. + ImportError + When h5py is not installed. + + """ + + if self.xs_tally is None: + msg = 'Unable to get build HDF5 store since the ' \ + 'cross section has not been computed' + raise ValueError(msg) + + # Attempt to import h5py + try: + import h5py + except ImportError: + msg = 'The h5py Python package must be installed on your system' + raise ImportError(msg) + + # Make directory if it does not exist + if not os.path.exists(directory): + os.makedirs(directory) + + filename = directory + '/' + filename + '.h5' + filename = filename.replace(' ', '-') + + if append and os.path.isfile(filename): + xs_results = h5py.File(filename, 'a') + else: + xs_results = h5py.File(filename, 'w') + + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + if self.by_nuclide: + nuclides = self.domain.get_all_nuclides() + densities = np.zeros(len(nuclides), dtype=np.float) + for i, nuclide in enumerate(nuclides): + densities[i] = nuclides[nuclide][1] + else: + nuclides = ['sum'] + + # Create an HDF5 group within the file for the domain + domain_type_group = xs_results.require_group(self.domain_type) + group_name = '{0} {1}'.format(self.domain_type, self.domain.id) + domain_group = domain_type_group.require_group(group_name) + + if self.domain_type == 'distribcell': + subdomains = np.arange(self.num_subdomains, dtype=np.int) + else: + subdomains = [self.domain.id] + + # Determine number of digits to pad subdomain group keys + num_digits = len(str(self.num_subdomains)) + + # Create a separate HDF5 group for each subdomain + for i, subdomain in enumerate(subdomains): + + # Create an HDF5 group for the subdomain + if self.domain_type == 'distribcell': + group_name = str(subdomain).zfill(num_digits) + subdomain_group = domain_group.require_group(group_name) + else: + subdomain_group = domain_group + + # Create a separate HDF5 group for the rxn type + rxn_group = subdomain_group.require_group(self.rxn_type) + + # Create a separate HDF5 group for each nuclide + for j, nuclide in enumerate(nuclides): + + if nuclide != 'sum': + density = densities[j] + nuclide_group = rxn_group.require_group(nuclide) + nuclide_group.require_dataset('density', dtype=np.float64, + data=[density], shape=(1,)) + else: + nuclide_group = rxn_group + + # Extract the cross section for this subdomain and nuclide + average = self.get_xs(subdomains=[subdomain], nuclides=[nuclide], + xs_type=xs_type, value='mean') + std_dev = self.get_xs(subdomains=[subdomain], nuclides=[nuclide], + xs_type=xs_type, value='std_dev') + average = average.squeeze() + std_dev = std_dev.squeeze() + + # Add MultiGroupXS results data to the HDF5 group + nuclide_group.require_dataset('average', dtype=np.float64, + shape=average.shape, data=average) + nuclide_group.require_dataset('std. dev.', dtype=np.float64, + shape=std_dev.shape, data=std_dev) + + # Close the MultiGroup results HDF5 file + xs_results.close() + + def export_xs_data(self, filename='mgxs', directory='mgxs', + format='csv', groups='all', xs_type='macro'): + """Export the multi-group cross section data to a file. + + This method leverages the functionality in the Pandas library to export + the multi-group cross section data in a variety of output file formats + for storage and/or post-processing. + + Parameters + ---------- + filename : str + Filename for the exported file (default is 'mgxs') + directory : str + Directory for the exported file (default is 'mgxs') + format : {'csv', 'excel', 'pickle', 'latex'} + The format for the exported data file + groups : Iterable of Integral or 'all' + Energy groups of interest + xs_type: {'macro' or 'micro'} + Store the macro or micro cross section in units of cm^-1 or barns + + """ + + cv.check_type('filename', filename, basestring) + cv.check_type('directory', directory, basestring) + cv.check_value('format', format, ['csv', 'excel', 'pickle', 'latex']) + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + # Make directory if it does not exist + if not os.path.exists(directory): + os.makedirs(directory) + + filename = directory + '/' + filename + filename = filename.replace(' ', '-') + + # Get a Pandas DataFrame for the data + df = self.get_pandas_dataframe(groups=groups, xs_type=xs_type) + + # Capitalize column label strings + df.columns = df.columns.astype(str) + df.columns = map(str.title, df.columns) + + # Export the data using Pandas IO API + if format == 'csv': + df.to_csv(filename + '.csv', index=False) + elif format == 'excel': + df.to_excel(filename + '.xls', index=False) + elif format == 'pickle': + df.to_pickle(filename + '.pkl') + elif format == 'latex': + if self.domain_type == 'distribcell': + msg = 'Unable to export distribcell multi-group cross section' \ + 'data to a LaTeX table' + raise NotImplementedError(msg) + + df.to_latex(filename + '.tex', bold_rows=True, + longtable=True, index=False) + + # Surround LaTeX table with code needed to run pdflatex + with open(filename + '.tex','r') as original: + data = original.read() + with open(filename + '.tex','w') as modified: + modified.write( + '\\documentclass[preview, 12pt, border=1mm]{standalone}\n') + modified.write('\\usepackage{caption}\n') + modified.write('\\usepackage{longtable}\n') + modified.write('\\usepackage{booktabs}\n') + modified.write('\\begin{document}\n\n') + modified.write(data) + modified.write('\n\\end{document}') + + def get_pandas_dataframe(self, groups='all', nuclides='all', + xs_type='macro', summary=None): + """Build a Pandas DataFrame for the MultiGroupXS data. + + This method leverages the Tally.get_pandas_dataframe(...) method, but + renames the columns with terminology appropriate for cross section data. + + Parameters + ---------- + groups : Iterable of Integral or 'all' + Energy groups of interest + nuclides : Iterable of str or 'all' or 'sum' + The nuclides of the cross-sections to include in the dataframe. This + may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). + The special string 'all' (default) will include the cross sections + for all nuclides in the spatial domain. The special string 'sum' + will include the cross sections summed over all nuclides. + xs_type: {'macro' or 'micro'} + Return macro or micro cross section in units of cm^-1 or barns + summary : None or Summary + An optional Summary object to be used to construct columns for + distribcell tally filters (default is None). The geometric + information in the Summary object is embedded into a multi-index + column with a geometric "path" to each distribcell intance. + NOTE: This option requires the OpenCG Python package. + + Returns + ------- + pandas.DataFrame + A Pandas DataFrame for the cross section data. + + Raises + ------ + ValueError + When this method is called before the multi-group cross section is + computed from tally data. + + """ + + if self.xs_tally is None: + msg = 'Unable to get Pandas DataFrame since the ' \ + 'cross section has not been computed' + raise ValueError(msg) + + if groups != 'all': + cv.check_iterable_type('groups', groups, Integral) + if nuclides != 'all' and nuclides != 'sum': + cv.check_iterable_type('nuclides', nuclides, basestring) + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + # Get a Pandas DataFrame from the derived xs tally + if self.by_nuclide and nuclides == 'sum': + + # Use tally summation to sum across all nuclides + query_nuclides = self.get_all_nuclides() + xs_tally = self.xs_tally.summation(nuclides=query_nuclides) + df = xs_tally.get_pandas_dataframe(summary=summary) + + # Remove nuclide column since it is homogeneous and redundant + df.drop('nuclide', axis=1, inplace=True) + + # If the user requested a specific set of nuclides + elif self.by_nuclide and nuclides != 'all': + xs_tally = self.xs_tally.get_slice(nuclides=nuclides) + df = xs_tally.get_pandas_dataframe(summary=summary) + + # If the user requested all nuclides, keep nuclide column in dataframe + else: + df = self.xs_tally.get_pandas_dataframe(summary=summary) + + # Remove the score column since it is homogeneous and redundant + if summary and self.domain_type == 'distribcell': + df = df.drop('score', level=0, axis=1) + else: + df = df.drop('score', axis=1) + + # Rename energy(out) columns + columns = [] + if 'energy [MeV]' in df: + df.rename(columns={'energy [MeV]': 'group in'}, inplace=True) + columns.append('group in') + if 'energyout [MeV]' in df: + df.rename(columns={'energyout [MeV]': 'group out'}, inplace=True) + columns.append('group out') + + # Loop over all energy groups and override the bounds with indices + template = '({0:.1e} - {1:.1e})' + bins = self.energy_groups.group_edges + for column in columns: + for i in range(self.num_groups): + group = template.format(bins[i], bins[i+1]) + row_indices = df[column] == group + df.loc[row_indices, column] = self.num_groups - i + + # Select out those groups the user requested + if groups != 'all': + if 'group in' in df: + df = df[df['group in'].isin(groups)] + if 'group out' in df: + df = df[df['group out'].isin(groups)] + + # If user requested micro cross sections, divide out the atom densities + if xs_type == 'micro': + if self.by_nuclide: + densities = self.get_nuclide_densities(nuclides) + else: + densities = self.get_nuclide_densities('sum') + tile_factor = df.shape[0] / len(densities) + df['mean'] /= np.tile(densities, tile_factor) + df['std. dev.'] /= np.tile(densities, tile_factor) + + # Sort the dataframe by domain type id (e.g., distribcell id) and + # energy groups such that data is from fast to thermal + df.sort([self.domain_type] + columns, inplace=True) + + return df + + +class TotalXS(MultiGroupXS): + """A total multi-group cross section.""" + + def __init__(self, domain=None, domain_type=None, + groups=None, by_nuclide=False, name=''): + super(TotalXS, self).__init__(domain, domain_type, + groups, by_nuclide, name) + self._rxn_type = 'total' + + def create_tallies(self): + """Construct the OpenMC tallies needed to compute this cross section. + + This method constructs two tracklength tallies to compute the 'flux' + and 'total' reaction rates in the spatial domain and energy groups + of interest. + + """ + + # Create a list of scores for each Tally to be created + scores = ['flux', 'total'] + estimator = 'tracklength' + keys = scores + + # Create the non-domain specific Filters for the Tallies + group_edges = self.energy_groups.group_edges + energy_filter = openmc.Filter('energy', group_edges) + filters = [[energy_filter], [energy_filter]] + + # Initialize the Tallies + super(TotalXS, self).create_tallies(scores, filters, keys, estimator) + + def compute_xs(self): + """Computes the multi-group total cross sections using OpenMC + tally arithmetic. + """ + + self._xs_tally = self.tallies['total'] / self.tallies['flux'] + super(TotalXS, self).compute_xs() + + +class TransportXS(MultiGroupXS): + """A transport-corrected total multi-group cross section.""" + + def __init__(self, domain=None, domain_type=None, + groups=None, by_nuclide=False, name=''): + super(TransportXS, self).__init__(domain, domain_type, + groups, by_nuclide, name) + self._rxn_type = 'transport' + + def create_tallies(self): + """Construct the OpenMC tallies needed to compute this cross section. + + This method constructs three analog tallies to compute the 'flux', + 'total' and 'scatter-P1' reaction rates in the spatial domain and + energy groups of interest. + + """ + + # Create a list of scores for each Tally to be created + scores = ['flux', 'total', 'scatter-P1'] + estimator = 'analog' + keys = scores + + # Create the non-domain specific Filters for the Tallies + group_edges = self.energy_groups.group_edges + energy_filter = openmc.Filter('energy', group_edges) + energyout_filter = openmc.Filter('energyout', group_edges) + filters = [[energy_filter], [energy_filter], [energyout_filter]] + + # Initialize the Tallies + super(TransportXS, self).create_tallies(scores, filters, + keys, estimator) + + def load_from_statepoint(self, statepoint): + """Extracts tallies in an OpenMC StatePoint with the data needed to + compute multi-group cross sections. + + This method is needed to compute cross section data from tallies + in an OpenMC StatePoint object. + + NOTE: The statepoint must first be linked with an OpenMC Summary object. + + Parameters + ---------- + statepoint : openmc.StatePoint + An OpenMC StatePoint object with tally data + + Raises + ------ + ValueError + When this method is called with a statepoint that has not been + linked with a summary object. + + """ + + # Load the tallies from the statepoint using the parent class method + super(TransportXS, self).load_from_statepoint(statepoint) + + # Use tally slicing to remove scatter-P0 data from scatter-P1 tally + scatter_p1 = self.tallies['scatter-P1'] + self.tallies['scatter-P1'] = scatter_p1.get_slice(scores=['scatter-P1']) + self.tallies['scatter-P1'].filters[-1].type = 'energy' + + def compute_xs(self): + """Computes the multi-group transport cross sections using OpenMC + tally arithmetic.""" + + self._xs_tally = self.tallies['total'] - self.tallies['scatter-P1'] + self._xs_tally /= self.tallies['flux'] + super(TransportXS, self).compute_xs() + + +class AbsorptionXS(MultiGroupXS): + """An absorption multi-group cross section.""" + + def __init__(self, domain=None, domain_type=None, + groups=None, by_nuclide=False, name=''): + super(AbsorptionXS, self).__init__(domain, domain_type, + groups, by_nuclide, name) + self._rxn_type = 'absorption' + + def create_tallies(self): + """Construct the OpenMC tallies needed to compute this cross section. + + This method constructs two tracklength tallies to compute the 'flux' + and 'absorption' reaction rates in the spatial domain and energy + groups of interest. + + """ + + # Create a list of scores for each Tally to be created + scores = ['flux', 'absorption'] + estimator = 'tracklength' + keys = scores + + # Create the non-domain specific Filters for the Tallies + group_edges = self.energy_groups.group_edges + energy_filter = openmc.Filter('energy', group_edges) + filters = [[energy_filter], [energy_filter]] + + # Initialize the Tallies + super(AbsorptionXS, self).create_tallies(scores, filters, + keys, estimator) + + def compute_xs(self): + """Computes the multi-group absorption cross sections using OpenMC + tally arithmetic.""" + + self._xs_tally = self.tallies['absorption'] / self.tallies['flux'] + super(AbsorptionXS, self).compute_xs() + + +class CaptureXS(MultiGroupXS): + """A capture multi-group cross section.""" + + def __init__(self, domain=None, domain_type=None, + groups=None, by_nuclide=False, name=''): + super(CaptureXS, self).__init__(domain, domain_type, + groups, by_nuclide, name) + self._rxn_type = 'capture' + + def create_tallies(self): + """Construct the OpenMC tallies needed to compute this cross section. + + This method constructs two tracklength tallies to compute the 'flux' + and 'capture' reaction rates in the spatial domain and energy + groups of interest. + + """ + + # Create a list of scores for each Tally to be created + scores = ['flux', 'absorption', 'fission'] + estimator = 'tracklength' + keys = scores + + # Create the non-domain specific Filters for the Tallies + group_edges = self.energy_groups.group_edges + energy_filter = openmc.Filter('energy', group_edges) + filters = [[energy_filter], [energy_filter], [energy_filter]] + + # Initialize the Tallies + super(CaptureXS, self).create_tallies(scores, filters, keys, estimator) + + def compute_xs(self): + """Computes the multi-group capture cross sections using OpenMC + tally arithmetic.""" + + self._xs_tally = self.tallies['absorption'] - self.tallies['fission'] + self._xs_tally /= self.tallies['flux'] + super(CaptureXS, self).compute_xs() + + +class FissionXS(MultiGroupXS): + """A fission multi-group cross section.""" + + def __init__(self, domain=None, domain_type=None, + groups=None, by_nuclide=False, name=''): + super(FissionXS, self).__init__(domain, domain_type, + groups, by_nuclide, name) + self._rxn_type = 'fission' + + def create_tallies(self): + """Construct the OpenMC tallies needed to compute this cross section. + + This method constructs two tracklength tallies to compute the 'flux' + and 'fission' reaction rates in the spatial domain and energy + groups of interest. + + """ + + # Create a list of scores for each Tally to be created + scores = ['flux', 'fission'] + estimator = 'tracklength' + keys = scores + + # Create the non-domain specific Filters for the Tallies + group_edges = self.energy_groups.group_edges + energy_filter = openmc.Filter('energy', group_edges) + filters = [[energy_filter], [energy_filter]] + + # Initialize the Tallies + super(FissionXS, self).create_tallies(scores, filters, keys, estimator) + + def compute_xs(self): + """Computes the multi-group fission cross sections using OpenMC + tally arithmetic.""" + + self._xs_tally = self.tallies['fission'] / self.tallies['flux'] + super(FissionXS, self).compute_xs() + + +class NuFissionXS(MultiGroupXS): + """A fission production multi-group cross section.""" + + def __init__(self, domain=None, domain_type=None, + groups=None, by_nuclide=False, name=''): + super(NuFissionXS, self).__init__(domain, domain_type, + groups, by_nuclide, name) + self._rxn_type = 'nu-fission' + + def create_tallies(self): + """Construct the OpenMC tallies needed to compute this cross section. + + This method constructs two tracklength tallies to compute the 'flux' + and 'nu-fission' reaction rates in the spatial domain and energy + groups of interest. + + """ + + # Create a list of scores for each Tally to be created + scores = ['flux', 'nu-fission'] + estimator = 'tracklength' + keys = scores + + # Create the non-domain specific Filters for the Tallies + group_edges = self.energy_groups.group_edges + energy_filter = openmc.Filter('energy', group_edges) + filters = [[energy_filter], [energy_filter]] + + # Initialize the Tallies + super(NuFissionXS, self).create_tallies(scores, filters, + keys, estimator) + + def compute_xs(self): + """Computes the multi-group nu-fission cross sections using OpenMC + tally arithmetic.""" + + self._xs_tally = self.tallies['nu-fission'] / self.tallies['flux'] + super(NuFissionXS, self).compute_xs() + + +class ScatterXS(MultiGroupXS): + """A scatter multi-group cross section.""" + + def __init__(self, domain=None, domain_type=None, + groups=None, by_nuclide=False, name=''): + super(ScatterXS, self).__init__(domain, domain_type, + groups, by_nuclide, name) + self._rxn_type = 'scatter' + + def create_tallies(self): + """Construct the OpenMC tallies needed to compute this cross section. + + This method constructs two tracklength tallies to compute the 'flux' + and 'scatter' reaction rates in the spatial domain and energy + groups of interest. + + """ + + # Create a list of scores for each Tally to be created + scores = ['flux', 'scatter'] + estimator = 'tracklength' + keys = scores + + # Create the non-domain specific Filters for the Tallies + group_edges = self.energy_groups.group_edges + energy_filter = openmc.Filter('energy', group_edges) + filters = [[energy_filter], [energy_filter]] + + # Intialize the Tallies + super(ScatterXS, self).create_tallies(scores, filters, keys, estimator) + + def compute_xs(self): + """Computes the scattering multi-group cross sections using + OpenMC tally arithmetic.""" + + self._xs_tally = self.tallies['scatter'] / self.tallies['flux'] + super(ScatterXS, self).compute_xs() + + +class NuScatterXS(MultiGroupXS): + """A nu-scatter multi-group cross section.""" + + def __init__(self, domain=None, domain_type=None, + groups=None, by_nuclide=False, name=''): + super(NuScatterXS, self).__init__(domain, domain_type, + groups, by_nuclide, name) + self._rxn_type = 'nu-scatter' + + def create_tallies(self): + """Construct the OpenMC tallies needed to compute this cross section. + + This method constructs two analog tallies to compute the 'flux' + and 'nu-scatter' reaction rates in the spatial domain and energy + groups of interest. + + """ + + # Create a list of scores for each Tally to be created + scores = ['flux', 'nu-scatter'] + estimator = 'tracklength' + keys = scores + + # Create the non-domain specific Filters for the Tallies + group_edges = self.energy_groups.group_edges + energy_filter = openmc.Filter('energy', group_edges) + filters = [[energy_filter], [energy_filter]] + + # Initialize the Tallies + super(NuScatterXS, self).create_tallies(scores, filters, + keys, estimator) + + def compute_xs(self): + """Computes the nu-scattering multi-group cross section using OpenMC + tally arithmetic.""" + + self._xs_tally = self.tallies['nu-scatter'] / self.tallies['flux'] + super(NuScatterXS, self).compute_xs() + + +class ScatterMatrixXS(MultiGroupXS): + """A scattering matrix multi-group cross section.""" + + def __init__(self, domain=None, domain_type=None, + groups=None, by_nuclide=False, name=''): + super(ScatterMatrixXS, self).__init__(domain, domain_type, + groups, by_nuclide, name) + self._rxn_type = 'scatter matrix' + + def create_tallies(self): + """Construct the OpenMC tallies needed to compute this cross section. + + This method constructs three analog tallies to compute the 'flux', + 'scatter' and 'scatter-P1' reaction rates in the spatial domain and + energy groups of interest. + + """ + + group_edges = self.energy_groups.group_edges + energy = openmc.Filter('energy', group_edges) + energyout = openmc.Filter('energyout', group_edges) + + # Create a list of scores for each Tally to be created + scores = ['flux', 'scatter', 'scatter-P1'] + filters = [[energy], [energy, energyout], [energyout]] + + estimator = 'analog' + keys = scores + + # Initialize the Tallies + super(ScatterMatrixXS, self).create_tallies(scores, filters, + keys, estimator) + + def compute_xs(self, correction='P0'): + """Computes the multi-group scattering matrix using OpenMC + tally arithmetic. + + Parameters + ---------- + correction : {'P0' or None} + If 'P0', applies the P0 transport correction to the diagonal of the + scattering matrix. + + """ + + # If using P0 correction subtract scatter-P1 from the diagonal + if correction == 'P0': + scatter_p1 = self.tallies['scatter-P1'] + scatter_p1 = scatter_p1.get_slice(scores=['scatter-P1']) + energy_filter = openmc.Filter(type='energy') + energy_filter.bins = self.energy_groups.group_edges + scatter_p1 = scatter_p1.diagonalize_filter(energy_filter) + rxn_tally = self.tallies['scatter'] - scatter_p1 + else: + rxn_tally = self.tallies['scatter'] + + self._xs_tally = rxn_tally / self.tallies['flux'] + super(ScatterMatrixXS, self).compute_xs() + + def get_xs(self, in_groups='all', out_groups='all', + subdomains='all', nuclides='all', xs_type='macro', + order_groups='increasing', value='mean'): + """Returns an array of multi-group cross sections. + + This method constructs a 2D NumPy array for the requested scattering + matrix data data for one or more energy groups and subdomains. + + Parameters + ---------- + in_groups : Iterable of Integral or 'all' + Incoming energy groups of interest + out_groups : Iterable of Integral or 'all' + Outgoing energy groups of interest + subdomains : Iterable of Integral or 'all' + Subdomain IDs of interest + nuclides : Iterable of str or 'all' or 'sum' + A list of nuclide name strings (e.g., ['U-235', 'U-238']). The + special string 'all' (default) will return the cross sections for + all nuclides in the spatial domain. The special string 'sum' will + return the cross section summed over all nuclides. + xs_type: {'macro' or 'micro'} + Return the macro or micro cross section in units of cm^-1 or barns + order_groups: {'increasing', 'decreasing'} + Return the cross section indexed according to increasing (default) + or decreasing energy groups (decreasing or increasing energies) + value : str + A string for the type of value to return - 'mean' (default), + 'std_dev' or 'rel_err' are accepted + + Returns + ------- + ndarray + A NumPy array of the multi-group cross section indexed in the order + each group and subdomain is listed in the parameters. + + Raises + ------ + ValueError + When this method is called before the multi-group cross section is + computed from tally data. + + """ + + if self.xs_tally is None: + msg = 'Unable to get cross section since it has not been computed' + raise ValueError(msg) + + cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + filters = [] + filter_bins = [] + + # Construct a collection of the domain filter bins + if subdomains != 'all': + cv.check_iterable_type('subdomains', subdomains, Integral) + for subdomain in subdomains: + filters.append(self.domain_type) + filter_bins.append((subdomain,)) + + # Construct list of energy group bounds tuples for all requested groups + if in_groups != 'all': + cv.check_iterable_type('groups', in_groups, Integral) + for group in in_groups: + filters.append('energy') + filter_bins.append((self.energy_groups.get_group_bounds(group),)) + + # Construct list of energy group bounds tuples for all requested groups + if out_groups != 'all': + cv.check_iterable_type('groups', out_groups, Integral) + for group in out_groups: + filters.append('energyout') + filter_bins.append((self.energy_groups.get_group_bounds(group),)) + + # Construct a collection of the nuclides to retrieve from the xs tally + if self.by_nuclide: + if nuclides == 'all' or nuclides == 'sum' or nuclides == ['sum']: + query_nuclides = self.get_all_nuclides() + else: + query_nuclides = nuclides + else: + query_nuclides = ['total'] + + # Use tally summation if user requested the sum for all nuclides + if nuclides == 'sum' or nuclides == ['sum']: + xs_tally = self.xs_tally.summation(nuclides=query_nuclides) + xs = xs_tally.get_values(filters=filters, + filter_bins=filter_bins, value=value) + else: + xs = self.xs_tally.get_values(filters=filters, + filter_bins=filter_bins, + nuclides=query_nuclides, value=value) + + xs = np.nan_to_num(xs) + + # Divide by atom number densities for microscopic cross sections + if xs_type == 'micro': + if self.by_nuclide: + densities = self.get_nuclide_densities(nuclides) + else: + densities = self.get_nuclide_densities('sum') + if value == 'mean' or value == 'std_dev': + xs /= densities[np.newaxis, :, np.newaxis] + + # Reverse data if user requested increasing energy groups since + # tally data is stored in order of increasing energies + if order_groups == 'increasing': + if in_groups == 'all': + num_in_groups = self.num_groups + else: + num_in_groups = len(in_groups) + if out_groups == 'all': + num_out_groups = self.num_groups + else: + num_out_groups = len(out_groups) + + # Reshape tally data array with separate axes for domain and energy + num_subdomains = xs.shape[0] / (num_in_groups * num_out_groups) + new_shape = (num_subdomains, num_in_groups, num_out_groups) + new_shape += xs.shape[1:] + xs = np.reshape(xs, new_shape) + + # Reverse energies to align with increasing energy groups + xs = xs[:, ::-1, ::-1, :] + + # Reshape array to original axes (filters, nuclides, scores) + new_shape = (num_subdomains * num_in_groups * num_out_groups,) + new_shape += xs.shape[3:] + xs = np.reshape(xs, new_shape) + + return xs + + def print_xs(self, subdomains='all', nuclides='all', xs_type='macro'): + """Prints a string representation for the multi-group cross section. + + Parameters + ---------- + subdomains : Iterable of Integral or 'all' + The subdomain IDs of the cross sections to include in the report + nuclides : Iterable of str or 'all' or 'sum' + The nuclides of the cross-sections to include in the report. This + may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). + The special string 'all' (default) will report the cross sections + for all nuclides in the spatial domain. The special string 'sum' + will report the cross sections summed over all nuclides. + xs_type: {'macro' or 'micro'} + Return the macro or micro cross section in units of cm^-1 or barns + + """ + + # Construct a collection of the subdomains to report + if subdomains != 'all': + cv.check_iterable_type('subdomains', subdomains, Integral) + elif self.domain_type == 'distribcell': + subdomains = np.arange(self.num_subdomains, dtype=np.int) + else: + subdomains = [self.domain.id] + + # Construct a collection of the nuclides to report + if self.by_nuclide: + if nuclides == 'all': + nuclides = self.get_all_nuclides() + if nuclides == 'sum': + nuclides = ['sum'] + else: + cv.check_iterable_type('nuclides', nuclides, basestring) + else: + nuclides = ['sum'] + + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + # Build header for string with type and domain info + string = 'Multi-Group XS\n' + string += '{0: <16}=\t{1}\n'.format('\tReaction Type', self.rxn_type) + string += '{0: <16}=\t{1}\n'.format('\tDomain Type', self.domain_type) + string += '{0: <16}=\t{1}\n'.format('\tDomain ID', self.domain.id) + + # If cross section data has not been computed, only print string header + if self.xs_tally is None: + print(string) + return + + string += '{0: <16}\n'.format('\tEnergy Groups:') + template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]\n' + + # Loop over energy groups ranges + for group in range(1, self.num_groups+1): + bounds = self.energy_groups.get_group_bounds(group) + string += template.format('', group, bounds[0], bounds[1]) + + if subdomains == 'all': + if self.domain_type == 'distribcell': + subdomains = np.arange(self.num_subdomains, dtype=np.int) + else: + subdomains = [self.domain.id] + + # Loop over all subdomains + for subdomain in subdomains: + + if self.domain_type == 'distribcell': + string += \ + '{0: <16}=\t{1}\n'.format('\tSubdomain', subdomain) + + # Loop over all Nuclides + for nuclide in nuclides: + + # Build header for nuclide type + if xs_type != 'sum': + string += '{0: <16}=\t{1}\n'.format('\tNuclide', nuclide) + + # Build header for cross section type + if xs_type == 'macro': + string += '{0: <16}\n'.format('\tCross Sections [cm^-1]:') + else: + string += '{0: <16}\n'.format('\tCross Sections [barns]:') + + template = '{0: <12}Group {1} -> Group {2}:\t\t' + + # Loop over incoming/outgoing energy groups ranges + for in_group in range(1, self.num_groups+1): + for out_group in range(1, self.num_groups+1): + string += template.format('', in_group, out_group) + average = \ + self.get_xs([in_group], [out_group], + [subdomain], [nuclide], + xs_type=xs_type, value='mean') + rel_err = \ + self.get_xs([in_group], [out_group], + [subdomain], [nuclide], + xs_type=xs_type, value='rel_err') + average = average.flatten()[0] + rel_err = rel_err.flatten()[0] * 100. + string += '{:1.2e} +/- {:1.2e}%'.format(average, rel_err) + string += '\n' + string += '\n' + string += '\n' + string += '\n' + + print(string) + + +class NuScatterMatrixXS(ScatterMatrixXS): + """A scattering production matrix multi-group cross section.""" + + def __init__(self, domain=None, domain_type=None, + groups=None, by_nuclide=False, name=''): + super(NuScatterMatrixXS, self).__init__(domain, domain_type, + groups, by_nuclide, name) + self._rxn_type = 'nu-scatter matrix' + + def create_tallies(self): + """Construct the OpenMC tallies needed to compute this cross section. + + This method constructs three analog tallies to compute the 'flux', + 'nu-scatter' and 'scatter-P1' reaction rates in the spatial domain and + energy groups of interest. + + """ + + # Create a list of scores for each Tally to be created + scores = ['flux', 'nu-scatter', 'scatter-P1'] + estimator = 'analog' + keys = ['flux', 'scatter', 'scatter-P1'] + + # Create the non-domain specific Filters for the Tallies + group_edges = self.energy_groups.group_edges + energy = openmc.Filter('energy', group_edges) + energyout = openmc.Filter('energyout', group_edges) + filters = [[energy], [energy, energyout], [energyout]] + + # Intialize the Tallies + super(ScatterMatrixXS, self).create_tallies(scores, filters, + keys, estimator) + +class Chi(MultiGroupXS): + """The fission spectrum.""" + + def __init__(self, domain=None, domain_type=None, + groups=None, by_nuclide=False, name=''): + super(Chi, self).__init__(domain, domain_type, groups, by_nuclide, name) + self._rxn_type = 'chi' + + def create_tallies(self): + """Construct the OpenMC tallies needed to compute this cross section. + + This method constructs two analog tallies to compute 'nu-fission' + reaction rates with 'energy' and 'energyout' filters in the spatial + domain and energy groups of interest. + + """ + + # Create a list of scores for each Tally to be created + scores = ['nu-fission', 'nu-fission'] + estimator = 'analog' + keys = ['nu-fission-in', 'nu-fission-out'] + + # Create the non-domain specific Filters for the Tallies + group_edges = self.energy_groups.group_edges + energyout = openmc.Filter('energyout', group_edges) + energyin = openmc.Filter('energy', [group_edges[0], group_edges[-1]]) + filters = [[energyin], [energyout]] + + # Intialize the Tallies + super(Chi, self).create_tallies(scores, filters, keys, estimator) + + def compute_xs(self): + """Computes chi fission spectrum using OpenMC tally arithmetic.""" + + # Retrieve the fission production tallies + nu_fission_in = self.tallies['nu-fission-in'] + nu_fission_out = self.tallies['nu-fission-out'] + + # Remove the coarse energy filter to keep it out of tally arithmetic + energy_filter = nu_fission_in.find_filter('energy') + nu_fission_in.remove_filter(energy_filter) + + # Compute chi + self._xs_tally = nu_fission_out / nu_fission_in + + # Add the coarse energy filter back to the nu-fission tally + nu_fission_in.add_filter(energy_filter) + + super(Chi, self).compute_xs() + + def get_xs(self, groups='all', subdomains='all', nuclides='all', + xs_type='macro', order_groups='increasing', value='mean'): + """Returns an array of the fission spectrum. + + This method constructs a 2D NumPy array for the requested multi-group + cross section data data for one or more energy groups and subdomains. + + Parameters + ---------- + groups : Iterable of Integral or 'all' + Energy groups of interest + subdomains : Iterable of Integral or 'all' + Subdomain IDs of interest + nuclides : Iterable of str or 'all' or 'sum' + A list of nuclide name strings (e.g., ['U-235', 'U-238']). The + special string 'all' (default) will return the cross sections for + all nuclides in the spatial domain. The special string 'sum' will + return the cross section summed over all nuclides. + xs_type: {'macro' or 'micro'} + This parameter is not relevant for chi but is included here to + mirror the parent MultiGroupXS.get_xs(...) class method + order_groups: {'increasing', 'decreasing'} + Return the cross section indexed according to increasing (default) + or decreasing energy groups (decreasing or increasing energies) + value : str + A string for the type of value to return - 'mean' (default), + 'std_dev' or 'rel_err' are accepted + + Returns + ------- + ndarray + A NumPy array of the multi-group cross section indexed in the order + each group, subdomain and nuclide is listed in the parameters. + + Raises + ------ + ValueError + When this method is called before the multi-group cross section is + computed from tally data. + + """ + + if self.xs_tally is None: + msg = 'Unable to get cross section since it has not been computed' + raise ValueError(msg) + + cv.check_value('value', value, ['mean', 'std_dev', 'rel_err']) + cv.check_value('xs_type', xs_type, ['macro', 'micro']) + + filters = [] + filter_bins = [] + + # Construct a collection of the domain filter bins + if subdomains != 'all': + cv.check_iterable_type('subdomains', subdomains, Integral) + for subdomain in subdomains: + filters.append(self.domain_type) + filter_bins.append((subdomain,)) + + # Construct list of energy group bounds tuples for all requested groups + if groups != 'all': + cv.check_iterable_type('groups', groups, Integral) + for group in groups: + filters.append('energyout') + filter_bins.append((self.energy_groups.get_group_bounds(group),)) + + # If chi was computed for each nuclide in the domain + if self.by_nuclide: + + # Get the sum as the fission source weighted average chi for all + # nuclides in the domain + if nuclides == 'sum' or nuclides == ['sum']: + + # Retrieve the fission production tallies + nu_fission_in = self.tallies['nu-fission-in'] + nu_fission_out = self.tallies['nu-fission-out'] + + # Sum out all nuclides + nuclides = self.get_all_nuclides() + nu_fission_in = nu_fission_in.summation(nuclides=nuclides) + nu_fission_out = nu_fission_out.summation(nuclides=nuclides) + + # Compute chi and store it as the xs_tally attribute so we can + # use the generic get_xs(...) method + xs_tally = nu_fission_out / nu_fission_in + xs = xs_tally.get_values(filters=filters, + filter_bins=filter_bins, value=value) + + # Get chi for all nuclides in the domain + elif nuclides == 'all': + nuclides = self.get_all_nuclides() + xs = self.xs_tally.get_values(filters=filters, + filter_bins=filter_bins, + nuclides=nuclides, value=value) + + # Get chi for user-specified nuclides in the domain + else: + cv.check_iterable_type('nuclides', nuclides, basestring) + xs = self.xs_tally.get_values(filters=filters, + filter_bins=filter_bins, + nuclides=nuclides, value=value) + + # If chi was computed as an average of nuclides in the domain + else: + xs = self.xs_tally.get_values(filters=filters, + filter_bins=filter_bins, value=value) + + # Reverse data if user requested increasing energy groups since + # tally data is stored in order of increasing energies + if order_groups == 'increasing': + + # Reshape tally data array with separate axes for domain and energy + if groups == 'all': + num_groups = self.num_groups + else: + num_groups = len(groups) + num_subdomains = xs.shape[0] / num_groups + new_shape = (num_subdomains, num_groups) + xs.shape[1:] + xs = np.reshape(xs, new_shape) + + # Reverse energies to align with increasing energy groups + xs = xs[:, ::-1, :] + + # Reshape array to original axes (filters, nuclides, scores) + new_shape = (num_subdomains * num_groups,) + new_shape[2:] + xs = np.reshape(xs, new_shape) + + xs = np.nan_to_num(xs) + return xs + + def get_pandas_dataframe(self, groups='all', nuclides='all', + xs_type='macro', summary=None): + """Build a Pandas DataFrame for the MultiGroupXS data. + + This method leverages the Tally.get_pandas_dataframe(...) method, but + renames the columns with terminology appropriate for cross section data. + + Parameters + ---------- + groups : Iterable of Integral or 'all' + Energy groups of interest + nuclides : Iterable of str or 'all' or 'sum' + The nuclides of the cross-sections to include in the dataframe. This + may be a list of nuclide name strings (e.g., ['U-235', 'U-238']). + The special string 'all' (default) will include the cross sections + for all nuclides in the spatial domain. The special string 'sum' + will include the cross sections summed over all nuclides. + xs_type: {'macro' or 'micro'} + Return macro or micro cross section in units of cm^-1 or barns + summary : None or Summary + An optional Summary object to be used to construct columns for + distribcell tally filters (default is None). The geometric + information in the Summary object is embedded into a multi-index + column with a geometric "path" to each distribcell intance. + NOTE: This option requires the OpenCG Python package. + + Returns + ------- + pandas.DataFrame + A Pandas DataFrame for the cross section data. + + Raises + ------ + ValueError + When this method is called before the multi-group cross section is + computed from tally data. + + """ + + # Build the dataframe using the parent class method + df = super(Chi, self).get_pandas_dataframe(groups, nuclides, + xs_type, summary) + + # If user requested micro cross sections, multiply by the atom + # densities to cancel out division made by the parent class method + if xs_type == 'micro': + if self.by_nuclide: + densities = self.get_nuclide_densities(nuclides) + else: + densities = self.get_nuclide_densities('sum') + tile_factor = df.shape[0] / len(densities) + df['mean'] *= np.tile(densities, tile_factor) + df['std. dev.'] *= np.tile(densities, tile_factor) + + return df \ No newline at end of file diff --git a/openmc/nuclide.py b/openmc/nuclide.py index 25abe815b..0501287fa 100644 --- a/openmc/nuclide.py +++ b/openmc/nuclide.py @@ -42,21 +42,18 @@ class Nuclide(object): if xs is not None: self.xs = xs - def __eq__(self, nuclide2): - # Check type - if not isinstance(nuclide2, Nuclide): - return False - - # Check name - elif self._name != nuclide2._name: - return False - - # Check xs - elif self._xs != nuclide2._xs: - return False - - else: + def __eq__(self, other): + if isinstance(other, Nuclide): + if self._name != other._name: + return False + elif self._xs != other._xs: + return False + else: + return True + elif isinstance(other, basestring) and other == self.name: return True + else: + return False def __hash__(self): return hash((self._name, self._xs)) diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index 65e980c00..1cdf8e875 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -83,14 +83,14 @@ def get_opencg_material(openmc_material): raise ValueError(msg) global OPENCG_MATERIALS - material_id = openmc_material._id + material_id = openmc_material.id # If this Material was already created, use it if material_id in OPENCG_MATERIALS: return OPENCG_MATERIALS[material_id] # Create an OpenCG Material to represent this OpenMC Material - name = openmc_material._name + name = openmc_material.name opencg_material = opencg.Material(material_id=material_id, name=name) # Add the OpenMC Material to the global collection of all OpenMC Materials @@ -123,14 +123,14 @@ def get_openmc_material(opencg_material): raise ValueError(msg) global OPENMC_MATERIALS - material_id = opencg_material._id + material_id = opencg_material.id # If this Material was already created, use it if material_id in OPENMC_MATERIALS: return OPENMC_MATERIALS[material_id] # Create an OpenMC Material to represent this OpenCG Material - name = opencg_material._name + name = opencg_material.name openmc_material = openmc.Material(material_id=material_id, name=name) # Add the OpenMC Material to the global collection of all OpenMC Materials @@ -168,8 +168,8 @@ def is_opencg_surface_compatible(opencg_surface): 'since "{0}" is not a Surface'.format(opencg_surface) raise ValueError(msg) - if opencg_surface._type in ['x-squareprism', - 'y-squareprism', 'z-squareprism']: + if opencg_surface.type in ['x-squareprism', + 'y-squareprism', 'z-squareprism']: return False else: return True @@ -196,59 +196,59 @@ def get_opencg_surface(openmc_surface): raise ValueError(msg) global OPENCG_SURFACES - surface_id = openmc_surface._id + surface_id = openmc_surface.id # If this Material was already created, use it if surface_id in OPENCG_SURFACES: return OPENCG_SURFACES[surface_id] # Create an OpenCG Surface to represent this OpenMC Surface - name = openmc_surface._name + name = openmc_surface.name # Correct for OpenMC's syntax for Surfaces dividing Cells - boundary = openmc_surface._boundary_type + boundary = openmc_surface.boundary_type if boundary == 'transmission': boundary = 'interface' opencg_surface = None - if openmc_surface._type == 'plane': - A = openmc_surface._coeffs['A'] - B = openmc_surface._coeffs['B'] - C = openmc_surface._coeffs['C'] - D = openmc_surface._coeffs['D'] + if openmc_surface.type == 'plane': + A = openmc_surface.a + B = openmc_surface.b + C = openmc_surface.c + D = openmc_surface.d opencg_surface = opencg.Plane(surface_id, name, boundary, A, B, C, D) - elif openmc_surface._type == 'x-plane': - x0 = openmc_surface._coeffs['x0'] + elif openmc_surface.type == 'x-plane': + x0 = openmc_surface.x0 opencg_surface = opencg.XPlane(surface_id, name, boundary, x0) - elif openmc_surface._type == 'y-plane': - y0 = openmc_surface._coeffs['y0'] + elif openmc_surface.type == 'y-plane': + y0 = openmc_surface.y0 opencg_surface = opencg.YPlane(surface_id, name, boundary, y0) - elif openmc_surface._type == 'z-plane': - z0 = openmc_surface._coeffs['z0'] + elif openmc_surface.type == 'z-plane': + z0 = openmc_surface.z0 opencg_surface = opencg.ZPlane(surface_id, name, boundary, z0) - elif openmc_surface._type == 'x-cylinder': - y0 = openmc_surface._coeffs['y0'] - z0 = openmc_surface._coeffs['z0'] - R = openmc_surface._coeffs['R'] + elif openmc_surface.type == 'x-cylinder': + y0 = openmc_surface.y0 + z0 = openmc_surface.z0 + R = openmc_surface.r opencg_surface = opencg.XCylinder(surface_id, name, boundary, y0, z0, R) - elif openmc_surface._type == 'y-cylinder': - x0 = openmc_surface._coeffs['x0'] - z0 = openmc_surface._coeffs['z0'] - R = openmc_surface._coeffs['R'] + elif openmc_surface.type == 'y-cylinder': + x0 = openmc_surface.x0 + z0 = openmc_surface.z0 + R = openmc_surface.r opencg_surface = opencg.YCylinder(surface_id, name, boundary, x0, z0, R) - elif openmc_surface._type == 'z-cylinder': - x0 = openmc_surface._coeffs['x0'] - y0 = openmc_surface._coeffs['y0'] - R = openmc_surface._coeffs['R'] + elif openmc_surface.type == 'z-cylinder': + x0 = openmc_surface.x0 + y0 = openmc_surface.y0 + R = openmc_surface.r opencg_surface = opencg.ZCylinder(surface_id, name, boundary, x0, y0, R) @@ -282,61 +282,61 @@ def get_openmc_surface(opencg_surface): raise ValueError(msg) global openmc_surface - surface_id = opencg_surface._id + surface_id = opencg_surface.id # If this Surface was already created, use it if surface_id in OPENMC_SURFACES: return OPENMC_SURFACES[surface_id] # Create an OpenMC Surface to represent this OpenCG Surface - name = opencg_surface._name + name = opencg_surface.name # Correct for OpenMC's syntax for Surfaces dividing Cells - boundary = opencg_surface._boundary_type + boundary = opencg_surface.boundary_type if boundary == 'interface': boundary = 'transmission' - if opencg_surface._type == 'plane': - A = opencg_surface._coeffs['A'] - B = opencg_surface._coeffs['B'] - C = opencg_surface._coeffs['C'] - D = opencg_surface._coeffs['D'] + if opencg_surface.type == 'plane': + A = opencg_surface.a + B = opencg_surface.b + C = opencg_surface.c + D = opencg_surface.d openmc_surface = openmc.Plane(surface_id, boundary, A, B, C, D, name) - elif opencg_surface._type == 'x-plane': - x0 = opencg_surface._coeffs['x0'] + elif opencg_surface.type == 'x-plane': + x0 = opencg_surface.x0 openmc_surface = openmc.XPlane(surface_id, boundary, x0, name) - elif opencg_surface._type == 'y-plane': - y0 = opencg_surface._coeffs['y0'] + elif opencg_surface.type == 'y-plane': + y0 = opencg_surface.y0 openmc_surface = openmc.YPlane(surface_id, boundary, y0, name) - elif opencg_surface._type == 'z-plane': - z0 = opencg_surface._coeffs['z0'] + elif opencg_surface.type == 'z-plane': + z0 = opencg_surface.z0 openmc_surface = openmc.ZPlane(surface_id, boundary, z0, name) - elif opencg_surface._type == 'x-cylinder': - y0 = opencg_surface._coeffs['y0'] - z0 = opencg_surface._coeffs['z0'] - R = opencg_surface._coeffs['R'] + elif opencg_surface.type == 'x-cylinder': + y0 = opencg_surface.y0 + z0 = opencg_surface.z0 + R = opencg_surface.r openmc_surface = openmc.XCylinder(surface_id, boundary, y0, z0, R, name) - elif opencg_surface._type == 'y-cylinder': - x0 = opencg_surface._coeffs['x0'] - z0 = opencg_surface._coeffs['z0'] - R = opencg_surface._coeffs['R'] + elif opencg_surface.type == 'y-cylinder': + x0 = opencg_surface.x0 + z0 = opencg_surface.z0 + R = opencg_surface.r openmc_surface = openmc.YCylinder(surface_id, boundary, x0, z0, R, name) - elif opencg_surface._type == 'z-cylinder': - x0 = opencg_surface._coeffs['x0'] - y0 = opencg_surface._coeffs['y0'] - R = opencg_surface._coeffs['R'] + elif opencg_surface.type == 'z-cylinder': + x0 = opencg_surface.x0 + y0 = opencg_surface.y0 + R = opencg_surface.r openmc_surface = openmc.ZCylinder(surface_id, boundary, x0, y0, R, name) else: msg = 'Unable to create an OpenMC Surface from an OpenCG ' \ 'Surface of type "{0}" since it is not a compatible ' \ - 'Surface type in OpenMC'.format(opencg_surface._type) + 'Surface type in OpenMC'.format(opencg_surface.type) raise ValueError(msg) # Add the OpenMC Surface to the global collection of all OpenMC Surfaces @@ -373,20 +373,20 @@ def get_compatible_opencg_surfaces(opencg_surface): raise ValueError(msg) global OPENMC_SURFACES - surface_id = opencg_surface._id + surface_id = opencg_surface.id # If this Surface was already created, use it if surface_id in OPENMC_SURFACES: return OPENMC_SURFACES[surface_id] # Create an OpenMC Surface to represent this OpenCG Surface - name = opencg_surface._name - boundary = opencg_surface._boundary_type + name = opencg_surface.name + boundary = opencg_surface.boundary_type - if opencg_surface._type == 'x-squareprism': - y0 = opencg_surface._coeffs['y0'] - z0 = opencg_surface._coeffs['z0'] - R = opencg_surface._coeffs['R'] + if opencg_surface.type == 'x-squareprism': + y0 = opencg_surface.y0 + z0 = opencg_surface.z0 + R = opencg_surface.r # Create a list of the four planes we need left = opencg.YPlane(name=name, boundary=boundary, y0=y0-R) @@ -395,10 +395,10 @@ def get_compatible_opencg_surfaces(opencg_surface): top = opencg.ZPlane(name=name, boundary=boundary, z0=z0+R) surfaces = [left, right, bottom, top] - elif opencg_surface._type == 'y-squareprism': - x0 = opencg_surface._coeffs['x0'] - z0 = opencg_surface._coeffs['z0'] - R = opencg_surface._coeffs['R'] + elif opencg_surface.type == 'y-squareprism': + x0 = opencg_surface.x0 + z0 = opencg_surface.z0 + R = opencg_surface.r # Create a list of the four planes we need left = opencg.XPlane(name=name, boundary=boundary, x0=x0-R) @@ -407,10 +407,10 @@ def get_compatible_opencg_surfaces(opencg_surface): top = opencg.ZPlane(name=name, boundary=boundary, z0=z0+R) surfaces = [left, right, bottom, top] - elif opencg_surface._type == 'z-squareprism': - x0 = opencg_surface._coeffs['x0'] - y0 = opencg_surface._coeffs['y0'] - R = opencg_surface._coeffs['R'] + elif opencg_surface.type == 'z-squareprism': + x0 = opencg_surface.x0['x0'] + y0 = opencg_surface.y0['y0'] + R = opencg_surface.r['R'] # Create a list of the four planes we need left = opencg.XPlane(name=name, boundary=boundary, x0=x0-R) @@ -422,7 +422,7 @@ def get_compatible_opencg_surfaces(opencg_surface): else: msg = 'Unable to create a compatible OpenMC Surface an OpenCG ' \ 'Surface of type "{0}" since it already a compatible ' \ - 'Surface type in OpenMC'.format(opencg_surface._type) + 'Surface type in OpenMC'.format(opencg_surface.type) raise ValueError(msg) # Add the OpenMC Surface(s) to the global collection of all OpenMC Surfaces @@ -455,37 +455,37 @@ def get_opencg_cell(openmc_cell): raise ValueError(msg) global OPENCG_CELLS - cell_id = openmc_cell._id + cell_id = openmc_cell.id # If this Cell was already created, use it if cell_id in OPENCG_CELLS: return OPENCG_CELLS[cell_id] # Create an OpenCG Cell to represent this OpenMC Cell - name = openmc_cell._name + name = openmc_cell.name opencg_cell = opencg.Cell(cell_id, name) - fill = openmc_cell._fill + fill = openmc_cell.fill - if (openmc_cell._type == 'normal'): - opencg_cell.setFill(get_opencg_material(fill)) - elif (openmc_cell._type == 'fill'): - opencg_cell.setFill(get_opencg_universe(fill)) + if (openmc_cell.fill_type == 'material'): + opencg_cell.fill = get_opencg_material(fill) + elif (openmc_cell.fill_type == 'universe'): + opencg_cell.fill = get_opencg_universe(fill) else: - opencg_cell.setFill(get_opencg_lattice(fill)) + opencg_cell.fill = get_opencg_lattice(fill) - if openmc_cell._rotation is not None: - opencg_cell.setRotation(openmc_cell._rotation) + if openmc_cell.rotation is not None: + opencg_cell.rotation = openmc_cell.rotation - if openmc_cell._translation is not None: - opencg_cell.setTranslation(openmc_cell._translation) + if openmc_cell.translation is not None: + opencg_cell.translation = openmc_cell.translation - surfaces = openmc_cell._surfaces + surfaces = openmc_cell.surfaces for surface_id in surfaces: surface = surfaces[surface_id][0] halfspace = surfaces[surface_id][1] - opencg_cell.addSurface(get_opencg_surface(surface), halfspace) + opencg_cell.add_surface(get_opencg_surface(surface), halfspace) # Add the OpenMC Cell to the global collection of all OpenMC Cells OPENMC_CELLS[cell_id] = openmc_cell @@ -536,8 +536,8 @@ def get_compatible_opencg_cells(opencg_cell, opencg_surface, halfspace): compatible_cells = [] # SquarePrism Surfaces - if opencg_surface._type in ['x-squareprism', 'y-squareprism', - 'z-squareprism']: + if opencg_surface.type in ['x-squareprism', 'y-squareprism', + 'z-squareprism']: # Get the compatible Surfaces (XPlanes and YPlanes) compatible_surfaces = get_compatible_opencg_surfaces(opencg_surface) @@ -546,10 +546,10 @@ def get_compatible_opencg_cells(opencg_cell, opencg_surface, halfspace): # If Cell is inside SquarePrism, add "inside" of Surface halfspaces if halfspace == -1: - opencg_cell.addSurface(compatible_surfaces[0], +1) - opencg_cell.addSurface(compatible_surfaces[1], -1) - opencg_cell.addSurface(compatible_surfaces[2], +1) - opencg_cell.addSurface(compatible_surfaces[3], -1) + opencg_cell.add_surface(compatible_surfaces[0], +1) + opencg_cell.add_surface(compatible_surfaces[1], -1) + opencg_cell.add_surface(compatible_surfaces[2], +1) + opencg_cell.add_surface(compatible_surfaces[3], -1) compatible_cells.append(opencg_cell) # If Cell is outside SquarePrism, add "outside" of Surface halfspaces @@ -631,12 +631,12 @@ def make_opencg_cells_compatible(opencg_universe): raise ValueError(msg) # Check all OpenCG Cells in this Universe for compatibility with OpenMC - opencg_cells = opencg_universe._cells + opencg_cells = opencg_universe.cells for cell_id, opencg_cell in opencg_cells.items(): # Check each of the OpenCG Surfaces for OpenMC compatibility - surfaces = opencg_cell._surfaces + surfaces = opencg_cell.surfaces for surface_id in surfaces: surface = surfaces[surface_id][0] @@ -659,7 +659,7 @@ def make_opencg_cells_compatible(opencg_universe): opencg_universe.removeCell(opencg_cell) # Add the compatible OpenCG Cells to the Universe - opencg_universe.addCells(cells) + opencg_universe.add_cells(cells) # Make recursive call to look at the updated state of the # OpenCG Universe and return @@ -690,34 +690,34 @@ def get_openmc_cell(opencg_cell): raise ValueError(msg) global OPENMC_CELLS - cell_id = opencg_cell._id + cell_id = opencg_cell.id # If this Cell was already created, use it if cell_id in OPENMC_CELLS: return OPENMC_CELLS[cell_id] # Create an OpenCG Cell to represent this OpenMC Cell - name = opencg_cell._name + name = opencg_cell.name openmc_cell = openmc.Cell(cell_id, name) - fill = opencg_cell._fill + fill = opencg_cell.fill - if (opencg_cell._type == 'universe'): + if (opencg_cell.type == 'universe'): openmc_cell.fill = get_openmc_universe(fill) - elif (opencg_cell._type == 'lattice'): + elif (opencg_cell.type == 'lattice'): openmc_cell.fill = get_openmc_lattice(fill) else: openmc_cell.fill = get_openmc_material(fill) - if opencg_cell._rotation: - rotation = np.asarray(opencg_cell._rotation, dtype=np.int) + if opencg_cell.rotation: + rotation = np.asarray(opencg_cell.rotation, dtype=np.int) openmc_cell.rotation = rotation - if opencg_cell._translation: - translation = np.asarray(opencg_cell._translation, dtype=np.float64) - openmc_cell.setTranslation(translation) + if opencg_cell.translation: + translation = np.asarray(opencg_cell.translation, dtype=np.float64) + openmc_cell.translation = translation - surfaces = opencg_cell._surfaces + surfaces = opencg_cell.surfaces for surface_id in surfaces: surface = surfaces[surface_id][0] @@ -754,22 +754,22 @@ def get_opencg_universe(openmc_universe): raise ValueError(msg) global OPENCG_UNIVERSES - universe_id = openmc_universe._id + universe_id = openmc_universe.id # If this Universe was already created, use it if universe_id in OPENCG_UNIVERSES: return OPENCG_UNIVERSES[universe_id] # Create an OpenCG Universe to represent this OpenMC Universe - name = openmc_universe._name + name = openmc_universe.name opencg_universe = opencg.Universe(universe_id, name) # Convert all OpenMC Cells in this Universe to OpenCG Cells - openmc_cells = openmc_universe._cells + openmc_cells = openmc_universe.cells for cell_id, openmc_cell in openmc_cells.items(): opencg_cell = get_opencg_cell(openmc_cell) - opencg_universe.addCell(opencg_cell) + opencg_universe.add_cell(opencg_cell) # Add the OpenMC Universe to the global collection of all OpenMC Universes OPENMC_UNIVERSES[universe_id] = openmc_universe @@ -801,7 +801,7 @@ def get_openmc_universe(opencg_universe): raise ValueError(msg) global OPENMC_UNIVERSES - universe_id = opencg_universe._id + universe_id = opencg_universe.id # If this Universe was already created, use it if universe_id in OPENMC_UNIVERSES: @@ -811,11 +811,11 @@ def get_openmc_universe(opencg_universe): make_opencg_cells_compatible(opencg_universe) # Create an OpenMC Universe to represent this OpenCSg Universe - name = opencg_universe._name + name = opencg_universe.name openmc_universe = openmc.Universe(universe_id, name) # Convert all OpenCG Cells in this Universe to OpenMC Cells - opencg_cells = opencg_universe._cells + opencg_cells = opencg_universe.cells for cell_id, opencg_cell in opencg_cells.items(): openmc_cell = get_openmc_cell(opencg_cell) @@ -851,7 +851,7 @@ def get_opencg_lattice(openmc_lattice): raise ValueError(msg) global OPENCG_LATTICES - lattice_id = openmc_lattice._id + lattice_id = openmc_lattice.id # If this Lattice was already created, use it if lattice_id in OPENCG_LATTICES: @@ -888,18 +888,18 @@ def get_opencg_lattice(openmc_lattice): for z in range(dimension[2]): for y in range(dimension[1]): for x in range(dimension[0]): - universe_id = universes[x][dimension[1]-y-1][z]._id + universe_id = universes[x][dimension[1]-y-1][z].id universe_array[z][y][x] = unique_universes[universe_id] opencg_lattice = opencg.Lattice(lattice_id, name) - opencg_lattice.setDimension(dimension) - opencg_lattice.setWidth(pitch) - opencg_lattice.setUniverses(universe_array) + opencg_lattice.dimension = dimension + opencg_lattice.width = pitch + opencg_lattice.universes = universe_array offset = np.array(lower_left, dtype=np.float64) - \ ((np.array(pitch, dtype=np.float64) * np.array(dimension, dtype=np.float64))) / -2.0 - opencg_lattice.setOffset(offset) + opencg_lattice.offset = offset # Add the OpenMC Lattice to the global collection of all OpenMC Lattices OPENMC_LATTICES[lattice_id] = openmc_lattice @@ -931,23 +931,23 @@ def get_openmc_lattice(opencg_lattice): raise ValueError(msg) global OPENMC_LATTICES - lattice_id = opencg_lattice._id + lattice_id = opencg_lattice.id # If this Lattice was already created, use it if lattice_id in OPENMC_LATTICES: return OPENMC_LATTICES[lattice_id] - dimension = opencg_lattice._dimension - width = opencg_lattice._width - offset = opencg_lattice._offset - universes = opencg_lattice._universes + dimension = opencg_lattice.dimension + width = opencg_lattice.width + offset = opencg_lattice.offset + universes = opencg_lattice.universes # Initialize an empty array for the OpenMC nested Universes in this Lattice universe_array = np.ndarray(tuple(np.array(dimension)), dtype=openmc.Universe) # Create OpenMC Universes for each unique nested Universe in this Lattice - unique_universes = opencg_lattice.getUniqueUniverses() + unique_universes = opencg_lattice.get_unique_universes() for universe_id, universe in unique_universes.items(): unique_universes[universe_id] = get_openmc_universe(universe) @@ -956,7 +956,7 @@ def get_openmc_lattice(opencg_lattice): for z in range(dimension[2]): for y in range(dimension[1]): for x in range(dimension[0]): - universe_id = universes[z][y][x]._id + universe_id = universes[z][y][x].id universe_array[x][y][z] = unique_universes[universe_id] # Reverse y-dimension in array to match ordering in OpenCG @@ -1011,12 +1011,12 @@ def get_opencg_geometry(openmc_geometry): OPENMC_LATTICES.clear() OPENCG_LATTICES.clear() - openmc_root_universe = openmc_geometry._root_universe + openmc_root_universe = openmc_geometry.root_universe opencg_root_universe = get_opencg_universe(openmc_root_universe) opencg_geometry = opencg.Geometry() - opencg_geometry.setRootUniverse(opencg_root_universe) - opencg_geometry.initializeCellOffsets() + opencg_geometry.root_universe = opencg_root_universe + opencg_geometry.initialize_cell_offsets() return opencg_geometry @@ -1043,11 +1043,11 @@ def get_openmc_geometry(opencg_geometry): # Deep copy the goemetry since it may be modified to make all Surfaces # compatible with OpenMC's specifications - opencg_geometry.assignAutoIds() + opencg_geometry.assign_auto_ids() opencg_geometry = copy.deepcopy(opencg_geometry) # Update Cell bounding boxes in Geometry - opencg_geometry.updateBoundingBoxes() + opencg_geometry.update_bounding_boxes() # Clear dictionaries and auto-generated ID OPENMC_SURFACES.clear() @@ -1060,14 +1060,14 @@ def get_openmc_geometry(opencg_geometry): OPENCG_LATTICES.clear() # Make the entire geometry "compatible" before assigning auto IDs - universes = opencg_geometry.getAllUniverses() + universes = opencg_geometry.get_all_universes() for universe_id, universe in universes.items(): if not isinstance(universe, opencg.Lattice): make_opencg_cells_compatible(universe) - opencg_geometry.assignAutoIds() + opencg_geometry.assign_auto_ids() - opencg_root_universe = opencg_geometry._root_universe + opencg_root_universe = opencg_geometry.root_universe openmc_root_universe = get_openmc_universe(opencg_root_universe) openmc_geometry = openmc.Geometry() diff --git a/openmc/statepoint.py b/openmc/statepoint.py index 133bd766c..55abf010a 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -33,42 +33,42 @@ class StatePoint(object): each batch cmfd_src : ndarray CMFD fission source distribution over all mesh cells and energy groups. - current_batch : int + current_batch : Integral Number of batches simulated date_and_time : str Date and time when simulation began entropy : ndarray Shannon entropy of fission source at each batch - gen_per_batch : int + gen_per_batch : Integral Number of fission generations per batch global_tallies : ndarray of compound datatype Global tallies for k-effective estimates and leakage. The compound datatype has fields 'name', 'sum', 'sum_sq', 'mean', and 'std_dev'. k_combined : list Combined estimator for k-effective and its uncertainty - k_col_abs : float + k_col_abs : Real Cross-product of collision and absorption estimates of k-effective - k_col_tra : float + k_col_tra : Real Cross-product of collision and tracklength estimates of k-effective - k_abs_tra : float + k_abs_tra : Real Cross-product of absorption and tracklength estimates of k-effective k_generation : ndarray Estimate of k-effective for each batch/generation meshes : dict Dictionary whose keys are mesh IDs and whose values are Mesh objects - n_batches : int + n_batches : Integral Number of batches - n_inactive : int + n_inactive : Integral Number of inactive batches - n_particles : int + n_particles : Integral Number of particles per generation - n_realizations : int + n_realizations : Integral Number of tally realizations path : str Working directory for simulation run_mode : str Simulation run mode, e.g. 'k-eigenvalue' - seed : int + seed : Integral Pseudorandom number generator seed source : ndarray of compound datatype Array of source sites. The compound datatype has fields 'wgt', 'xyz', @@ -80,10 +80,10 @@ class StatePoint(object): Dictionary whose keys are tally IDs and whose values are Tally objects tallies_present : bool Indicate whether user-defined tallies are present - version: tuple of int + version: tuple of Integral Version of OpenMC - with_summary : bool - Indicate whether statepoint data has been linked against a summary file + summary : None or openmc.summary.Summary + A summary object if the statepoint has been linked with a summary file """ @@ -104,7 +104,7 @@ class StatePoint(object): # Set flags for what data has been read self._meshes_read = False self._tallies_read = False - self._with_summary = False + self._summary = False self._global_tallies = None def close(self): @@ -457,16 +457,23 @@ class StatePoint(object): self._f['version_minor'].value, self._f['version_release'].value) + @property + def summary(self): + return self._summary + @property def with_summary(self): - return self._with_summary + if self.summary is None: + return False + else: + return True def get_tally(self, scores=[], filters=[], nuclides=[], name=None, id=None, estimator=None): """Finds and returns a Tally object with certain properties. This routine searches the list of Tallies and returns the first Tally - found it finds which satisfies all of the input parameters. + found which satisfies all of the input parameters. NOTE: The input parameters do not need to match the complete Tally specification and may only represent a subset of the Tally's properties. @@ -480,7 +487,7 @@ class StatePoint(object): A list of Nuclide objects (default is []). name : str, optional The name specified for the Tally (default is None). - id : int, optional + id : Integral, optional The id specified for the Tally (default is None). estimator: str, optional The type of estimator ('tracklength', 'analog'; default is None). @@ -534,8 +541,16 @@ class StatePoint(object): # Iterate over the Filters requested by the user for filter in filters: - if filter not in test_tally.filters: - contains_filters = False + contains_filters = False + + # Test if requested filter is a subset of any of the test + # tally's filters and if so continue to next filter + for test_filter in test_tally.filters: + if test_filter.is_subset(filter): + contains_filters = True + break + + if not contains_filters: break if not contains_filters: @@ -622,4 +637,4 @@ class StatePoint(object): material_ids.append(summary.materials[bin].id) filter.bins = material_ids - self._with_summary = True + self._summary = summary diff --git a/openmc/summary.py b/openmc/summary.py index 2ae746484..15da2784a 100644 --- a/openmc/summary.py +++ b/openmc/summary.py @@ -72,6 +72,9 @@ class Summary(object): nuc_densities = self._f['materials'][key]['nuclide_densities'][...] nuclides = self._f['materials'][key]['nuclides'].value + # Create the Material + material = openmc.Material(material_id=material_id, name=name) + # Read the names of the S(a,b) tables for this Material and add them if 'sab_names' in self._f['materials'][key]: sab_tables = self._f['materials'][key]['sab_names'].value @@ -79,11 +82,8 @@ class Summary(object): name, xs = sab_table.decode().split('.') material.add_s_alpha_beta(name, xs) - # Create the Material - material = openmc.Material(material_id=material_id, name=name) - - # Set the Material's density to g/cm3 - this is what is used in OpenMC - material.set_density(density=density, units='g/cm3') + # Set the Material's density to atom/b-cm as used by OpenMC + material.set_density(density=density, units='atom/b-cm') # Add all nuclides to the Material for fullname, density in zip(nuclides, nuc_densities): diff --git a/openmc/surface.py b/openmc/surface.py index 653754d30..063787ce3 100644 --- a/openmc/surface.py +++ b/openmc/surface.py @@ -101,8 +101,11 @@ class Surface(object): @name.setter def name(self, name): - check_type('surface name', name, basestring) - self._name = name + if name is not None: + check_type('surface name', name, basestring) + self._name = name + else: + self._name = None @boundary_type.setter def boundary_type(self, boundary_type): @@ -272,7 +275,7 @@ class XPlane(Plane): @property def x0(self): - return self.coeff['x0'] + return self.coeffs['x0'] @x0.setter def x0(self, x0): diff --git a/openmc/tallies.py b/openmc/tallies.py index 20a6af3f2..0bfdc299a 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -1,4 +1,4 @@ -from collections import Iterable +from collections import Iterable, defaultdict import copy import os import pickle @@ -11,8 +11,8 @@ import numpy as np from openmc import Mesh, Filter, Trigger, Nuclide from openmc.cross import CrossScore, CrossNuclide, CrossFilter -from openmc.summary import Summary -from openmc.checkvalue import check_type, check_value, check_greater_than +from openmc.filter import _FILTER_TYPES +import openmc.checkvalue as cv from openmc.clean_xml import * @@ -34,7 +34,7 @@ class Tally(object): Parameters ---------- - tally_id : int, optional + tally_id : Integral, optional Unique identifier for the tally. If none is specified, an identifier will automatically be assigned name : str, optional @@ -42,7 +42,7 @@ class Tally(object): Attributes ---------- - id : int + id : Integral Unique identifier for the tally name : str Name of the tally @@ -56,17 +56,17 @@ class Tally(object): Type of estimator for the tally triggers : list of openmc.trigger.Trigger List of tally triggers - num_score_bins : int + num_score_bins : Integral Total number of scores, accounting for the fact that a single user-specified score, e.g. scatter-P3 or flux-Y2,2, might have multiple bins - num_scores : int + num_scores : Integral Total number of user-specified scores - num_filter_bins : int + num_filter_bins : Integral Total number of filter bins accounting for all filters - num_bins : int + num_bins : Integral Total number of bins for the tally - num_realizations : int + num_realizations : Integral Total number of realizations with_summary : bool Whether or not a Summary has been linked @@ -117,10 +117,10 @@ class Tally(object): clone.estimator = self.estimator clone.num_score_bins = self.num_score_bins clone.num_realizations = self.num_realizations - clone._sum = copy.deepcopy(self.sum, memo) - clone._sum_sq = copy.deepcopy(self.sum_sq, memo) - clone._mean = copy.deepcopy(self.mean, memo) - clone._std_dev = copy.deepcopy(self.std_dev, memo) + clone._sum = copy.deepcopy(self._sum, memo) + clone._sum_sq = copy.deepcopy(self._sum_sq, memo) + clone._mean = copy.deepcopy(self._mean, memo) + clone._std_dev = copy.deepcopy(self._std_dev, memo) clone._with_summary = self.with_summary clone._with_batch_statistics = self.with_batch_statistics clone._derived = self.derived @@ -151,36 +151,42 @@ class Tally(object): else: return existing - def __eq__(self, tally2): + def __eq__(self, other): + if not isinstance(other, Tally): + return False + # Check all filters - if len(self.filters) != len(tally2.filters): + if len(self.filters) != len(other.filters): return False for filter in self.filters: - if filter not in tally2.filters: + if filter not in other.filters: return False # Check all nuclides - if len(self.nuclides) != len(tally2.nuclides): + if len(self.nuclides) != len(other.nuclides): return False for nuclide in self.nuclides: - if nuclide not in tally2.nuclides: + if nuclide not in other.nuclides: return False # Check all scores - if len(self.scores) != len(tally2.scores): + if len(self.scores) != len(other.scores): return False for score in self.scores: - if score not in tally2.scores: + if score not in other.scores: return False - if self.estimator != tally2.estimator: + if self.estimator != other.estimator: return False return True + def __ne__(self, other): + return not self == other + def __hash__(self): hashable = [] @@ -234,7 +240,7 @@ class Tally(object): def num_filter_bins(self): num_bins = 1 - for filter in self._filters: + for filter in self.filters: num_bins *= filter.num_bins return num_bins @@ -339,7 +345,7 @@ class Tally(object): @estimator.setter def estimator(self, estimator): - check_value('estimator', estimator, + cv.check_value('estimator', estimator, ['analog', 'tracklength', 'collision']) self._estimator = estimator @@ -367,14 +373,17 @@ class Tally(object): self._id = AUTO_TALLY_ID AUTO_TALLY_ID += 1 else: - check_type('tally ID', tally_id, Integral) - check_greater_than('tally ID', tally_id, 0) + cv.check_type('tally ID', tally_id, Integral) + cv.check_greater_than('tally ID', tally_id, 0) self._id = tally_id @name.setter def name(self, name): - check_type('tally name', name, basestring) - self._name = name + if name is not None: + cv.check_type('tally name', name, basestring) + self._name = name + else: + self._name = None def add_filter(self, filter): """Add a filter to the tally @@ -432,28 +441,28 @@ class Tally(object): @num_realizations.setter def num_realizations(self, num_realizations): - check_type('number of realizations', num_realizations, Integral) - check_greater_than('number of realizations', num_realizations, 0, True) + cv.check_type('number of realizations', num_realizations, Integral) + cv.check_greater_than('number of realizations', num_realizations, 0, True) self._num_realizations = num_realizations @with_summary.setter def with_summary(self, with_summary): - check_type('with_summary', with_summary, bool) + cv.check_type('with_summary', with_summary, bool) self._with_summary = with_summary @with_batch_statistics.setter def with_batch_statistics(self, with_batch_statistics): - check_type('with_batch_statistics', with_batch_statistics, bool) + cv.check_type('with_batch_statistics', with_batch_statistics, bool) self._with_batch_statistics = with_batch_statistics @sum.setter def sum(self, sum): - check_type('sum', sum, Iterable) + cv.check_type('sum', sum, Iterable) self._sum = sum @sum_sq.setter def sum_sq(self, sum_sq): - check_type('sum_sq', sum_sq, Iterable) + cv.check_type('sum_sq', sum_sq, Iterable) self._sum_sq = sum_sq def remove_score(self, score): @@ -733,8 +742,7 @@ class Tally(object): ---------- filter_type : str The type of Filter (e.g., 'cell', 'energy', etc.) - - filter_bin : int, list + filter_bin : Integral or tuple The bin is an integer ID for 'material', 'surface', 'cell', 'cellborn', and 'universe' Filters. The bin is an integer for the cell instance ID for 'distribcell' Filters. The bin is a 2-tuple of @@ -832,40 +840,199 @@ class Tally(object): return score_index - def get_values(self, scores=[], filters=[], filter_bins=[], - nuclides=[], value='mean'): - """Returns a tally score value given a list of filters to satisfy. + def get_filter_indices(self, filters=[], filter_bins=[]): + """Get indices into the filter axis of this tally's data arrays. - This method constructs a 3D NumPy array for the requested Tally data - indexed by filter bin, nuclide bin, and score index. The method will - order the data in the array as specified in the parameter lists + This is a helper method for the Tally.get_values(...) method to + extract tally data. This method returns the indices into the filter + axis of the tally's data array (axis=0) for particular combinations + of filters and their corresponding bins. Parameters ---------- - scores : list - A list of one or more score strings - (e.g., ['absorption', 'nu-fission']; default is []) - - filters : list + filters : list of str A list of filter type strings (e.g., ['mesh', 'energy']; default is []) - filter_bins : list of Iterables A list of the filter bins corresponding to the filter_types parameter (e.g., [(1,), (0., 0.625e-6)]; default is []). Each bin in the list is the integer ID for 'material', 'surface', 'cell', 'cellborn', and 'universe' Filters. Each bin is an integer for the - cell instance ID for 'distribcell Filters. Each bin is a 2-tuple of + cell instance ID for 'distribcell' Filters. Each bin is a 2-tuple of floats for 'energy' and 'energyout' filters corresponding to the energy boundaries of the bin of interest. The bin is a (x,y,z) 3-tuple for 'mesh' filters corresponding to the mesh cell of - interest. The order of the bins in the list must correspond of the + interest. The order of the bins in the list must correspond to the filter_types parameter. - nuclides : list + Returns + ------- + ndarray + A NumPy array of the filter indices + + """ + + cv.check_iterable_type('filters', filters, basestring) + cv.check_iterable_type('filter_bins', filter_bins, tuple) + + # Determine the score indices from any of the requested scores + if filters: + # Initialize empty list of indices for each bin in each Filter + filter_indices = [] + + # Loop over all of the Tally's Filters + for i, filter in enumerate(self.filters): + user_filter = False + + # If a user-requested Filter, get the user-requested bins + for j, test_filter in enumerate(filters): + if filter.type == test_filter: + bins = filter_bins[j] + user_filter = True + break + + # If not a user-requested Filter, get all bins + if not user_filter: + # Create list of 2- or 3-tuples tuples for mesh cell bins + if filter.type == 'mesh': + dimension = filter.mesh.dimension + xyz = map(lambda x: np.arange(1, x+1), dimension) + bins = list(itertools.product(*xyz)) + + # Create list of 2-tuples for energy boundary bins + elif filter.type in ['energy', 'energyout']: + bins = [] + for k in range(filter.num_bins): + bins.append((filter.bins[k], filter.bins[k+1])) + + # Create list of cell instance IDs for distribcell Filters + elif filter.type == 'distribcell': + bins = np.arange(filter.num_bins) + + # Create list of IDs for bins for all other filter types + else: + bins = filter.bins + + # Initialize a NumPy array for the Filter bin indices + filter_indices.append(np.zeros(len(bins), dtype=np.int)) + + # Add indices for each bin in this Filter to the list + for j, bin in enumerate(bins): + filter_index = self.get_filter_index(filter.type, bin) + filter_indices[i][j] = filter_index + + # Account for stride in each of the previous filters + for indices in filter_indices[:i]: + indices *= filter.num_bins + + # Apply outer product sum between all filter bin indices + filter_indices = list(map(sum, itertools.product(*filter_indices))) + + # If user did not specify any specific Filters, use them all + else: + filter_indices = np.arange(self.num_filter_bins) + + return filter_indices + + def get_nuclide_indices(self, nuclides): + """Get indices into the nuclide axis of this tally's data arrays. + + This is a helper method for the Tally.get_values(...) method to + extract tally data. This method returns the indices into the nuclide + axis of the tally's data array (axis=1) for one or more nuclides. + + Parameters + ---------- + nuclides : list of str A list of nuclide name strings (e.g., ['U-235', 'U-238']; default is []) + Returns + ------- + ndarray + A NumPy array of the nuclide indices + + """ + + cv.check_iterable_type('nuclides', nuclides, basestring) + + # Determine the score indices from any of the requested scores + if nuclides: + nuclide_indices = np.zeros(len(nuclides), dtype=np.int) + for i, nuclide in enumerate(nuclides): + nuclide_indices[i] = self.get_nuclide_index(nuclide) + + # If user did not specify any specific Nuclides, use them all + else: + nuclide_indices = np.arange(self.num_nuclides) + + return nuclide_indices + + def get_score_indices(self, scores): + """Get indices into the score axis of this tally's data arrays. + + This is a helper method for the Tally.get_values(...) method to + extract tally data. This method returns the indices into the score + axis of the tally's data array (axis=2) for one or more scores. + + Parameters + ---------- + scores : list of str + A list of one or more score strings + (e.g., ['absorption', 'nu-fission']; default is []) + + Returns + ------- + ndarray + A NumPy array of the score indices + + """ + + cv.check_iterable_type('scores', scores, basestring) + + # Determine the score indices from any of the requested scores + if scores: + score_indices = np.zeros(len(scores), dtype=np.int) + for i, score in enumerate(scores): + score_indices[i] = self.get_score_index(score) + + # If user did not specify any specific scores, use them all + else: + score_indices = np.arange(self.num_scores) + + return score_indices + + def get_values(self, scores=[], filters=[], filter_bins=[], + nuclides=[], value='mean'): + """Returns one or more tallied values given a list of scores, filters, + filter bins and nuclides. + + This method constructs a 3D NumPy array for the requested Tally data + indexed by filter bin, nuclide bin, and score index. The method will + order the data in the array as specified in the parameter lists. + + Parameters + ---------- + scores : list of str + A list of one or more score strings + (e.g., ['absorption', 'nu-fission']; default is []) + filters : list of str + A list of filter type strings + (e.g., ['mesh', 'energy']; default is []) + filter_bins : list of Iterables + A list of the filter bins corresponding to the filter_types + parameter (e.g., [(1,), (0., 0.625e-6)]; default is []). Each bin + in the list is the integer ID for 'material', 'surface', 'cell', + 'cellborn', and 'universe' Filters. Each bin is an integer for the + cell instance ID for 'distribcell' Filters. Each bin is a 2-tuple of + floats for 'energy' and 'energyout' filters corresponding to the + energy boundaries of the bin of interest. The bin is a (x,y,z) + 3-tuple for 'mesh' filters corresponding to the mesh cell of + interest. The order of the bins in the list must correspond to the + filter_types parameter. + nuclides : list of str + A list of nuclide name strings + (e.g., ['U-235', 'U-238']; default is []) value : str A string for the type of value to return - 'mean' (default), 'std_dev', 'rel_err', 'sum', or 'sum_sq' are accepted @@ -897,81 +1064,10 @@ class Tally(object): 'Tally.get_values(...)'.format(self.id) raise ValueError(msg) - ############################ FILTERS ######################### - # Determine the score indices from any of the requested scores - if filters: - # Initialize empty list of indices for each bin in each Filter - filter_indices = [] - - # Loop over all of the Tally's Filters - for i, filter in enumerate(self.filters): - user_filter = False - - # If a user-requested Filter, get the user-requested bins - for j, test_filter in enumerate(filters): - if filter.type == test_filter: - bins = filter_bins[j] - user_filter = True - break - - # If not a user-requested Filter, get all bins - if not user_filter: - # Create list of 2- or 3-tuples tuples for mesh cell bins - if filter.type == 'mesh': - dimension = filter.mesh.dimension - xyz = map(lambda x: np.arange(1, x+1), dimension) - bins = list(itertools.product(*xyz)) - - # Create list of 2-tuples for energy boundary bins - elif filter.type in ['energy', 'energyout']: - bins = [] - for k in range(filter.num_bins): - bins.append((filter.bins[k], filter.bins[k+1])) - - # Create list of IDs for bins for all other Filter types - else: - bins = filter.bins - - # Initialize a NumPy array for the Filter bin indices - filter_indices.append(np.zeros(len(bins), dtype=np.int)) - - # Add indices for each bin in this Filter to the list - for j, bin in enumerate(bins): - filter_index = self.get_filter_index(filter.type, bin) - filter_indices[i][j] = filter_index - - # Account for stride in each of the previous filters - for indices in filter_indices[:i]: - indices *= filter.num_bins - - # Apply outer product sum between all filter bin indices - filter_indices = list(map(sum, itertools.product(*filter_indices))) - - # If user did not specify any specific Filters, use them all - else: - filter_indices = np.arange(self.num_filter_bins) - - ############################ NUCLIDES ######################## - # Determine the score indices from any of the requested scores - if nuclides: - nuclide_indices = np.zeros(len(nuclides), dtype=np.int) - for i, nuclide in enumerate(nuclides): - nuclide_indices[i] = self.get_nuclide_index(nuclide) - - # If user did not specify any specific Nuclides, use them all - else: - nuclide_indices = np.arange(self.num_nuclides) - - ############################# SCORES ######################### - # Determine the score indices from any of the requested scores - if scores: - score_indices = np.zeros(len(scores), dtype=np.int) - for i, score in enumerate(scores): - score_indices[i] = self.get_score_index(score) - - # If user did not specify any specific scores, use them all - else: - score_indices = np.arange(self.num_scores) + # Get filter, nuclide and score indices + filter_indices = self.get_filter_indices(filters, filter_bins) + nuclide_indices = self.get_nuclide_indices(nuclides) + score_indices = self.get_score_indices(scores) # Construct outer product of all three index types with each other indices = np.ix_(filter_indices, nuclide_indices, score_indices) @@ -990,7 +1086,7 @@ class Tally(object): else: msg = 'Unable to return results from Tally ID="{0}" since the ' \ 'the requested value "{1}" is not \'mean\', \'std_dev\', ' \ - '\rel_err\', \'sum\', or \'sum_sq\''.format(self.id, value) + '\'rel_err\', \'sum\', or \'sum_sq\''.format(self.id, value) raise LookupError(msg) return data @@ -1001,21 +1097,19 @@ class Tally(object): This method constructs a Pandas DataFrame object for the Tally data with columns annotated by filter, nuclide and score bin information. - This capability has been tested for Pandas >=v0.13.1. However, if - possible, it is recommended to use the v0.16 or newer versions of - Pandas since this this method uses the Multi-index Pandas feature. + + This capability has been tested for Pandas >=0.13.1. However, it is + recommended to use v0.16 or newer versions of Pandas since this method + uses the Multi-index Pandas feature. Parameters ---------- filters : bool Include columns with filter bin information (default is True). - nuclides : bool Include columns with nuclide bin information (default is True). - scores : bool Include columns with score bin information (default is True). - summary : None or Summary An optional Summary object to be used to construct columns for distribcell tally filters (default is None). The geometric @@ -1035,6 +1129,8 @@ class Tally(object): KeyError When this method is called before the Tally is populated with data by the StatePoint.read_results() method. + ImportError + When Pandas can not be found on the caller's system """ @@ -1053,11 +1149,11 @@ class Tally(object): 'Summary info'.format(self.id) raise KeyError(msg) - # Attempt to import the pandas package + # Attempt to import Pandas try: import pandas as pd except ImportError: - msg = 'The pandas Python package must be installed on your system' + msg = 'The Pandas Python package must be installed on your system' raise ImportError(msg) # Initialize a pandas dataframe for the tally data @@ -1066,224 +1162,14 @@ class Tally(object): # Find the total length of the tally data array data_size = self.mean.size - # Split CrossFilters into separate filters - split_filters = [] - for filter in self.filters: - if isinstance(filter, CrossFilter): - split_filters.extend(filter.split_filters()) - else: - split_filters.append(filter) - # Build DataFrame columns for filters if user requested them if filters: - for filter in split_filters: + # Append each Filter's DataFrame to the overall DataFrame + for filter in self.filters: + filter_df = filter.get_pandas_dataframe(data_size, summary) - # mesh filters - if filter.type == 'mesh': - - # Initialize dictionary to build Pandas Multi-index column - filter_dict = {} - - # Append Mesh ID as outermost index of mult-index - mesh_id = filter.mesh.id - mesh_key = 'mesh {0}'.format(mesh_id) - - # Find mesh dimensions - use 3D indices for simplicity - if (len(filter.mesh.dimension) == 3): - nx, ny, nz = filter.mesh.dimension - else: - nx, ny = filter.mesh.dimension - nz = 1 - - # Generate multi-index sub-column for x-axis - filter_bins = np.arange(1, nx+1) - repeat_factor = ny * nz * filter.stride - filter_bins = np.repeat(filter_bins, repeat_factor) - tile_factor = data_size / len(filter_bins) - filter_bins = np.tile(filter_bins, tile_factor) - filter_dict[(mesh_key, 'x')] = filter_bins - - # Generate multi-index sub-column for y-axis - filter_bins = np.arange(1, ny+1) - repeat_factor = nz * filter.stride - filter_bins = np.repeat(filter_bins, repeat_factor) - tile_factor = data_size / len(filter_bins) - filter_bins = np.tile(filter_bins, tile_factor) - filter_dict[(mesh_key, 'y')] = filter_bins - - # Generate multi-index sub-column for z-axis - filter_bins = np.arange(1, nz+1) - repeat_factor = filter.stride - filter_bins = np.repeat(filter_bins, repeat_factor) - tile_factor = data_size / len(filter_bins) - filter_bins = np.tile(filter_bins, tile_factor) - filter_dict[(mesh_key, 'z')] = filter_bins - - # Append the multi-index column to the DataFrame - df = pd.concat([df, pd.DataFrame(filter_dict)], axis=1) - - # distribcell filters - elif filter.type == 'distribcell': - if isinstance(summary, Summary): - # Attempt to import the OpenCG package - try: - import opencg - except ImportError: - msg = 'The OpenCG package must be installed ' \ - 'to use a Summary for distribcell dataframes' - raise ImportError(msg) - - # Create and extract the OpenCG geometry the Summary - summary.make_opencg_geometry() - opencg_geometry = summary.opencg_geometry - openmc_geometry = summary.openmc_geometry - - # Use OpenCG to compute the number of regions - opencg_geometry.initializeCellOffsets() - num_regions = opencg_geometry._num_regions - - # Initialize a dictionary mapping OpenMC distribcell - # offsets to OpenCG LocalCoords linked lists - offsets_to_coords = {} - - # Use OpenCG to compute LocalCoords linked list for - # each region and store in dictionary - for region in range(num_regions): - coords = opencg_geometry.findRegion(region) - path = opencg.get_path(coords) - cell_id = path[-1] - - # If this region is in Cell corresponding to the - # distribcell filter bin, store it in dictionary - if cell_id == filter.bins[0]: - offset = openmc_geometry.get_offset(path, - filter.offset) - offsets_to_coords[offset] = coords - - # Each distribcell offset is a DataFrame bin - # Unravel the paths into DataFrame columns - num_offsets = len(offsets_to_coords) - - # Initialize termination condition for while loop - levels_remain = True - counter = 0 - - # Iterate over each level in the CSG tree hierarchy - while levels_remain: - levels_remain = False - - # Initialize dictionary to build Pandas Multi-index - # column for this level in the CSG tree hierarchy - level_dict = {} - - # Initialize prefix Multi-index keys - counter += 1 - level_key = 'level {0}'.format(counter) - univ_key = (level_key, 'univ', 'id') - cell_key = (level_key, 'cell', 'id') - lat_id_key = (level_key, 'lat', 'id') - lat_x_key = (level_key, 'lat', 'x') - lat_y_key = (level_key, 'lat', 'y') - lat_z_key = (level_key, 'lat', 'z') - - # Allocate NumPy arrays for each CSG level and - # each Multi-index column in the DataFrame - level_dict[univ_key] = np.empty(num_offsets) - level_dict[cell_key] = np.empty(num_offsets) - level_dict[lat_id_key] = np.empty(num_offsets) - level_dict[lat_x_key] = np.empty(num_offsets) - level_dict[lat_y_key] = np.empty(num_offsets) - level_dict[lat_z_key] = np.empty(num_offsets) - - # Initialize Multi-index columns to NaN - this is - # necessary since some distribcell instances may - # have very different LocalCoords linked lists - level_dict[univ_key][:] = np.nan - level_dict[cell_key][:] = np.nan - level_dict[lat_id_key][:] = np.nan - level_dict[lat_x_key][:] = np.nan - level_dict[lat_y_key][:] = np.nan - level_dict[lat_z_key][:] = np.nan - - # Iterate over all regions (distribcell instances) - for offset in range(num_offsets): - coords = offsets_to_coords[offset] - - # If entire LocalCoords has been unraveled into - # Multi-index columns already, continue - if coords is None: - continue - - # Assign entry to Universe Multi-index column - if coords._type == 'universe': - univ_id = coords._universe._id - cell_id = coords._cell._id - level_dict[univ_key][offset] = univ_id - level_dict[cell_key][offset] = cell_id - - # Assign entry to Lattice Multi-index column - else: - lat_id = coords._lattice._id - lat_x = coords._lat_x - lat_y = coords._lat_y - lat_z = coords._lat_z - level_dict[lat_id_key][offset] = lat_id - level_dict[lat_x_key][offset] = lat_x - level_dict[lat_y_key][offset] = lat_y - level_dict[lat_z_key][offset] = lat_z - - # Move to next node in LocalCoords linked list - if coords._next is None: - offsets_to_coords[offset] = None - else: - offsets_to_coords[offset] = coords._next - levels_remain = True - - # Tile the Multi-index columns - for level_key, level_bins in level_dict.items(): - level_bins = \ - np.repeat(level_bins, filter.stride) - tile_factor = data_size / len(level_bins) - level_bins = np.tile(level_bins, tile_factor) - level_dict[level_key] = level_bins - - # Append the multi-index column to the DataFrame - df = pd.concat([df, pd.DataFrame(level_dict)], - axis=1) - - # Create DataFrame column for distribcell instances IDs - # NOTE: This is performed regardless of whether the user - # requests Summary geomeric information - filter_bins = np.arange(filter.num_bins) - filter_bins = np.repeat(filter_bins, filter.stride) - tile_factor = data_size / len(filter_bins) - filter_bins = np.tile(filter_bins, tile_factor) - df[filter.type] = filter_bins - - # energy, energyout filters - elif 'energy' in filter.type: - bins = filter.bins - num_bins = filter.num_bins - - # Create strings for - template = '{0:.1e} - {1:.1e}' - filter_bins = [] - for i in range(num_bins): - filter_bins.append(template.format(bins[i], bins[i+1])) - - # Tile the energy bins into a DataFrame column - filter_bins = np.repeat(filter_bins, filter.stride) - tile_factor = data_size / len(filter_bins) - filter_bins = np.tile(filter_bins, tile_factor) - df[filter.type + ' [MeV]'] = filter_bins - - # universe, material, surface, cell, and cellborn filters - else: - filter_bins = np.repeat(filter.bins, filter.stride) - tile_factor = data_size / len(filter_bins) - filter_bins = np.tile(filter_bins, tile_factor) - df[filter.type] = filter_bins + df = pd.concat([df, filter_df], axis=1) # Include DataFrame column for nuclides if user requested it if nuclides: @@ -1310,10 +1196,76 @@ class Tally(object): df['mean'] = self.mean.ravel() df['std. dev.'] = self.std_dev.ravel() - df.index.name = 'bin' df = df.dropna(axis=1) + + # Expand the columns into Pandas MultiIndices for readability + if pd.__version__ >= '0.16': + columns = copy.deepcopy(df.columns.values) + + # Convert all elements in columns list to tuples + for i, column in enumerate(columns): + if not isinstance(column, tuple): + columns[i] = (column,) + + # Make each tuple the same length + max_len_column = len(max(columns, key=len)) + for i, column in enumerate(columns): + delta_len = max_len_column - len(column) + if delta_len > 0: + new_column = list(column) + new_column.extend(['']*delta_len) + columns[i] = tuple(new_column) + + # Create and set a MultiIndex for the DataFrame's columns + df.columns = pd.MultiIndex.from_tuples(columns) + return df + def get_reshaped_data(self, value='mean'): + """Returns an array of tally data with one dimension per filter. + + The tally data in OpenMC is stored as a 3D array with the dimensions + corresponding to filters, nuclides and scores. As a result, tally data + can be opaque for a user to directly index (i.e., without use of the + Tally.get_values(...) method) since one must know how to properly use + the number of bins and strides for each filter to index into the first + (filter) dimension. + + This builds and returns a reshaped version of the tally data array with + unique dimensions corresponding to each tally filter. For example, + suppose this tally has arrays of data with shape (8,5,5) corresponding + to two filters (2 and 4 bins, respectively), five nuclides and five + scores. This method will return a version of the data array with the + with a new shape of (2,4,5,5) such that the first two dimensions + correspond directly to the two filters with two and four bins. + + Parameters + --------- + value : str + A string for the type of value to return - 'mean' (default), + 'std_dev', 'rel_err', 'sum', or 'sum_sq' are accepted + + Returns + ------- + ndarray + The tally data array indexed by filters, nuclides and scores. + + """ + + # Get the 3D array of data in filters, nuclides and scores + data = self.get_values(value=value) + + # Build a new array shape with one dimension per filter + new_shape = () + for filter in self.filters: + new_shape += (filter.num_bins, ) + new_shape += (self.num_nuclides,) + new_shape += (self.num_score_bins,) + + # Reshape the data with one dimension for each filter + data = np.reshape(data, new_shape) + return data + def export_results(self, filename='tally-results', directory='.', format='hdf5', append=True): """Exports tallly results to an HDF5 or Python pickle binary file. @@ -1322,14 +1274,11 @@ class Tally(object): ---------- filename : str The name of the file for the results (default is 'tally-results') - directory : str The name of the directory for the results (default is '.') - format : str The format for the exported file - HDF5 ('hdf5', default) and Python pickle ('pkl') files are supported - append : bool Whether or not to append the results to the file (default is True) @@ -1342,9 +1291,9 @@ class Tally(object): """ # Ensure that StatePoint.read_results() was called first - if self._sum is None or self._sum_sq is None: + if self._sum is None or self._sum_sq is None and not self.derived: msg = 'The Tally ID="{0}" has no data to export. Call the ' \ - 'StatePoint.read_results() routine before using ' \ + 'StatePoint.read_results() method before using ' \ 'Tally.export_results(...)'.format(self.id) raise KeyError(msg) @@ -1479,7 +1428,7 @@ class Tally(object): Returns ------- Tally - A new Tally outer that is the outer product with this one. + A new Tally that is the outer product with this one. Raises ------ @@ -1495,11 +1444,27 @@ class Tally(object): 'since it does not contain any results.'.format(other.id) raise ValueError(msg) - new_name = '({0} {1} {2})'.format(self.name, binary_op, other.name) - new_tally = Tally(name=new_name) + new_tally = Tally() new_tally.with_batch_statistics = True new_tally._derived = True + # Construct a combined derived name from the two tally operands + if self.name != '' and other.name != '': + new_name = '({0} {1} {2})'.format(self.name, binary_op, other.name) + new_tally.name = new_name + + # Find any shared filters between the two tallies + self_filters = set(self.filters) + other_filters = set(other.filters) + filter_intersect = self_filters.intersection(other_filters) + + # Align the shared filters to follow in each tally operand + for i, filter in enumerate(filter_intersect): + self_index = self.filters.index(filter) + other_filter = other.filters[self_index] + if other_filter != filter: + other = other.swap_filters(filter, other_filter) + data = self._align_tally_data(other) if binary_op == '+': @@ -1507,26 +1472,22 @@ class Tally(object): new_tally._std_dev = np.sqrt(data['self']['std. dev.']**2 + data['other']['std. dev.']**2) elif binary_op == '-': - data = self._align_tally_data(other) new_tally._mean = data['self']['mean'] - data['other']['mean'] new_tally._std_dev = np.sqrt(data['self']['std. dev.']**2 + data['other']['std. dev.']**2) elif binary_op == '*': - data = self._align_tally_data(other) self_rel_err = data['self']['std. dev.'] / data['self']['mean'] other_rel_err = data['other']['std. dev.'] / data['other']['mean'] new_tally._mean = data['self']['mean'] * data['other']['mean'] new_tally._std_dev = np.abs(new_tally.mean) * \ np.sqrt(self_rel_err**2 + other_rel_err**2) elif binary_op == '/': - data = self._align_tally_data(other) self_rel_err = data['self']['std. dev.'] / data['self']['mean'] other_rel_err = data['other']['std. dev.'] / data['other']['mean'] new_tally._mean = data['self']['mean'] / data['other']['mean'] new_tally._std_dev = np.abs(new_tally.mean) * \ np.sqrt(self_rel_err**2 + other_rel_err**2) elif binary_op == '^': - data = self._align_tally_data(other) mean_ratio = data['other']['mean'] / data['self']['mean'] first_term = mean_ratio * data['self']['std. dev.'] second_term = \ @@ -1541,23 +1502,49 @@ class Tally(object): new_tally.with_summary = self.with_summary if self.num_realizations == other.num_realizations: new_tally.num_realizations = self.num_realizations - new_tally.num_score_bins = self.num_score_bins * other.num_score_bins - # Generate filter "outer products" + # If filters are identical, simply reuse them in derived tally if self.filters == other.filters: for self_filter in self.filters: new_tally.add_filter(self_filter) + + # Generate filter "outer products" for non-identical filters else: - all_filters = [self.filters, other.filters] - for self_filter, other_filter in itertools.product(*all_filters): - new_filter = CrossFilter(self_filter, other_filter, binary_op) - new_tally.add_filter(new_filter) + + # Find the common longest sequence of shared filters + match = 0 + for self_filter, other_filter in zip(self.filters, other.filters): + if self_filter == other_filter: + match += 1 + else: + break + + match_filters = self.filters[:match] + cross_filters = [self.filters[match:], other.filters[match:]] + + # Simply reuse shared filters in derived tally + for filter in match_filters: + new_tally.add_filter(filter) + + # Use cross filters to combine non-shared filters in derived tally + if len(self.filters) != match and len(other.filters) == match: + for filter in cross_filters[0]: + new_tally.add_filter(filter) + elif len(other.filters) == match and len(other.filters) != match: + for filter in cross_filters[1]: + new_tally.add_filter(filter) + else: + for self_filter, other_filter in itertools.product(*cross_filters): + new_filter = CrossFilter(self_filter, other_filter, binary_op) + new_tally.add_filter(new_filter) # Generate score "outer products" if self.scores == other.scores: + new_tally.num_score_bins = self.num_score_bins for self_score in self.scores: new_tally.add_score(self_score) else: + new_tally.num_score_bins = self.num_score_bins * other.num_score_bins all_scores = [self.scores, other.scores] for self_score, other_score in itertools.product(*all_scores): new_score = CrossScore(self_score, other_score, binary_op) @@ -1573,6 +1560,12 @@ class Tally(object): new_nuclide = CrossNuclide(self_nuclide, other_nuclide, binary_op) new_tally.add_nuclide(new_nuclide) + # Correct each Filter's stride + stride = new_tally.num_nuclides * new_tally.num_score_bins + for filter in reversed(new_tally.filters): + filter.stride = stride + stride *= filter.num_bins + return new_tally def _align_tally_data(self, other): @@ -1598,7 +1591,6 @@ class Tally(object): A dictionary of dictionaries to "aligned" 'mean' and 'std. dev' NumPy arrays for each tally's data. - """ self_mean = copy.deepcopy(self.mean) @@ -1610,14 +1602,39 @@ class Tally(object): # Determine the number of paired combinations of filter bins # between the two tallies and repeat arrays along filter axes - self_repeat_factor = other.num_filter_bins - other_tile_factor = self.num_filter_bins + diff1 = list(set(self.filters).difference(set(other.filters))) + diff2 = list(set(other.filters).difference(set(self.filters))) - # Replicate the data - self_mean = np.repeat(self_mean, self_repeat_factor, axis=0) - other_mean = np.tile(other_mean, (other_tile_factor, 1, 1)) - self_std_dev = np.repeat(self_std_dev, self_repeat_factor, axis=0) - other_std_dev = np.tile(other_std_dev, (other_tile_factor, 1, 1)) + # Determine the factors by which each tally operands' data arrays + # must be tiled or repeated for the tally outer product + other_tile_factor = 1 + self_repeat_factor = 1 + for filter in diff1: + other_tile_factor *= filter.num_bins + for filter in diff2: + self_repeat_factor *= filter.num_bins + + # Tile / repeat the tally data for the tally outer product + self_shape = list(self.mean.shape) + other_shape = list(other.mean.shape) + self_shape[0] *= self_repeat_factor + self_mean = np.repeat(self_mean, self_repeat_factor) + self_std_dev = np.repeat(self_std_dev, self_repeat_factor) + + if self_repeat_factor == 1: + other_shape[0] *= other_tile_factor + other_mean = np.repeat(other_mean, other_tile_factor, axis=0) + other_std_dev = np.repeat(other_std_dev, other_tile_factor, axis=0) + else: + other_mean = np.tile(other_mean, (other_tile_factor, 1, 1)) + other_std_dev = np.tile(other_std_dev, (other_tile_factor, 1, 1)) + + # NumPy repeat and tile routines return 1D flattened arrays + # Reshape arrays as 3D with filters, nuclides and scores axes + self_mean.shape = tuple(self_shape) + self_std_dev.shape = tuple(self_shape) + other_mean.shape = tuple(other_shape) + other_std_dev.shape = tuple(other_shape) if self.nuclides != other.nuclides: @@ -1632,6 +1649,13 @@ class Tally(object): self_std_dev = np.repeat(self_std_dev, self_repeat_factor, axis=1) other_std_dev = np.tile(other_std_dev, (1, other_tile_factor, 1)) + # NumPy repeat and tile routines return 1D flattened arrays + # Reshape arrays as 3D with filters, nuclides and scores axes + self_shape = list(self.mean.shape) + self_shape[1] *= self_repeat_factor + self_mean.shape = tuple(self_shape) + self_std_dev.shape = tuple(self_shape) + if self.scores != other.scores: # Determine the number of paired combinations of score bins @@ -1645,6 +1669,13 @@ class Tally(object): self_std_dev = np.repeat(self_std_dev, self_repeat_factor, axis=2) other_std_dev = np.tile(other_std_dev, (1, 1, other_tile_factor)) + # NumPy repeat and tile routines return 1D flattened arrays + # Reshape arrays as 3D with filters, nuclides and scores axes + self_shape = list(self.mean.shape) + self_shape[2] *= self_repeat_factor + self_mean.shape = tuple(self_shape) + self_std_dev.shape = tuple(self_shape) + data = {} data['self'] = {} data['other'] = {} @@ -1654,6 +1685,119 @@ class Tally(object): data['other']['std. dev.'] = other_std_dev return data + def swap_filters(self, filter1, filter2): + """Reverse the ordering of two filters in this tally + + This is a helper method for tally arithmetic which helps align the data + in two tallies with shared filters. This method copies this tally and + reverses the order of the two filters. + + Parameters + ---------- + filter1 : Filter + The filter to swap with filter2 + + filter2 : Filter + The filter to swap with filter1 + + Returns + ------- + swap_tally + A copy of this tally with the filters swapped + + Raises + ------ + ValueError + If this is a derived tally or this method is called before the tally + is populated with data by the StatePoint.read_results() method. + + """ + + # Check that results have been read + if not self.derived and self.sum is None: + msg = 'Unable to use tally arithmetic with Tally ID="{0}" ' \ + 'since it does not contain any results.'.format(self.id) + raise ValueError(msg) + + cv.check_type('filter1', filter1, Filter) + cv.check_type('filter2', filter2, Filter) + + if filter1 == filter2: + msg = 'Unable to swap a filter with itself' + raise ValueError(msg) + elif filter1 not in self.filters: + msg = 'Unable to swap "{0}" filter1 in Tally ID="{1}" since it ' \ + 'does not contain such a filter'.format(filter1.type, self.id) + raise ValueError(msg) + elif filter2 not in self.filters: + msg = 'Unable to swap "{0}" filter2 in Tally ID="{1}" since it ' \ + 'does not contain such a filter'.format(filter2.type, self.id) + raise ValueError(msg) + + swap_tally = copy.deepcopy(self) + + # Swap the filters in the copied version of this Tally + filter1_index = swap_tally.filters.index(filter1) + filter2_index = swap_tally.filters.index(filter2) + swap_tally.filters[filter1_index] = filter2 + swap_tally.filters[filter2_index] = filter1 + + # Update the strides for each of the filters + stride = swap_tally.num_nuclides * swap_tally.num_score_bins + for filter in reversed(swap_tally.filters): + filter.stride = stride + stride *= filter.num_bins + + # Construct lists of tuples for the bins in each of the two filters + filters = [filter1.type, filter2.type] + if filter1.type == 'distribcell': + filter1_bins = np.arange(filter.num_bins) + else: + filter1_bins = [(filter1.get_bin(i)) for i in range(filter1.num_bins)] + + if filter1.type == 'distribcell': + filter2_bins = np.arange(filter2.num_bins) + else: + filter2_bins = [filter2.get_bin(i) for i in range(filter2.num_bins)] + + # Adjust the sum data array to relect the new filter order + if self.sum is not None: + for bin1, bin2 in itertools.product(filter1_bins, filter2_bins): + filter_bins = [(bin1,), (bin2,)] + data = self.get_values(filters=filters, + filter_bins=filter_bins, value='sum') + indices = swap_tally.get_filter_indices(filters, filter_bins) + swap_tally.sum[indices, :, :] = data + + # Adjust the sum_sq data array to relect the new filter order + if self.sum_sq is not None: + for bin1, bin2 in itertools.product(filter1_bins, filter2_bins): + filter_bins = [(bin1,), (bin2,)] + data = self.get_values(filters=filters, + filter_bins=filter_bins, value='sum_sq') + indices = swap_tally.get_filter_indices(filters, filter_bins) + swap_tally.sum_sq[indices, :, :] = data + + # Adjust the mean data array to relect the new filter order + if self.mean is not None: + for bin1, bin2 in itertools.product(filter1_bins, filter2_bins): + filter_bins = [(bin1,), (bin2,)] + data = self.get_values(filters=filters, + filter_bins=filter_bins, value='mean') + indices = swap_tally.get_filter_indices(filters, filter_bins) + swap_tally._mean[indices, :, :] = data + + # Adjust the std_dev data array to relect the new filter order + if self.std_dev is not None: + for bin1, bin2 in itertools.product(filter1_bins, filter2_bins): + filter_bins = [(bin1,), (bin2,)] + data = self.get_values(filters=filters, + filter_bins=filter_bins, value='std_dev') + indices = swap_tally.get_filter_indices(filters, filter_bins) + swap_tally._std_dev[indices, :, :] = data + + return swap_tally + def __add__(self, other): """Adds this tally to another tally or scalar value. @@ -1704,8 +1848,8 @@ class Tally(object): new_tally._derived = True new_tally.with_batch_statistics = True new_tally.name = self.name - new_tally._mean = self._mean + other - new_tally._std_dev = self._std_dev + new_tally._mean = self.mean + other + new_tally._std_dev = self.std_dev new_tally.estimator = self.estimator new_tally.with_summary = self.with_summary new_tally.num_realization = self.num_realizations @@ -1773,8 +1917,8 @@ class Tally(object): new_tally = Tally(name='derived') new_tally._derived = True new_tally.name = self.name - new_tally._mean = self._mean - other - new_tally._std_dev = self._std_dev + new_tally._mean = self.mean - other + new_tally._std_dev = self.std_dev new_tally.estimator = self.estimator new_tally.with_summary = self.with_summary new_tally.num_realization = self.num_realizations @@ -1843,8 +1987,8 @@ class Tally(object): new_tally = Tally(name='derived') new_tally._derived = True new_tally.name = self.name - new_tally._mean = self._mean * other - new_tally._std_dev = self._std_dev * np.abs(other) + new_tally._mean = self.mean * other + new_tally._std_dev = self.std_dev * np.abs(other) new_tally.estimator = self.estimator new_tally.with_summary = self.with_summary new_tally.num_realization = self.num_realizations @@ -1913,8 +2057,8 @@ class Tally(object): new_tally = Tally(name='derived') new_tally._derived = True new_tally.name = self.name - new_tally._mean = self._mean / other - new_tally._std_dev = self._std_dev * np.abs(1. / other) + new_tally._mean = self.mean / other + new_tally._std_dev = self.std_dev * np.abs(1. / other) new_tally.estimator = self.estimator new_tally.with_summary = self.with_summary new_tally.num_realization = self.num_realizations @@ -2112,20 +2256,18 @@ class Tally(object): """Build a sliced tally for the specified filters, scores and nuclides. This method constructs a new tally to encapsulate a subset of the data - represented by this tally. The subset of data to included in the tally + represented by this tally. The subset of data to include in the tally slice is determined by the scores, filters and nuclides specified in the input parameters. Parameters ---------- - scores : list + scores : list of str A list of one or more score strings (e.g., ['absorption', 'nu-fission']; default is []) - - filters : list + filters : list of str A list of filter type strings (e.g., ['mesh', 'energy']; default is []) - filter_bins : list of Iterables A list of the filter bins corresponding to the filter_types parameter (e.g., [(1,), (0., 0.625e-6)]; default is []). Each bin @@ -2135,10 +2277,9 @@ class Tally(object): floats for 'energy' and 'energyout' filters corresponding to the energy boundaries of the bin of interest. The bin is a (x,y,z) 3-tuple for 'mesh' filters corresponding to the mesh cell of - interest. The order of the bins in the list must correspond of the + interest. The order of the bins in the list must correspond to the filter_types parameter. - - nuclides : list + nuclides : list of str A list of nuclide name strings (e.g., ['U-235', 'U-238']; default is []) @@ -2157,21 +2298,29 @@ class Tally(object): """ # Ensure that StatePoint.read_results() was called first - if self.sum is None: + if not self.derived and self.sum is None: msg = 'Unable to use tally arithmetic with Tally ID="{0}" ' \ 'since it does not contain any results.'.format(self.id) raise ValueError(msg) new_tally = copy.deepcopy(self) - new_sum = self.get_values(scores, filters, filter_bins, - nuclides, 'sum') - new_sum_sq = self.get_values(scores, filters, filter_bins, - nuclides, 'sum_sq') - new_tally.sum = new_sum - new_tally.sum_sq = new_sum_sq - new_tally._mean = None - new_tally._std_dev = None + if self.sum is not None: + new_sum = self.get_values(scores, filters, filter_bins, + nuclides, 'sum') + new_tally.sum = new_sum + if self.sum_sq is not None: + new_sum_sq = self.get_values(scores, filters, filter_bins, + nuclides, 'sum_sq') + new_tally.sum_sq = new_sum_sq + if self.mean is not None: + new_mean = self.get_values(scores, filters, filter_bins, + nuclides, 'mean') + new_tally._mean = new_mean + if self.std_dev is not None: + new_std_dev = self.get_values(scores, filters, filter_bins, + nuclides, 'std_dev') + new_tally._std_dev = new_std_dev # SCORES if scores: @@ -2214,10 +2363,178 @@ class Tally(object): for filter_bin in filter_bins[i]: bin_index = filter.get_bin_index(filter_bin) - bin_indices.append(bin_index) + if filter_type in ['energy', 'energyout']: + bin_indices.extend([bin_index, bin_index+1]) + elif filter_type == 'distribcell': + indices = [(bin,) for bin in range(filter.num_bins)] + bin_indices.extend(indices) + else: + bin_indices.append(bin_index) - new_bins = filter.bins[bin_indices] - filter.bins = new_bins + filter.bins = filter.bins[bin_indices] + filter.num_bins = len(filter_bins[i]) + + # Correct each Filter's stride + stride = new_tally.num_nuclides * new_tally.num_score_bins + for filter in reversed(new_tally.filters): + filter.stride = stride + stride *= filter.num_bins + + return new_tally + + def summation(self, scores=[], filter_type=None, + filter_bins=[], nuclides=[]): + """Vectorized sum of tally data across scores, filter bins and/or + nuclides using tally addition. + + This method constructs a new tally to encapsulate the sum of the data + represented by the summation of the data in this tally. The tally data + sum is determined by the scores, filter bins and nuclides specified + in the input parameters. + + Parameters + ---------- + scores : list of str + A list of one or more score strings to sum across + (e.g., ['absorption', 'nu-fission']; default is []) + filter_type : str + A filter type string (e.g., 'cell', 'energy') corresponding to the + filter bins to sum across + filter_bins : Iterable of Integral or tuple + A list of the filter bins corresponding to the filter_type parameter + Each bin in the list is the integer ID for 'material', 'surface', + 'cell', 'cellborn', and 'universe' Filters. Each bin is an integer + for the cell instance ID for 'distribcell Filters. Each bin is a + 2-tuple of floats for 'energy' and 'energyout' filters corresponding + to the energy boundaries of the bin of interest. Each bin is an + (x,y,z) 3-tuple for 'mesh' filters corresponding to the mesh cell of + interest. + nuclides : list of str + A list of nuclide name strings to sum across + (e.g., ['U-235', 'U-238']; default is []) + + Returns + ------- + Tally + A new tally which encapsulates the sum of data requested. + """ + + # If user did not specify any scores, do not sum across scores + if len(scores) == 0: + scores = [[]] + # Sum across any scores specified by the user + else: + scores = [[score] for score in scores] + + # If user did not specify any nuclides, do not sum across nuclides + if len(nuclides) == 0: + nuclides = [[]] + # Sum across any nuclides specified by the user + else: + nuclides = [[nuclide] for nuclide in nuclides] + + # Sum across any filter bins specified by the user + if filter_type in _FILTER_TYPES: + filter_bins = [[(filter_bin,)] for filter_bin in filter_bins] + filters = [[filter_type]] + # If user did not specify a filter type, do not sum across filter bins + else: + filter_bins = [[]] + filters = [[]] + + # Initialize Tally sum + tally_sum = 0 + + # Iterate over all Tally slice operands in summation + prod = [scores, filters, filter_bins, nuclides] + summed_filters = defaultdict(list) + for scores, filters, filter_bins, nuclides in itertools.product(*prod): + tally_slice = self.get_slice(scores, filters, filter_bins, nuclides) + + # Remove filters summed across to avoid bulky CrossFilters + if filter_type: + filter = tally_slice.find_filter(filter_type) + tally_slice.remove_filter(filter) + summed_filters[filter_type].append(filter) + + # Accumulate this Tally slice into the Tally sum + tally_sum += tally_slice + + # Add back the filter(s) which were summed across to derived tally + for filter_type in summed_filters: + filters = summed_filters[filter_type] + for i in range(1, len(filters)): + filters[i] = CrossFilter(filters[i-1], filters[i], '+') + tally_sum.add_filter(filters[-1]) + + return tally_sum + + def diagonalize_filter(self, new_filter): + """Diagonalize the tally data array along a new axis of filter bins. + + This is a helper method for the tally arithmetic methods. This method + adds the new filter to a derived tally constructed copied from this one. + The data in the derived tally arrays is "diagonalized" along the bins in + the new filter. This functionality is used by the openmc.mgxs module; to + transport-correct scattering matrices by subtracting a 'scatter-P1' + reaction rate tally with an energy filter from an 'scatter' reaction + rate tally with both energy and energyout filters. + + Parameters + ---------- + new_filter : Filter + The filter along which to diagonalize the data in the new + + Returns + ------- + Tally + A new derived Tally with data diagaonalized along the new filter. + + """ + + cv.check_type('new_filter', new_filter, Filter) + + if new_filter in self.filters: + msg = 'Unable to diagonalize Tally ID="{0}" which already ' \ + 'contains a "{1}" filter'.format(self.id, new_filter.type) + raise ValueError(msg) + + # Add the new filter to a copy of this Tally + new_tally = copy.deepcopy(self) + new_tally.add_filter(new_filter) + + # Determine the shape of data in the new diagonalized Tally + num_filter_bins = new_tally.num_filter_bins + num_nuclides = new_tally.num_nuclides + num_score_bins = new_tally.num_score_bins + new_shape = (num_filter_bins, num_nuclides, num_score_bins) + + # Determine "base" indices along the new "diagonal", and the factor + # by which the "base" indices should be repeated to account for all + # other filter bins in the diagonalized tally + indices = np.arange(0, new_filter.num_bins**2, new_filter.num_bins+1) + diag_factor = self.num_filter_bins / new_filter.num_bins + diag_indices = np.zeros(self.num_filter_bins, dtype=np.int) + + # Determine the filter indices along the new "diagonal" + for i in range(diag_factor): + start = i * new_filter.num_bins + end = (i+1) * new_filter.num_bins + diag_indices[start:end] = indices + (i * new_filter.num_bins**2) + + # Inject this Tally's data along the diagonal of the diagonalized Tally + if self.sum is not None: + new_tally._sum = np.zeros(new_shape, dtype=np.float64) + new_tally._sum[diag_indices, :, :] = self.sum + if self.sum_sq is not None: + new_tally._sum_sq = np.zeros(new_shape, dtype=np.float64) + new_tally._sum_sq[diag_indices, :, :] = self.sum_sq + if self.mean is not None: + new_tally._mean = np.zeros(new_shape, dtype=np.float64) + new_tally._mean[diag_indices, :, :] = self.mean + if self.std_dev is not None: + new_tally._std_dev = np.zeros(new_shape, dtype=np.float64) + new_tally._std_dev[diag_indices, :, :] = self.std_dev # Correct each Filter's stride stride = new_tally.num_nuclides * new_tally.num_score_bins @@ -2240,6 +2557,14 @@ class TalliesFile(object): self._meshes = [] self._tallies_file = ET.Element("tallies") + @property + def tallies(self): + return self._tallies + + @property + def meshes(self): + return self._meshes + def add_tally(self, tally, merge=False): """Add a tally to the file @@ -2247,6 +2572,7 @@ class TalliesFile(object): ---------- tally : Tally Tally to add to file + merge : bool Indicate whether the tally should be merged with an existing tally, if possible. Defaults to False. diff --git a/openmc/temp.py b/openmc/temp.py deleted file mode 100644 index 91f608299..000000000 --- a/openmc/temp.py +++ /dev/null @@ -1,12 +0,0 @@ -from checkvalue import * -from checkvalue import _isinstance - -import numpy as np - -zs = np.zeros((2,)) - -print _isinstance(zs[0], Integral) -print _isinstance(zs[0], Real) -print _isinstance(zs[0], (Integral, Real)) - -print check_iterable_type('thing', zs, (Real, Integral)) diff --git a/openmc/universe.py b/openmc/universe.py index bab10f5df..ef89780e1 100644 --- a/openmc/universe.py +++ b/openmc/universe.py @@ -85,8 +85,15 @@ class Cell(object): return self._fill @property - def type(self): - return self._fill + def fill_type(self): + if isinstance(self.fill, openmc.Material): + return 'material' + elif isinstance(self.fill, openmc.Universe): + return 'universe' + elif isinstance(self.fill, openmc.Lattice): + return 'lattice' + else: + return None @property def surfaces(self): @@ -117,8 +124,11 @@ class Cell(object): @name.setter def name(self, name): - cv.check_type('cell name', name, basestring) - self._name = name + if name is not None: + cv.check_type('cell name', name, basestring) + self._name = name + else: + self._name = None @fill.setter def fill(self, fill): @@ -438,8 +448,11 @@ class Universe(object): @name.setter def name(self, name): - cv.check_type('universe name', name, basestring) - self._name = name + if name is not None: + cv.check_type('universe name', name, basestring) + self._name = name + else: + self._name = None def add_cell(self, cell): """Add a cell to the universe. @@ -677,8 +690,11 @@ class Lattice(object): @name.setter def name(self, name): - cv.check_type('lattice name', name, basestring) - self._name = name + if name is not None: + cv.check_type('lattice name', name, basestring) + self._name = name + else: + self._name = None @outer.setter def outer(self, outer): diff --git a/setup.py b/setup.py index 3273f1db7..0c3d5c116 100644 --- a/setup.py +++ b/setup.py @@ -11,7 +11,7 @@ except ImportError: kwargs = {'name': 'openmc', 'version': '0.7.0', - 'packages': ['openmc'], + 'packages': ['openmc', 'openmc.mgxs'], 'scripts': glob.glob('scripts/openmc-*'), # Metadata diff --git a/src/cross_section.F90 b/src/cross_section.F90 index b937b03a1..4d8fb2f0f 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -33,6 +33,7 @@ contains integer :: i_nuclide ! index into nuclides array integer :: i_sab ! index into sab_tables array integer :: j ! index in mat % i_sab_nuclides + integer :: u ! index into logarithmic mapping array real(8) :: atom_density ! atom density of a nuclide logical :: check_sab ! should we check for S(a,b) table? type(Material), pointer :: mat ! current material @@ -50,9 +51,13 @@ contains mat => materials(p % material) - ! Find energy index on global or material unionized grid - if (grid_method == GRID_MAT_UNION) & - call find_energy_index(p % E, p % material) + ! Find energy index on energy grid + u = 0 + if (grid_method == GRID_MAT_UNION) then + call find_energy_index(p % E, p % material) + else if (grid_method == GRID_LOGARITHM) then + u = int(log(p % E/1.0e-11_8)/log_spacing) + end if ! Determine if this material has S(a,b) tables check_sab = (mat % n_sab > 0) @@ -94,9 +99,9 @@ contains ! Calculate microscopic cross section for this nuclide if (p % E /= micro_xs(i_nuclide) % last_E) then - call calculate_nuclide_xs(i_nuclide, i_sab, p % E, p % material, i) + call calculate_nuclide_xs(i_nuclide, i_sab, p % E, p % material, i, u) else if (i_sab /= micro_xs(i_nuclide) % last_index_sab) then - call calculate_nuclide_xs(i_nuclide, i_sab, p % E, p % material, i) + call calculate_nuclide_xs(i_nuclide, i_sab, p % E, p % material, i, u) end if ! ======================================================================== @@ -137,16 +142,16 @@ contains ! given index in the nuclides array at the energy of the given particle !=============================================================================== - subroutine calculate_nuclide_xs(i_nuclide, i_sab, E, i_mat, i_nuc_mat) + subroutine calculate_nuclide_xs(i_nuclide, i_sab, E, i_mat, i_nuc_mat, u) integer, intent(in) :: i_nuclide ! index into nuclides array integer, intent(in) :: i_sab ! index into sab_tables array integer, intent(in) :: i_mat ! index into materials array integer, intent(in) :: i_nuc_mat ! index into nuclides array for a material + integer, intent(in) :: u ! index into logarithmic mapping array integer :: i_grid ! index on nuclide energy grid integer :: i_low ! lower logarithmic mapping index integer :: i_high ! upper logarithmic mapping index - integer :: u ! index into logarithmic mapping array real(8), intent(in) :: E ! energy real(8) :: f ! interp factor on nuclide energy grid type(Nuclide), pointer :: nuc @@ -173,7 +178,6 @@ contains else ! Determine bounding indices based on which equal log-spaced interval ! the energy is in - u = int(log(E/1.0e-11_8)/log_spacing) i_low = nuc % grid_index(u) i_high = nuc % grid_index(u + 1) + 1 diff --git a/src/search.F90 b/src/search.F90 index dab7fa67c..d38dfb986 100644 --- a/src/search.F90 +++ b/src/search.F90 @@ -28,7 +28,6 @@ contains integer :: L integer :: R integer :: n_iteration - real(8) :: testval L = 1 R = n @@ -39,22 +38,11 @@ contains n_iteration = 0 do while (R - L > 1) - - ! Check boundaries - if (val > array(L) .and. val < array(L+1)) then - array_index = L - return - elseif (val > array(R-1) .and. val < array(R)) then - array_index = R - 1 - return - end if - ! Find values at midpoint array_index = L + (R - L)/2 - testval = array(array_index) - if (val >= testval) then + if (val >= array(array_index)) then L = array_index - elseif (val < testval) then + else R = array_index end if @@ -80,7 +68,6 @@ contains integer :: L integer :: R integer :: n_iteration - real(8) :: testval L = 1 R = n @@ -91,22 +78,11 @@ contains n_iteration = 0 do while (R - L > 1) - - ! Check boundaries - if (val > array(L) .and. val < array(L+1)) then - array_index = L - return - elseif (val > array(R-1) .and. val < array(R)) then - array_index = R - 1 - return - end if - ! Find values at midpoint array_index = L + (R - L)/2 - testval = array(array_index) - if (val >= testval) then + if (val >= array(array_index)) then L = array_index - elseif (val < testval) then + else R = array_index end if @@ -132,7 +108,6 @@ contains integer :: L integer :: R integer :: n_iteration - real(8) :: testval L = 1 R = n @@ -143,22 +118,11 @@ contains n_iteration = 0 do while (R - L > 1) - - ! Check boundaries - if (val > array(L) .and. val < array(L+1)) then - array_index = L - return - elseif (val > array(R-1) .and. val < array(R)) then - array_index = R - 1 - return - end if - ! Find values at midpoint array_index = L + (R - L)/2 - testval = array(array_index) - if (val >= testval) then + if (val >= array(array_index)) then L = array_index - elseif (val < testval) then + else R = array_index end if diff --git a/tests/run_tests.py b/tests/run_tests.py index d3b79aa3b..338732c14 100755 --- a/tests/run_tests.py +++ b/tests/run_tests.py @@ -126,7 +126,10 @@ class Test(object): # Check for MPI if self.mpi: - self.fc = os.path.join(MPI_DIR, 'bin', 'mpifort') + if os.path.exists(os.path.join(MPI_DIR, 'bin', 'mpifort')): + self.fc = os.path.join(MPI_DIR, 'bin', 'mpifort') + else: + self.fc = os.path.join(MPI_DIR, 'bin', 'mpif90') else: self.fc = FC