mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-24 20:15:26 -04:00
1541 lines
159 KiB
Text
1541 lines
159 KiB
Text
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"This Notebook illustrates the use of the openmc.mgxs.Library class specifically for application in OpenMC's multi-group mode. This example notebook follows the same process as was done in MGXS Part III, but instead uses OpenMC as the multi-group solver. During this process, this notebook will illustrate the following features:\n",
|
|
"\n",
|
|
" - Calculation of multi-group cross sections for a fuel assembly\n",
|
|
" - Automated creation and storage of MGXS with openmc.mgxs.Library\n",
|
|
" - Steady-state pin-by-pin fission rates comparison between continuous-energy and multi-group OpenMC.\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Generate Input Files"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"from IPython.display import Image\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"import numpy as np\n",
|
|
"import os\n",
|
|
"\n",
|
|
"import openmc\n",
|
|
"\n",
|
|
"%matplotlib inline"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"\n",
|
|
"First we need to define materials that will be used in the problem. Before defining a material, we must create nuclides that are used in the material."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Instantiate some Nuclides\n",
|
|
"h1 = openmc.Nuclide('H1')\n",
|
|
"b10 = openmc.Nuclide('B10')\n",
|
|
"o16 = openmc.Nuclide('O16')\n",
|
|
"u235 = openmc.Nuclide('U235')\n",
|
|
"u238 = openmc.Nuclide('U238')\n",
|
|
"zr90 = openmc.Nuclide('Zr90')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"With the nuclides we defined, we will now create three materials for the fuel, water, and cladding of the fuel pins."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# 1.6 enriched fuel\n",
|
|
"fuel = openmc.Material(name='1.6% Fuel')\n",
|
|
"fuel.set_density('g/cm3', 10.31341)\n",
|
|
"fuel.add_nuclide(u235, 3.7503e-4)\n",
|
|
"fuel.add_nuclide(u238, 2.2625e-2)\n",
|
|
"fuel.add_nuclide(o16, 4.6007e-2)\n",
|
|
"\n",
|
|
"# zircaloy\n",
|
|
"zircaloy = openmc.Material(name='Zircaloy')\n",
|
|
"zircaloy.set_density('g/cm3', 6.55)\n",
|
|
"zircaloy.add_nuclide(zr90, 7.2758e-3)\n",
|
|
"\n",
|
|
"# borated water\n",
|
|
"water = openmc.Material(name='Borated Water')\n",
|
|
"water.set_density('g/cm3', 0.740582)\n",
|
|
"water.add_nuclide(h1, 4.9457e-2)\n",
|
|
"water.add_nuclide(o16, 2.4732e-2)\n",
|
|
"water.add_nuclide(b10, 8.0042e-6)\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"With our three materials, we can now create a Materials object that can be exported to an actual XML file."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Instantiate a Materials object\n",
|
|
"materials_file = openmc.Materials((fuel, zircaloy, water))\n",
|
|
"\n",
|
|
"# Export to \"materials.xml\"\n",
|
|
"materials_file.export_to_xml()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Now let's move on to the geometry. This problem will be a square array of fuel pins and control rod guide tubes for which we can use OpenMC's lattice/universe feature. The basic universe will have three regions for the fuel, the clad, and the surrounding coolant. The first step is to create the bounding surfaces for fuel and clad, as well as the outer bounding surfaces of the problem."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"metadata": {
|
|
"collapsed": 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",
|
|
"min_x = openmc.XPlane(x0=-10.71, boundary_type='reflective')\n",
|
|
"max_x = openmc.XPlane(x0=+10.71, boundary_type='reflective')\n",
|
|
"min_y = openmc.YPlane(y0=-10.71, boundary_type='reflective')\n",
|
|
"max_y = openmc.YPlane(y0=+10.71, boundary_type='reflective')\n",
|
|
"min_z = openmc.ZPlane(z0=-10., boundary_type='reflective')\n",
|
|
"max_z = openmc.ZPlane(z0=+10., boundary_type='reflective')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"With the surfaces defined, we can now construct a fuel pin cell from cells that are defined by intersections of half-spaces created by the surfaces."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Create a Universe to encapsulate a fuel pin\n",
|
|
"fuel_pin_universe = openmc.Universe(name='1.6% Fuel Pin')\n",
|
|
"\n",
|
|
"# Create fuel Cell\n",
|
|
"fuel_cell = openmc.Cell(name='1.6% Fuel')\n",
|
|
"fuel_cell.fill = fuel\n",
|
|
"fuel_cell.region = -fuel_outer_radius\n",
|
|
"fuel_pin_universe.add_cell(fuel_cell)\n",
|
|
"\n",
|
|
"# Create a clad Cell\n",
|
|
"clad_cell = openmc.Cell(name='1.6% Clad')\n",
|
|
"clad_cell.fill = zircaloy\n",
|
|
"clad_cell.region = +fuel_outer_radius & -clad_outer_radius\n",
|
|
"fuel_pin_universe.add_cell(clad_cell)\n",
|
|
"\n",
|
|
"# Create a moderator Cell\n",
|
|
"moderator_cell = openmc.Cell(name='1.6% Moderator')\n",
|
|
"moderator_cell.fill = water\n",
|
|
"moderator_cell.region = +clad_outer_radius\n",
|
|
"fuel_pin_universe.add_cell(moderator_cell)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Likewise, we can construct a control rod guide tube with the same surfaces."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Create a Universe to encapsulate a control rod guide tube\n",
|
|
"guide_tube_universe = openmc.Universe(name='Guide Tube')\n",
|
|
"\n",
|
|
"# Create guide tube Cell\n",
|
|
"guide_tube_cell = openmc.Cell(name='Guide Tube Water')\n",
|
|
"guide_tube_cell.fill = water\n",
|
|
"guide_tube_cell.region = -fuel_outer_radius\n",
|
|
"guide_tube_universe.add_cell(guide_tube_cell)\n",
|
|
"\n",
|
|
"# Create a clad Cell\n",
|
|
"clad_cell = openmc.Cell(name='Guide Clad')\n",
|
|
"clad_cell.fill = zircaloy\n",
|
|
"clad_cell.region = +fuel_outer_radius & -clad_outer_radius\n",
|
|
"guide_tube_universe.add_cell(clad_cell)\n",
|
|
"\n",
|
|
"# Create a moderator Cell\n",
|
|
"moderator_cell = openmc.Cell(name='Guide Tube Moderator')\n",
|
|
"moderator_cell.fill = water\n",
|
|
"moderator_cell.region = +clad_outer_radius\n",
|
|
"guide_tube_universe.add_cell(moderator_cell)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Using the pin cell universe, we can construct a 17x17 rectangular lattice with a 1.26 cm pitch."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Create fuel assembly Lattice\n",
|
|
"assembly = openmc.RectLattice(name='1.6% Fuel Assembly')\n",
|
|
"assembly.pitch = (1.26, 1.26)\n",
|
|
"assembly.lower_left = [-1.26 * 17. / 2.0] * 2"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Next, we create a NumPy array of fuel pin and guide tube universes for the lattice."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 9,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Create array indices for guide tube locations in lattice\n",
|
|
"template_x = np.array([5, 8, 11, 3, 13, 2, 5, 8, 11, 14, 2, 5, 8,\n",
|
|
" 11, 14, 2, 5, 8, 11, 14, 3, 13, 5, 8, 11])\n",
|
|
"template_y = np.array([2, 2, 2, 3, 3, 5, 5, 5, 5, 5, 8, 8, 8, 8,\n",
|
|
" 8, 11, 11, 11, 11, 11, 13, 13, 14, 14, 14])\n",
|
|
"\n",
|
|
"# Initialize an empty 17x17 array of the lattice universes\n",
|
|
"universes = np.empty((17, 17), dtype=openmc.Universe)\n",
|
|
"\n",
|
|
"# Fill the array with the fuel pin and guide tube universes\n",
|
|
"universes[:,:] = fuel_pin_universe\n",
|
|
"universes[template_x, template_y] = guide_tube_universe\n",
|
|
"\n",
|
|
"# Store the array of universes in the lattice\n",
|
|
"assembly.universes = universes"
|
|
]
|
|
},
|
|
{
|
|
"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": 10,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Create root Cell\n",
|
|
"root_cell = openmc.Cell(name='root cell')\n",
|
|
"root_cell.fill = assembly\n",
|
|
"\n",
|
|
"# Add boundary planes\n",
|
|
"root_cell.region = +min_x & -max_x & +min_y & -max_y & +min_z & -max_z\n",
|
|
"\n",
|
|
"# Create root Universe\n",
|
|
"root_universe = openmc.Universe(name='root universe', universe_id=0)\n",
|
|
"root_universe.add_cell(root_cell)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"We now must create a geometry that is assigned a root universe and export it to XML."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 11,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Create Geometry and set root Universe\n",
|
|
"geometry = openmc.Geometry()\n",
|
|
"geometry.root_universe = root_universe\n",
|
|
"# Export to \"geometry.xml\"\n",
|
|
"geometry.export_to_xml()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"With the geometry and materials finished, we now just need to define simulation parameters. In this case, we will use 10 inactive batches and 40 active batches each with 5000 particles."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 12,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# OpenMC simulation parameters\n",
|
|
"batches = 50\n",
|
|
"inactive = 10\n",
|
|
"particles = 5000\n",
|
|
"\n",
|
|
"# Instantiate a Settings object\n",
|
|
"settings_file = openmc.Settings()\n",
|
|
"settings_file.batches = batches\n",
|
|
"settings_file.inactive = inactive\n",
|
|
"settings_file.particles = particles\n",
|
|
"settings_file.output = {'tallies': False}\n",
|
|
"\n",
|
|
"# Create an initial uniform spatial source distribution over fissionable zones\n",
|
|
"bounds = [-10.71, -10.71, -10, 10.71, 10.71, 10.]\n",
|
|
"uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True)\n",
|
|
"settings_file.source = openmc.source.Source(space=uniform_dist)\n",
|
|
"\n",
|
|
"# Export to \"settings.xml\"\n",
|
|
"settings_file.export_to_xml()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Let us also create a Plots file that we can use to verify that our fuel assembly geometry was created successfully."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 13,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Instantiate a Plot\n",
|
|
"plot = openmc.Plot()\n",
|
|
"plot.filename = 'materials-xy'\n",
|
|
"plot.origin = [0, 0, 0]\n",
|
|
"plot.pixels = [250, 250]\n",
|
|
"plot.width = [-10.71*2, -10.71*2]\n",
|
|
"plot.color = 'mat'\n",
|
|
"\n",
|
|
"# Instantiate a Plots object, add Plot, and export to \"plots.xml\"\n",
|
|
"plot_file = openmc.Plots([plot])\n",
|
|
"plot_file.export_to_xml()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"With the plots.xml file, we can now generate and view the plot. OpenMC outputs plots in .ppm format, which can be converted into a compressed format like .png with the convert utility."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 14,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"0"
|
|
]
|
|
},
|
|
"execution_count": 14,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"# Run openmc in plotting mode\n",
|
|
"openmc.plot_geometry(output=False)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 15,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<IPython.core.display.Image object>"
|
|
]
|
|
},
|
|
"execution_count": 15,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"# Convert OpenMC's funky ppm to png\n",
|
|
"!convert materials-xy.ppm materials-xy.png\n",
|
|
"\n",
|
|
"# Display the materials plot inline\n",
|
|
"Image(filename='materials-xy.png')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"As we can see from the plot, we have a nice array of fuel and guide tube pin cells with fuel, cladding, and water!\n",
|
|
"\n",
|
|
"# Create an MGXS Library\n",
|
|
"\n",
|
|
"Now we are ready to generate multi-group cross sections! First, let's define a 2-group structure using the built-in EnergyGroups class."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 16,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Instantiate a 2-group EnergyGroups object\n",
|
|
"groups = openmc.mgxs.EnergyGroups()\n",
|
|
"groups.group_edges = np.array([0., 0.625, 20.0e6])"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Next, we will instantiate an openmc.mgxs.Library for the energy groups with our the fuel assembly geometry."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 17,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Initialize a 2-group MGXS Library for OpenMOC\n",
|
|
"mgxs_lib = openmc.mgxs.Library(geometry)\n",
|
|
"mgxs_lib.energy_groups = groups"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Now, we must specify to the Library which types of cross sections to compute. OpenMC's multi-group mode can accept isotropic flux-weighted cross sections or angle-dependent cross sections, as well as supporting anisotropic scattering represented by either Legendre polynomials, histogram, or tabular angular distributions. At this time the MGXS Library class only supports the generation of isotropic flux-weighted cross sections and P0 scattering, so that is what will be used for this example. Therefore, we will create the following multi-group cross sections needed to run an OpenMC simulation to verify the accuracy of our cross sections: \"total\", \"absorption\", \"nu-fission\", '\"fission\", \"nu-scatter matrix\", \"multiplicity matrix\", and \"chi\".\n",
|
|
"\"multiplicity matrix\" is needed to provide OpenMC's multi-group mode with additional information needed to accurately treat scattering multiplication (i.e., (n,xn) reactions)) explicitly."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 18,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Specify multi-group cross section types to compute\n",
|
|
"mgxs_lib.mgxs_types = ['total', 'absorption', 'nu-fission', 'fission',\n",
|
|
" 'nu-scatter matrix', 'multiplicity matrix', 'chi']"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Now we must specify the type of domain over which we would like the `Library` to compute multi-group cross sections. The domain type corresponds to the type of tally filter to be used in the tallies created to compute multi-group cross sections. At the present time, the `Library` supports \"material\" \"cell\", \"universe\", and \"mesh\" domain types. In this simple example, we wish to compute multi-group cross sections only for each material and therefore will use a \"material\" domain type.\n",
|
|
"\n",
|
|
"**Note:** By default, the `Library` class will instantiate `MGXS` objects for each and every domain (material, cell, universe, or mesh) in the geometry of interest. However, one may specify a subset of these domains to the `Library.domains` property."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 19,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Specify a \"cell\" domain type for the cross section tally filters\n",
|
|
"mgxs_lib.domain_type = \"material\"\n",
|
|
"\n",
|
|
"# Specify the cell domains over which to compute multi-group cross sections\n",
|
|
"mgxs_lib.domains = geometry.get_all_materials()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"We will instruct the library to not compute cross sections on a nuclide-by-nuclide basis, and instead to focus on generating material-specific macroscopic cross sections.\n",
|
|
"\n",
|
|
"**NOTE:** The default value of the `by_nuclide` parameter is `False`, so the following step is not necessary but is included for illustrative purposes."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 20,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Do not compute cross sections on a nuclide-by-nuclide basis\n",
|
|
"mgxs_lib.by_nuclide = False"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Now we will set the scattering order that we wish to use. For this problem we will use P3 scattering. A warning is expected telling us that the default behavior (a P0 correction on the scattering data) is over-ridden by our choice of using a Legendre expansion to treat anisotropic scattering."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 21,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"/home/nelsonag/git/openmc/openmc/mgxs/library.py:398: RuntimeWarning: The P0 correction will be ignored since the scattering order 0 is greater than zero\n",
|
|
" warn(msg, RuntimeWarning)\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"# Set the Legendre order to 3 for P3 scattering\n",
|
|
"mgxs_lib.legendre_order = 3"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Now that the `Library` has been setup, lets make sure it contains the types of cross sections which meet the needs of OpenMC's multi-group solver. Note that this step is done automatically when writing the Multi-Group Library file later in the process (as part of the `mgxs_lib.write_mg_library()`), but it is a good practice to also run this before spending all the time running OpenMC to generate the cross sections."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 22,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Check the library - if no errors are raised, then the library is satisfactory.\n",
|
|
"mgxs_lib.check_library_for_openmc_mgxs()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Lastly, we use the `Library` to construct the tallies needed to compute all of the requested multi-group cross sections in each domain and nuclide."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 23,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Construct all tallies needed for the multi-group cross section library\n",
|
|
"mgxs_lib.build_library()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"The tallies can now be export to a \"tallies.xml\" input file for OpenMC.\n",
|
|
"\n",
|
|
"**NOTE:** At this point the `Library` has constructed nearly 100 distinct Tally objects. The overhead to tally in OpenMC scales as O(N) for N tallies, which can become a bottleneck for large tally datasets. To compensate for this, the Python API's `Tally`, `Filter` and `Tallies` classes allow for the smart merging of tallies when possible. The `Library` class supports this runtime optimization with the use of the optional `merge` parameter (`False` by default) for the `Library.add_to_tallies_file(...)` method, as shown below."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 24,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Create a \"tallies.xml\" file for the MGXS Library\n",
|
|
"tallies_file = openmc.Tallies()\n",
|
|
"mgxs_lib.add_to_tallies_file(tallies_file, merge=True)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"In addition, we instantiate a fission rate mesh tally to compare with the multi-group result."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 25,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Instantiate a tally Mesh\n",
|
|
"mesh = openmc.Mesh()\n",
|
|
"mesh.type = 'regular'\n",
|
|
"mesh.dimension = [17, 17]\n",
|
|
"mesh.lower_left = [-10.71, -10.71]\n",
|
|
"mesh.upper_right = [+10.71, +10.71]\n",
|
|
"\n",
|
|
"# Instantiate tally Filter\n",
|
|
"mesh_filter = openmc.MeshFilter(mesh)\n",
|
|
"\n",
|
|
"# Instantiate the Tally\n",
|
|
"tally = openmc.Tally(name='mesh tally')\n",
|
|
"tally.filters = [mesh_filter]\n",
|
|
"tally.scores = ['fission']\n",
|
|
"\n",
|
|
"# Add tally to collection\n",
|
|
"tallies_file.append(tally, merge=True)\n",
|
|
"\n",
|
|
"# Export all tallies to a \"tallies.xml\" file\n",
|
|
"tallies_file.export_to_xml()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"source": [
|
|
"Time to run the calculation and get our results!"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 26,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
" %%%%%%%%%%%%%%%\n",
|
|
" %%%%%%%%%%%%%%%%%%%%%%%%\n",
|
|
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n",
|
|
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n",
|
|
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n",
|
|
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n",
|
|
" %%%%%%%%%%%%%%%%%%%%%%%%\n",
|
|
" %%%%%%%%%%%%%%%%%%%%%%%%\n",
|
|
" ############### %%%%%%%%%%%%%%%%%%%%%%%%\n",
|
|
" ################## %%%%%%%%%%%%%%%%%%%%%%%\n",
|
|
" ################### %%%%%%%%%%%%%%%%%%%%%%%\n",
|
|
" #################### %%%%%%%%%%%%%%%%%%%%%%\n",
|
|
" ##################### %%%%%%%%%%%%%%%%%%%%%\n",
|
|
" ###################### %%%%%%%%%%%%%%%%%%%%\n",
|
|
" ####################### %%%%%%%%%%%%%%%%%%\n",
|
|
" ####################### %%%%%%%%%%%%%%%%%\n",
|
|
" ###################### %%%%%%%%%%%%%%%%%\n",
|
|
" #################### %%%%%%%%%%%%%%%%%\n",
|
|
" ################# %%%%%%%%%%%%%%%%%\n",
|
|
" ############### %%%%%%%%%%%%%%%%\n",
|
|
" ############ %%%%%%%%%%%%%%%\n",
|
|
" ######## %%%%%%%%%%%%%%\n",
|
|
" %%%%%%%%%%%\n",
|
|
"\n",
|
|
" | The OpenMC Monte Carlo Code\n",
|
|
" Copyright | 2011-2016 Massachusetts Institute of Technology\n",
|
|
" License | http://openmc.readthedocs.io/en/latest/license.html\n",
|
|
" Version | 0.8.0\n",
|
|
" Git SHA1 | 346deb258f969a2522bef0774ae1576043ac0de7\n",
|
|
" Date/Time | 2016-12-02 18:12:03\n",
|
|
" OpenMP Threads | 8\n",
|
|
"\n",
|
|
" ===========================================================================\n",
|
|
" ========================> INITIALIZATION <=========================\n",
|
|
" ===========================================================================\n",
|
|
"\n",
|
|
" Reading settings XML file...\n",
|
|
" Reading geometry XML file...\n",
|
|
" Reading materials XML file...\n",
|
|
" Reading cross sections XML file...\n",
|
|
" Reading U235 from /opt/xsdata/nndc/U235.h5\n",
|
|
" Reading U238 from /opt/xsdata/nndc/U238.h5\n",
|
|
" Reading O16 from /opt/xsdata/nndc/O16.h5\n",
|
|
" Reading Zr90 from /opt/xsdata/nndc/Zr90.h5\n",
|
|
" Reading H1 from /opt/xsdata/nndc/H1.h5\n",
|
|
" Reading B10 from /opt/xsdata/nndc/B10.h5\n",
|
|
" Maximum neutron transport energy: 2.00000E+07 eV for U235\n",
|
|
" Reading tallies XML file...\n",
|
|
" Building neighboring cells lists for each surface...\n",
|
|
" Initializing source particles...\n",
|
|
"\n",
|
|
" ===========================================================================\n",
|
|
" ====================> K EIGENVALUE SIMULATION <====================\n",
|
|
" ===========================================================================\n",
|
|
"\n",
|
|
" Bat./Gen. k Average k \n",
|
|
" ========= ======== ==================== \n",
|
|
" 1/1 1.05201 \n",
|
|
" 2/1 1.02017 \n",
|
|
" 3/1 1.02398 \n",
|
|
" 4/1 1.02677 \n",
|
|
" 5/1 1.01070 \n",
|
|
" 6/1 1.02964 \n",
|
|
" 7/1 1.02163 \n",
|
|
" 8/1 1.04524 \n",
|
|
" 9/1 1.00773 \n",
|
|
" 10/1 1.01536 \n",
|
|
" 11/1 1.02992 \n",
|
|
" 12/1 1.03248 1.03120 +/- 0.00128\n",
|
|
" 13/1 0.99044 1.01761 +/- 0.01361\n",
|
|
" 14/1 1.01484 1.01692 +/- 0.00965\n",
|
|
" 15/1 1.01491 1.01652 +/- 0.00748\n",
|
|
" 16/1 1.03809 1.02011 +/- 0.00709\n",
|
|
" 17/1 1.02536 1.02086 +/- 0.00604\n",
|
|
" 18/1 1.03663 1.02283 +/- 0.00559\n",
|
|
" 19/1 1.03902 1.02463 +/- 0.00525\n",
|
|
" 20/1 1.01557 1.02373 +/- 0.00478\n",
|
|
" 21/1 1.01286 1.02274 +/- 0.00443\n",
|
|
" 22/1 1.01392 1.02200 +/- 0.00411\n",
|
|
" 23/1 1.04439 1.02372 +/- 0.00416\n",
|
|
" 24/1 1.04034 1.02491 +/- 0.00403\n",
|
|
" 25/1 0.99433 1.02287 +/- 0.00427\n",
|
|
" 26/1 1.02720 1.02314 +/- 0.00400\n",
|
|
" 27/1 1.03545 1.02387 +/- 0.00383\n",
|
|
" 28/1 1.03853 1.02468 +/- 0.00370\n",
|
|
" 29/1 1.02735 1.02482 +/- 0.00350\n",
|
|
" 30/1 1.02429 1.02480 +/- 0.00332\n",
|
|
" 31/1 1.02901 1.02500 +/- 0.00317\n",
|
|
" 32/1 1.03296 1.02536 +/- 0.00304\n",
|
|
" 33/1 1.03605 1.02582 +/- 0.00294\n",
|
|
" 34/1 1.04247 1.02652 +/- 0.00290\n",
|
|
" 35/1 1.02088 1.02629 +/- 0.00279\n",
|
|
" 36/1 1.03017 1.02644 +/- 0.00269\n",
|
|
" 37/1 1.03216 1.02665 +/- 0.00259\n",
|
|
" 38/1 1.01459 1.02622 +/- 0.00254\n",
|
|
" 39/1 1.03706 1.02659 +/- 0.00248\n",
|
|
" 40/1 1.01383 1.02617 +/- 0.00243\n",
|
|
" 41/1 0.99028 1.02501 +/- 0.00262\n",
|
|
" 42/1 1.02969 1.02516 +/- 0.00254\n",
|
|
" 43/1 1.02097 1.02503 +/- 0.00247\n",
|
|
" 44/1 1.02650 1.02507 +/- 0.00239\n",
|
|
" 45/1 1.03939 1.02548 +/- 0.00236\n",
|
|
" 46/1 1.00974 1.02505 +/- 0.00233\n",
|
|
" 47/1 1.02563 1.02506 +/- 0.00227\n",
|
|
" 48/1 1.00377 1.02450 +/- 0.00228\n",
|
|
" 49/1 0.99082 1.02364 +/- 0.00238\n",
|
|
" 50/1 1.00805 1.02325 +/- 0.00235\n",
|
|
" Creating state point statepoint.50.h5...\n",
|
|
"\n",
|
|
" ===========================================================================\n",
|
|
" ======================> SIMULATION FINISHED <======================\n",
|
|
" ===========================================================================\n",
|
|
"\n",
|
|
"\n",
|
|
" =======================> TIMING STATISTICS <=======================\n",
|
|
"\n",
|
|
" Total time for initialization = 4.7681E-01 seconds\n",
|
|
" Reading cross sections = 3.4878E-01 seconds\n",
|
|
" Total time in simulation = 7.8339E+00 seconds\n",
|
|
" Time in transport only = 7.6987E+00 seconds\n",
|
|
" Time in inactive batches = 9.5272E-01 seconds\n",
|
|
" Time in active batches = 6.8812E+00 seconds\n",
|
|
" Time synchronizing fission bank = 4.8350E-03 seconds\n",
|
|
" Sampling source sites = 3.3404E-03 seconds\n",
|
|
" SEND/RECV source sites = 1.4577E-03 seconds\n",
|
|
" Time accumulating tallies = 1.0196E-04 seconds\n",
|
|
" Total time for finalization = 2.6290E-06 seconds\n",
|
|
" Total time elapsed = 8.3293E+00 seconds\n",
|
|
" Calculation Rate (inactive) = 52481.1 neutrons/second\n",
|
|
" Calculation Rate (active) = 29064.6 neutrons/second\n",
|
|
"\n",
|
|
" ============================> RESULTS <============================\n",
|
|
"\n",
|
|
" k-effective (Collision) = 1.02354 +/- 0.00215\n",
|
|
" k-effective (Track-length) = 1.02325 +/- 0.00235\n",
|
|
" k-effective (Absorption) = 1.02582 +/- 0.00193\n",
|
|
" Combined k-effective = 1.02474 +/- 0.00151\n",
|
|
" Leakage Fraction = 0.00000 +/- 0.00000\n",
|
|
"\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"0"
|
|
]
|
|
},
|
|
"execution_count": 26,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"# Run OpenMC\n",
|
|
"openmc.run()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"To make the files available and not be over-written when running the multi-group calculation, we will now rename the statepoint and summary files."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 27,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Move the StatePoint File\n",
|
|
"ce_spfile = './ce_statepoint.h5'\n",
|
|
"os.rename('statepoint.' + str(batches) + '.h5', ce_spfile)\n",
|
|
"# Move the Summary file\n",
|
|
"ce_sumfile = './ce_summary.h5'\n",
|
|
"os.rename('summary.h5', ce_sumfile)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Tally Data Processing\n",
|
|
"\n",
|
|
"Our simulation ran successfully and created statepoint and summary output files. Let's begin by loading the StatePoint file, but not automatically linking the summary file."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 28,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Load the statepoint file, but not the summary file, as it is a different filename than expected.\n",
|
|
"sp = openmc.StatePoint(ce_spfile, autolink=False)"
|
|
]
|
|
},
|
|
{
|
|
"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. This 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. Normally this would not need to be performed, but since we have renamed our summary file to avoid conflicts with the Multi-Group calculation's summary file, we will load this in explicitly."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 29,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"su = openmc.Summary(ce_sumfile)\n",
|
|
"sp.link_with_summary(su)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"The statepoint is now ready to be analyzed by the `Library`. We simply have to load the tallies from the statepoint into the `Library` and our `MGXS` objects will compute the cross sections for us under-the-hood."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 30,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Initialize MGXS Library with OpenMC statepoint data\n",
|
|
"mgxs_lib.load_from_statepoint(sp)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"The next step will be to prepare the input for OpenMC to use our newly created multi-group data."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Multi-Group OpenMC Calculation"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"We will now use the `Library` to produce a multi-group cross section data set for use by the OpenMC multi-group solver. \n",
|
|
"Note that since this simulation included so few histories, it is reasonable to expect some divisions by zero errors. This will show up as a runtime warning in the following step."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 31,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"/home/nelsonag/git/openmc/openmc/tallies.py:1974: RuntimeWarning: invalid value encountered in true_divide\n",
|
|
" self_rel_err = data['self']['std. dev.'] / data['self']['mean']\n",
|
|
"/home/nelsonag/git/openmc/openmc/tallies.py:1975: RuntimeWarning: invalid value encountered in true_divide\n",
|
|
" other_rel_err = data['other']['std. dev.'] / data['other']['mean']\n",
|
|
"/home/nelsonag/git/openmc/openmc/tallies.py:1976: RuntimeWarning: invalid value encountered in true_divide\n",
|
|
" new_tally._mean = data['self']['mean'] / data['other']['mean']\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"# Create a MGXS File which can then be written to disk\n",
|
|
"mgxs_file = mgxs_lib.create_mg_library(xs_type='macro', xsdata_names=['fuel', 'zircaloy', 'water'])\n",
|
|
"\n",
|
|
"# Write the file to disk using the default filename of `mgxs.h5`\n",
|
|
"mgxs_file.export_to_hdf5()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"OpenMC's multi-group mode uses the same input files as does the continuous-energy mode (materials, geometry, settings, plots ,and tallies file). Differences would include the use of a flag to tell the code to use multi-group transport, a location of the multi-group library file, and any changes needed in the materials.xml and geometry.xml files to re-define materials as necessary (for example, if using a macroscopic cross section library instead of individual microscopic nuclide cross sections as is done in continuous-energy, or if multiple cross sections exist for the same material due to the material existing in varied spectral regions).\n",
|
|
"\n",
|
|
"Since this example is using material-wise macroscopic cross sections without considering that the neutron energy spectra and thus cross sections may be changing in space, we only need to modify the materials.xml and settings.xml files. If the material names and ids are not otherwise changed, then the geometry.xml file does not need to be modified from its continuous-energy form. The tallies.xml file will be left untouched as it currently contains the tally types that we will need to perform our comparison. \n",
|
|
"\n",
|
|
"First we will create the new materials.xml file."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 32,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Instantiate our Macroscopic Data\n",
|
|
"fuel_macro = openmc.Macroscopic('fuel')\n",
|
|
"zircaloy_macro = openmc.Macroscopic('zircaloy')\n",
|
|
"water_macro = openmc.Macroscopic('water')\n",
|
|
"\n",
|
|
"# Now re-define our materials to use the Multi-Group macroscopic data\n",
|
|
"# instead of the continuous-energy data.\n",
|
|
"# 1.6 enriched fuel UO2\n",
|
|
"fuel_mg = openmc.Material(name='UO2')\n",
|
|
"fuel_mg.add_macroscopic(fuel_macro)\n",
|
|
"\n",
|
|
"# cladding\n",
|
|
"zircaloy_mg = openmc.Material(name='Clad')\n",
|
|
"zircaloy_mg.add_macroscopic(zircaloy_macro)\n",
|
|
"\n",
|
|
"# moderator\n",
|
|
"water_mg = openmc.Material(name='Water')\n",
|
|
"water_mg.add_macroscopic(water_macro)\n",
|
|
"\n",
|
|
"# Finally, instantiate our Materials object\n",
|
|
"materials_file = openmc.Materials((fuel_mg, zircaloy_mg, water_mg))\n",
|
|
"\n",
|
|
"# Set the location of the cross sections file\n",
|
|
"materials_file.cross_sections = './mgxs.h5'\n",
|
|
"\n",
|
|
"# Export to \"materials.xml\"\n",
|
|
"materials_file.export_to_xml()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"No geometry file neeeds to be written as the continuous-energy file is correctly defined for the multi-group case as well."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Next, we can make the changes we need to the settings file.\n",
|
|
"These changes are limited to telling OpenMC we will be running a multi-group calculation and pointing to the location of our multi-group cross section file."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 33,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Set the energy mode\n",
|
|
"settings_file.energy_mode = 'multi-group'\n",
|
|
"\n",
|
|
"# Export to \"settings.xml\"\n",
|
|
"settings_file.export_to_xml()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Finally, since we want similar tally data in the end, we will leave our pre-existing `tallies.xml` file for this calculation.\n",
|
|
"\n",
|
|
"Before running the calculation let's visually compare a subset of the newly-generated multi-group cross section data to the continuous-energy data. We will do this using the cross section plotting functionality built-in to the OpenMC Python API."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 34,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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\nrb+2zezZxYktqaIkHrd693/2bkHPgZvt0pwKUlVVRYcOHX4btzImLiJuSucmm7j9YcANMXz6qZuN\n8c03bobH0qXuza9TJzd1d8013eOZM+Ghh+Dkk+Gf/4S//Q2OOMIN9VSKb76pW08DYNttXcLlT539\nxz/yb6t5Hn9Znn664fm9egWfm22c/Vbvr9ruu7u1XNZc0/1bpbMej+jeecclpqm3CRPc8OSsWfWT\nuk6d3E7DG2zgNn70H2+wgUtMSp2UT5sG667rfsfWX9/17C1c6Iqnc/E3l0v9fZozx30P/pAkJDep\nLVlxqapG2t+lElRXV1txqSmZNm3csEu+NVm//73rkr74Yre8+wUXwPHHu03vevUKX+So6noANtnE\nLSFfqPQ37wUL3AqltbVwwAGux2e//eqeb9PGLcx2883hr+Vfx589dMstMHRo3f20afWHVvzzW7d2\nOxXvumv99n74wZ1z8MF1tSA+v6hvrbXc/XnnwdlnN4wpqW8OlWCHHYJ7osAl499+65KRadNcjc6U\nKe7+3XddrY2f9DVr5nodUhOTzTZzvYUbbVSc2WZTp9bNklp/fXf/zTcNp3YH8ROPmTPrjg0Y4D6U\nBE3tztfMma5X9YADoreRj6jFpWWe9GeMCWPrreGpp+Czz+CGG9wb7YgRLnHYfntXY7LpprCic/Z2\n5s51U/QeecT9YR47FlZaKXpcqrD55nUJEbg3C3Cb7+20k+vZ6du3/uv82Fdf3Q0jZTNmDFx/Pfzn\nP3VDLf4byeGHu4Rj2DB3y1ast8subshrt93qjvl/+O+/3y1wFqSLVzq/eLF7s1t33YY/gyB9+rjY\nTTStWtUlEkGWLq1LSFJvn3zikl6/2LNVK/c72qMHbLWV+13s06fwWWcffliXUPuJx9dfh0s8Uns8\nPvussHiOP95t+wAJToZVNfQN2AV4GvgSmIyr++gfpa0k3IDegI4ZM0aNqSRLl6q+9JLqxRerDhqk\n2rGjKqjSZYzyd3TljcZo9+6q226rusceqrvtptq3r2rr1qorr6z697+rtmqlet55ma8xZozqwIGq\nCxYEPz9rluq0ae66LVvWHX/jDXds771V77rLPf7mm+A2fv3VxeT+VNa/+Xr3dl8vW+biAdX+/eue\n79Sp7jWffBLcRqr06/ixB8UAqlde6e6rqtx5p5yS+VxQHTzY3Y8aVXds663rHl9/ffbXN6VbMc2a\npfrKK6o33qh68smqO+6o2r593bU33FD1j390/07Ll4dre8YM18b997uvV6xQbdNG9dpr83v9Zpu5\n1/foUXcs/WeS/nw26b9TpTJmzBgFFOitebznRllA7EjgLuBx4EZAgB2Bl0XkWFV9oPB0yBiTj5Yt\n3dTQgQPrjs2dC09/CMe+CweeMJGWC2D+fFfI1qo5rN0aBhwB++ztehq+bwFX3QKvTnI9Kp07u8Wx\nWrVyt9tvhwmfwZX3uKEIv15i6VJXR3H55V7tRBdo3gbGfgf33AMPP+KOfbEQ/nID7HQYzG4JszMs\nh35ElXtdutMudzUAY79z7b09BX5q7x4vXtU7Dgy/A/7sVZ29M5V6k/vHBlzz/Wmw3XZ1X2sLd959\nL8ORRzY8f0Fb1+bXS9x5J18Cv6wWHDPAz6u48+e1qYtlTqu6x2NmwMYDsk8DbiqC/n3i1GEz2Gkz\n9zsIbmhm2jTXuzBxIrz3Ptx/rCtc3WorV+zas6frtchWzHrffdCiK3TpXfc9bNQfXvoMds3je5qh\n0G5jmLYs5Wfg/X6kfp36e57JvPlw5j/J+XtfDBN/CLcToqiG64sRkYnAHapanXb8LOAkVd08VIMJ\nICK9gTFjxoyxGg/TKEyeM5lNbs6xQYkxxsRhBnAHAH1UdWyu06MkHkuAHqr6ZdrxjYBPVLVNqAYT\nwE88BgwYYLNaTKMxec7kSEumr1jhFvNautTdWrd2n/o+/NDVQixa5IrfWrRwRZrrrANvvOEK7C7+\nG3yZ8gl+yy1dgd9RR7n7fCxe7HpofvrJzdzJ5sAD3Qwf38KfYNddGp6XrcYitSYu9bzly+v3iFRX\nQ1WVqw3xp9CCu/6zzzZsd//94Zln3PTKww5zPUWvvgqffgZ/OtVNi164EB57zNWWbLZZ9kLjm26C\n007L/HwlS1oNzK+/ugLRjz5yt48/rtulWMT9n/jlF1ew+q/bYbVV61779tuuXunhh2HDDTNf47vv\n3O/I0Ue7OqgnnnD/h/zfAf9n0qePu2aLFvDCC65gO8iCBW7mVapi/1xfeOIFRj05ioU/LmTc++Mg\nz8Qj51hM+g1X13FKwPFTgMlh20vCDavxMCY2S5e6Ooy4LF/u6leCagOCakbC1hA8/3zm81LbeO01\nd7/vvvXPmTIl+JonnujuP/5YdaWVVGtq3PlvvumOn322qzsA1c8/d8+JZK+DKHctRiXWeMRl9mz3\nu3L77arXXKP65JPudz3d4sWq7dqp/vWv2dt77z33vT/yiLt/9VX3u576M/n11/o/p1GjMrc3b175\nfmSE0ZwAAB0ESURBVK5Fr/EArgVuFJFtgHe8i+0MHAucEaE9Y0wjEvc6Cs2bu9k3p54KDz5Yd3yv\nveqmMaaaOjXzDIggPXpkfm6VVdxeHFC3KdxWW9U/Z4MNXK1L+tRF/+ewdGn9DfBSjw8d6hZS22ST\nuueWLs0/dlM6HTvC3nnsHdqmDZx4optxduaZmaeq+0vub7tt3df+9gFQlz7kK2g6vWoy9xIKvSaH\nqt4GHAFsBVwP3ABsCRyuqrdne60xxkTRoYNbdv6DD+qOdewYfO7667si2HylT4tNVZuy9vJKK7lC\nxBEjGp63774Nj51/PuyzT8Nplf6ib8uWuWnBqcMrlbgirWno/PPdv+0pp2ReWG7SJFfc3bWr+12e\nOrV+grp4ccPEI0wiAu53zLdihZvSngSRFgNT1SdUdWdV7ejddlbVp+IOzhhjUvXt69Y8uOSS4ATA\nd+21+beZ7RNhal2KiKvDCFqEqlnAX9Ju3dzKm61b1z/uJxepbwq+TAtcjR+fOcZi8VfYNeGttZbb\nQ+iJJ1yvVtC/9cSJ7vdJxM2gGTeu/g7NP/7YMGnJlnj46+akWrKk7jXDh8PGG4fbmqBYQiceItJP\nRLYLOL6diPQNeo0xxsSlc2e3g2y24ZTU56qqol9r7bXrHgclF1H4PR5BQyqZEg9/L5NSOvPM0l+z\nMTn4YLjzTpeADBzoilV9qvDWW3VL+Pfu7RbxS929euHChonGxx8HX2vLLYOHDD//3P3eirjicHDJ\nSLlF+a90C9A14Pg63nPGGFN2W2/t7lesyH3uH/4QfDx1T5h8x8qvuy57j0u2Ho9yDbWccELDY5tt\nVvf4xhtLF0tjcsIJbon+KVPcz/PCC10tx6hRLhE59FB3Xr9+7uvUocSgxOP884Ov8+mn9b+++253\nP2lS3TG/rSTUfERJPLYAgqbLjPOeq1hVVVUMHjyYmpqacodijCmQX5+RPsUwyP335x4/z/cP9qab\nwllnZX4+tbg0nd/jcdFF+V0rLrk2uGus03hLYaedXAJw9tluyf+uXV3tz847u31ZwBWttmnjklbf\nrFnRNh4cObJu35vp0+uOF2MTw5qaGgYPHkxVyG7FKInHEmDNgONdgOUBxytGdXU1tbW1toaHMY1A\nt27uU+OBBxbeDuQeajn5ZHefK0FJLS5N97vfufstSvwRLuqbUvreO1HstFPhbSRdu3auJum779z6\nHg8+CP/9b12P2iqruF63CRPc8F6bNvDFF+GLScHNutpoIzeb5sIL6477K+Squv2M/M0PCzFkyBBq\na2uprq7OfXKKKInHf4ErRKSDf0BEVgUuB16M0J4xxhRFu3aFt+EnCrmGQdp4SyfmSlD8dpYHfEy7\n5hq3tH2m5CVoJk8cXef5DEcFue22hsdeeSVcG2+9Fe3alahDB5dcHn54w00Zr7rKLZh39dWu12z8\n+GiJR5cu7nfw+OPrH5861d0vX+6m+h57bKRvIRZREo9zcDUe34jIqyLyKjAVWAsI2CzaGGMql594\n5NpS3U88ciUCfjtBiUezZm533ExrPwTN5ImSeKRPId544/Bt+I45pu7xcce5lV1V69apyCa1eLep\n69jRTRn/wx9cL93DDwf/DHMlI2t64xGZeqP8KbvlrPWIso7Ht8DWwHnAZ8AY3MJhW6nq9GyvNcaY\nSuMnFOnTYtP5n2BzvTH4PR7t22c+Z489XFf8OuvUP37KKfULBiHaG0j6UE4+Qya3B6zSpArnnFP/\na1967EE++ST3OU3R6ae74Rd/1kuq1Cm3QfxEec2gggjqNlKsqMQDQFV/VtU7VHWoqp6jqveqasCI\npTHGVLZ//ct1gXfokP08P0HJNV2xTRv4z3/gjjuynzdoUMNptCKuGz79WFjpw0H5dOkff7zrok+3\n5ZZul9dsttsueJG11VbLfd2mqGNHeP314Cnj+e6/0rlz8PEXXnD3/vTacoiyjscxIrJfytdXich8\nEXlHRLrFG54xxpRX376uCzzXG7yfeOT6RApw5JGZV15N9eCDbn2HbKKsL5I6TTiXVVZx9y1a1H1a\n9vmfqrt6CywcfXT952fPdlNxn3yy7pj/xmey22QTt27HZZfVP3bYYfD++3XHUutzUofoMiUe6d58\n0y1mVkpRejwuBBYDiMgOwDDcsMtsIFxpqzHGNBJ+F3ecCzS1bx/c3Z7KT4i6dKn/JpVNUL2Kv1Lp\nX/4Cf/yje/zUU5kTn++/r9srp10712uy2271z+nY0U3FXWutuqmj/fvnF6NxCeKFF7qf9RtvuELc\nDTd0u9rOnw+33ur+3X3PP1/3ePXV3fDYrFmZ2xdx/y6lnkUVJfHoituhFuAg4FFVvQO4ALBfKWNM\nk+T3IhRjvYR0Tz9d93jECNcrMWOGe5OaOjV4qm4qv7jUTwJ69ICLL4ZddnFriNx3nzs+eHDmrd07\ndQoX87nnujfQtm3dAlflWAa+UnXq5P6tOnVyGybOmQP/+Idbjn3vvV3i8Le/NazVOflk1/Nx1VW5\nrzFlSvDxmTPrF0LfeSc89pjb9+X882GbbervN5QP0ZDzdUTke2AvVR0nIuOAalW9V0Q2BD5S1Rgm\nsJWWiPQGxowZM4bevXuXOxxjTAWaMwf2288NK6y1VvGv5/d0ZPoT7q+YGbQq6bBhcPPNMHq0WzUz\nzuua4uvZ0w3DdOjgkjm/ty0b1dzDcmPGuETFT0zPO89N7wU46CC3BHv6sMxqq0GzZmOZM6cPQB9V\nzTE4CDkmiAV6ERjpJR2bAM96x3sAX0dozxhjKl7HjvDee6W9ZrY9XHbdtWG9yeOPu655f3FmSx4q\n04YbusRjiy3ySzrAJYwrVrhN4jIVSvs9F1OmwIsvut4Nn1+nc+ihrq2ZM93zm23mhuPC9HpESTyG\nAiNwQy6HquocP2agotcar6qqokOHDgwZMsRWLzXGJNr8+bnfdPbay31iHTECFixwG5eBq92AaIWp\nL78cz8JsJrr113f3G20U7nXNmrlhuV12cbNmMkndlbmqyvVy7LEHnHRSXbExuCXTzzuvhgULFoSK\nI/RQS2NkQy3GmMbsu+/ctul+DcDPP7vpvGeemYxNw0w4N94IZ5zh6nIuvTRaGzvuCO++6+p7nn66\nfrKR6v77M2+i6Bs7dix9+hR3qMVfIv0EYHNAgYnAv1U1XNpjjDGm6Lp0qT/7YeWV3SdZU5n86cu5\nVtPN5oYb3NTmiy+u27Bw+HAYOBDmzXNDKD17Bq+/UqjQYYtIX2AUbkrtaECAKuBCEdkzn2zHGGOM\nMdH07evWjRk0KHob/frVFRa3agVz58Kqq9bvAfv558LizCRKvlQN1AInqepyABFpAYwErgcGxBee\nMcYYY1J17ZrfQnVhlHIV2SiJR19Skg4AVV0uIlcBZVyE1RhjjDFJF2UBsR+B9QKOdwUWFhaOMcYY\nYxqzKInHQ8C/ReRwEekqIuuKyBG4oZaKnk5rjDHGmOKKMtRyDm4my70pr18G3Ab8Jaa4jDHGGNMI\nhU48VHUpcIaIXABsiJvV8qWqLoo7OGOMMcY0LqESD2/2yi/ANqr6CTChKFEZY4wxplEKVePhzWSZ\nBjQvTjjxEZHHRWSuiDxc7liMMcYY40QpLr0MuFxEVo87mJjdABxV7iCMMcYYUydKcekwYCNghoh8\nA9Rb20xVE7HZiaq+LiK7lDsOY4wxxtSJkng8GXsUxhhjjGkSosxqGR53ECLSHzgX6AN0AQ5S1dq0\nc4bipvKuBXwEnKaqH8QdizHGGGOKJ3SNh4j0E5HtAo5v520gF8XKwHhgKG6NkPS2DweuBS4BeuES\nj1EiskbKOX8WkXEiMlZEWkeMwxhjjDFFFKW49Bbc8ujp1vGeC01VX1DVv6nqk7h1QdJVAber6r2q\nOgk4FVgEHJ/Sxq2q2ktVe6vqEu+wZGjPGGOMMWUQJfHYAhgbcHyc91ysRKQlbgjmZf+YqirwErBD\nlte9iFvefR8RmRbUS2OMMcaY0opSXLoEWBOYkna8C7C84ekFWwO3bsistOOzgE0zvUhVB4W9UFVV\nFR06dKh3bMiQIQwZMiRsU8YYY0yjU1NTQ83/t3fvwXLW9R3H3x8RAiYKAnITEdNAGZRbAlSuQRkm\nrZaLlGsZwAawNNh2tE4GaJUZS+2IQC9OGesgEAaMpQqUUkrGcDFQ7rkQkyJCCSGGW0IgXAwQON/+\n8Xs2PNmchH327D7PL+d8XjM755zdZ5/9nOc8+5zv/G47fe2PZVu5cmWlfSg1HlR4gjSdVGQcGxEr\ni/u2Is12eTEiTqq0w3X3P0BpcKmkHYGlwEER8WBpu0uAQyPi4KG8XrGv8cDs2bNnM358FrOBzczM\nNgpz5sxhwoQJABMiYrAekbV0+yFxs4DFkuYW9+1LaoHox4Jdy4F3Sa0sZduxbiuImZmZZayb6bRL\nJe0NnAbsA6wCrgamR8TqHucjIlZLmg0cCbRaQVT8/M+9fK1WV4u7V8zMzDas1e3S966WfpA0mrQa\nqkgDV78O3AWsiIglkk4CpgF/CjxEmuVyArBHRCzrweu7q8XMzKwLdXS1ACBpT2AXYLPy/e0Lf3Vo\nf1KhEcXtsuL+acDkiLihWLPj26Qul3nApF4UHWZmZlafbgaXjgVuAvYiFQmtdTICICKy/+Tadq0W\nj8MPP9xdLWZmZh0od7XMmjULOmzx6Kbw+E/SYM9zSFNqDwS2IbVSfCMi7qkavmnuajEzM+tOHV0t\nBwGfj4hlxdTXgYi4V9IFpMGe+3WxTzMzMxsBulm5dBPg9eL75cBOxfeL2cCCXmZmZmbdtHgsAPYm\ndbM8CEyV9DbwFdZdzXSj4um0ZmZmnaltOq2kScDoiLhR0jjgVmB34CXg5Ii4s9IOM+AxHmZmZt3p\n+xiPiJhR+v5JYA9JWwMvRw6LgpiZmVm2ul7HoywiVvRiP2ZmZja8dVx4SLqqk+0iYnL3cZrlMR5m\nZmad6fsYj2Lq7GJgLu8tGraOiPhSpQQZ8BgPMzOz7vRzjMcPgFOAscBVwHXuYjEzM7MqOl7HIyKm\nADsC3wWOBpZIukHSpOLTYs3MzMw2qNICYhHxVkRMj4ijgD2BhcAVwGJJY/oR0MzMzIaPocxqaX2S\nrOhuBdTseHCpmZlZZ2pZQEzSKOB4YDJwKGnxsKuB2yNioNIrZ8SDS83MzLrTt8Glkq4gDS59hlRs\nnBIRL3Ub1MzMzEaeKl0t55KKjkXARGDiYGNKI+L43kQzMzOz4aZK4XEtaUyHmZmZWVc6Ljwi4st9\nzGFmZmYjQE8+q2W48KwWMzOzztQyq2W48qwWMzOz7lSd1TIs1t8wMzOzjYMLDzMzM6uNCw8zMzOr\njQsPMzMzq40LDzMzM6uNp9OWeDqtmZlZZzyddgg8ndbMzKw7nk5rZmZm2XLhYWZmZrVx4WFmZma1\nceFhZmZmtXHhYWZmZrVx4WFmZma1ceFhZmZmtXHhYWZmZrVx4WFmZma18ZLpJV4y3czMrDNeMn0I\nvGS6mZlZd7xkupmZmWXLhYeZmZnVxoWHmZmZ1caFh5mZmdXGhYeZmZnVxoWHmZmZ1caFh5mZmdXG\nhYeZmZnVxoWHmZmZ1WZYFh6SdpZ0l6SFkuZJOqHpTGZmZjZ8P6vlHeAvI2K+pO2B2ZL+KyJWNR3M\nzMxsJBuWLR4R8XxEzC++fwFYDmzdbKrqpk+f3nSEQTlXNc7VuRwzgXNV5VydyzET9DfXsCw8yiRN\nAD4QEUubzlLVSDwhh8K5qskxV46ZwLmqcq7O5ZgJRkDhIekwSbdIWippQNIxg2xznqRFklZJekDS\nAR3sd2tgGnBOP3KbmZlZNVkUHsBoYB5wHhDtD0o6GbgMuAjYD3gUmCFp29I2UyTNlTRH0ihJmwE3\nAd+JiAfr+CV6benSPBtpnKsa5+pcjpnAuapyrs7lmAn6myuLwaURcTtwO4AkDbLJ14B/jYhri23O\nBb4ITAYuKfZxBXBF6wmSpgN3RMSP+5u+f0biCTkUzlVNjrlyzATOVZVzdS7HTDACCo8NkbQpMAH4\n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\n",
|
|
"text/plain": [
|
|
"<matplotlib.figure.Figure at 0x7fc8f4517550>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<matplotlib.figure.Figure at 0x7fc8f451b240>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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\nuCVeMgAAAABJRU5ErkJggg==\n",
|
|
"text/plain": [
|
|
"<matplotlib.figure.Figure at 0x7fc8f40657f0>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"# First lets plot the fuel data\n",
|
|
"# We will first add the continuous-energy data\n",
|
|
"fig = openmc.plot_xs(fuel, ['total'])\n",
|
|
"\n",
|
|
"# We will now add in the corresponding multi-group data and show the result\n",
|
|
"openmc.plot_xs(fuel_mg, ['total'], plot_CE=False, mg_cross_sections='./mgxs.h5', axis=fig.axes[0])\n",
|
|
"fig.axes[0].legend().set_visible(False)\n",
|
|
"plt.show()\n",
|
|
"plt.close()\n",
|
|
"\n",
|
|
"# Then repeat for the zircaloy data\n",
|
|
"fig = openmc.plot_xs(zircaloy, ['total'])\n",
|
|
"openmc.plot_xs(zircaloy_mg, ['total'], plot_CE=False, mg_cross_sections='./mgxs.h5', axis=fig.axes[0])\n",
|
|
"fig.axes[0].legend().set_visible(False)\n",
|
|
"plt.show()\n",
|
|
"plt.close()\n",
|
|
"\n",
|
|
"# And finally repeat for the water data\n",
|
|
"fig = openmc.plot_xs(water, ['total'])\n",
|
|
"openmc.plot_xs(water_mg, ['total'], plot_CE=False, mg_cross_sections='./mgxs.h5', axis=fig.axes[0])\n",
|
|
"fig.axes[0].legend().set_visible(False)\n",
|
|
"plt.show()\n",
|
|
"plt.close()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"At this point, the problem is set up and we can run the multi-group calculation."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 35,
|
|
"metadata": {
|
|
"collapsed": false,
|
|
"scrolled": true
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
" %%%%%%%%%%%%%%%\n",
|
|
" %%%%%%%%%%%%%%%%%%%%%%%%\n",
|
|
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n",
|
|
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n",
|
|
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n",
|
|
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n",
|
|
" %%%%%%%%%%%%%%%%%%%%%%%%\n",
|
|
" %%%%%%%%%%%%%%%%%%%%%%%%\n",
|
|
" ############### %%%%%%%%%%%%%%%%%%%%%%%%\n",
|
|
" ################## %%%%%%%%%%%%%%%%%%%%%%%\n",
|
|
" ################### %%%%%%%%%%%%%%%%%%%%%%%\n",
|
|
" #################### %%%%%%%%%%%%%%%%%%%%%%\n",
|
|
" ##################### %%%%%%%%%%%%%%%%%%%%%\n",
|
|
" ###################### %%%%%%%%%%%%%%%%%%%%\n",
|
|
" ####################### %%%%%%%%%%%%%%%%%%\n",
|
|
" ####################### %%%%%%%%%%%%%%%%%\n",
|
|
" ###################### %%%%%%%%%%%%%%%%%\n",
|
|
" #################### %%%%%%%%%%%%%%%%%\n",
|
|
" ################# %%%%%%%%%%%%%%%%%\n",
|
|
" ############### %%%%%%%%%%%%%%%%\n",
|
|
" ############ %%%%%%%%%%%%%%%\n",
|
|
" ######## %%%%%%%%%%%%%%\n",
|
|
" %%%%%%%%%%%\n",
|
|
"\n",
|
|
" | The OpenMC Monte Carlo Code\n",
|
|
" Copyright | 2011-2016 Massachusetts Institute of Technology\n",
|
|
" License | http://openmc.readthedocs.io/en/latest/license.html\n",
|
|
" Version | 0.8.0\n",
|
|
" Git SHA1 | 346deb258f969a2522bef0774ae1576043ac0de7\n",
|
|
" Date/Time | 2016-12-02 18:12:18\n",
|
|
" OpenMP Threads | 8\n",
|
|
"\n",
|
|
" ===========================================================================\n",
|
|
" ========================> INITIALIZATION <=========================\n",
|
|
" ===========================================================================\n",
|
|
"\n",
|
|
" Reading settings XML file...\n",
|
|
" Reading geometry XML file...\n",
|
|
" Reading materials XML file...\n",
|
|
" Reading cross sections HDF5 file...\n",
|
|
" Reading tallies XML file...\n",
|
|
" Loading Cross Section Data...\n",
|
|
" Loading fuel Data...\n",
|
|
" Loading zircaloy Data...\n",
|
|
" Loading water Data...\n",
|
|
" Building neighboring cells lists for each surface...\n",
|
|
" Initializing source particles...\n",
|
|
"\n",
|
|
" ===========================================================================\n",
|
|
" ====================> K EIGENVALUE SIMULATION <====================\n",
|
|
" ===========================================================================\n",
|
|
"\n",
|
|
" Bat./Gen. k Average k \n",
|
|
" ========= ======== ==================== \n",
|
|
" 1/1 0.98369 \n",
|
|
" 2/1 1.01520 \n",
|
|
" 3/1 1.03642 \n",
|
|
" 4/1 1.02658 \n",
|
|
" 5/1 1.03102 \n",
|
|
" 6/1 1.05382 \n",
|
|
" 7/1 1.01978 \n",
|
|
" 8/1 1.01753 \n",
|
|
" 9/1 1.02420 \n",
|
|
" 10/1 0.99889 \n",
|
|
" 11/1 1.04874 \n",
|
|
" 12/1 1.01382 1.03128 +/- 0.01746\n",
|
|
" 13/1 1.03987 1.03414 +/- 0.01048\n",
|
|
" 14/1 1.02282 1.03131 +/- 0.00793\n",
|
|
" 15/1 1.03282 1.03162 +/- 0.00615\n",
|
|
" 16/1 0.99669 1.02579 +/- 0.00769\n",
|
|
" 17/1 1.00052 1.02218 +/- 0.00743\n",
|
|
" 18/1 1.01124 1.02082 +/- 0.00658\n",
|
|
" 19/1 1.00629 1.01920 +/- 0.00602\n",
|
|
" 20/1 1.05322 1.02260 +/- 0.00637\n",
|
|
" 21/1 1.00763 1.02124 +/- 0.00592\n",
|
|
" 22/1 1.01841 1.02101 +/- 0.00541\n",
|
|
" 23/1 1.03430 1.02203 +/- 0.00508\n",
|
|
" 24/1 1.03064 1.02264 +/- 0.00474\n",
|
|
" 25/1 1.03272 1.02331 +/- 0.00447\n",
|
|
" 26/1 1.01226 1.02262 +/- 0.00424\n",
|
|
" 27/1 1.00883 1.02181 +/- 0.00406\n",
|
|
" 28/1 1.02712 1.02211 +/- 0.00384\n",
|
|
" 29/1 1.03146 1.02260 +/- 0.00367\n",
|
|
" 30/1 1.02964 1.02295 +/- 0.00350\n",
|
|
" 31/1 0.99832 1.02178 +/- 0.00353\n",
|
|
" 32/1 1.03420 1.02234 +/- 0.00341\n",
|
|
" 33/1 1.01860 1.02218 +/- 0.00326\n",
|
|
" 34/1 1.03328 1.02264 +/- 0.00316\n",
|
|
" 35/1 1.01865 1.02248 +/- 0.00303\n",
|
|
" 36/1 1.02643 1.02264 +/- 0.00292\n",
|
|
" 37/1 1.01070 1.02219 +/- 0.00284\n",
|
|
" 38/1 1.01871 1.02207 +/- 0.00274\n",
|
|
" 39/1 0.98827 1.02090 +/- 0.00289\n",
|
|
" 40/1 1.01740 1.02079 +/- 0.00279\n",
|
|
" 41/1 1.02920 1.02106 +/- 0.00272\n",
|
|
" 42/1 1.02541 1.02119 +/- 0.00263\n",
|
|
" 43/1 1.01457 1.02099 +/- 0.00256\n",
|
|
" 44/1 1.00618 1.02056 +/- 0.00252\n",
|
|
" 45/1 1.03521 1.02098 +/- 0.00248\n",
|
|
" 46/1 1.01586 1.02083 +/- 0.00242\n",
|
|
" 47/1 1.03337 1.02117 +/- 0.00238\n",
|
|
" 48/1 1.01726 1.02107 +/- 0.00232\n",
|
|
" 49/1 1.03974 1.02155 +/- 0.00231\n",
|
|
" 50/1 1.04169 1.02205 +/- 0.00230\n",
|
|
" Creating state point statepoint.50.h5...\n",
|
|
"\n",
|
|
" ===========================================================================\n",
|
|
" ======================> SIMULATION FINISHED <======================\n",
|
|
" ===========================================================================\n",
|
|
"\n",
|
|
"\n",
|
|
" =======================> TIMING STATISTICS <=======================\n",
|
|
"\n",
|
|
" Total time for initialization = 4.3487E-02 seconds\n",
|
|
" Reading cross sections = 3.0800E-03 seconds\n",
|
|
" Total time in simulation = 8.6325E+00 seconds\n",
|
|
" Time in transport only = 8.0901E+00 seconds\n",
|
|
" Time in inactive batches = 6.8907E-01 seconds\n",
|
|
" Time in active batches = 7.9435E+00 seconds\n",
|
|
" Time synchronizing fission bank = 5.1527E-03 seconds\n",
|
|
" Sampling source sites = 3.5060E-03 seconds\n",
|
|
" SEND/RECV source sites = 1.5677E-03 seconds\n",
|
|
" Time accumulating tallies = 1.1610E-04 seconds\n",
|
|
" Total time for finalization = 3.1340E-06 seconds\n",
|
|
" Total time elapsed = 8.6927E+00 seconds\n",
|
|
" Calculation Rate (inactive) = 72561.5 neutrons/second\n",
|
|
" Calculation Rate (active) = 25177.9 neutrons/second\n",
|
|
"\n",
|
|
" ============================> RESULTS <============================\n",
|
|
"\n",
|
|
" k-effective (Collision) = 1.02178 +/- 0.00213\n",
|
|
" k-effective (Track-length) = 1.02205 +/- 0.00230\n",
|
|
" k-effective (Absorption) = 1.02440 +/- 0.00198\n",
|
|
" Combined k-effective = 1.02354 +/- 0.00179\n",
|
|
" Leakage Fraction = 0.00000 +/- 0.00000\n",
|
|
"\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"0"
|
|
]
|
|
},
|
|
"execution_count": 35,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"# Run the Multi-Group OpenMC Simulation\n",
|
|
"openmc.run()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Results Comparison\n",
|
|
"Now we can compare the multi-group and continuous-energy results.\n",
|
|
"\n",
|
|
"We will begin by loading the multi-group statepoint file we just finished writing and extracting the calculated keff.\n",
|
|
"Since we did not rename the summary file, we do not need to load it separately this time."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 36,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Load the last statepoint file and keff value\n",
|
|
"mgsp = openmc.StatePoint('statepoint.' + str(batches) + '.h5')\n",
|
|
"mg_keff = mgsp.k_combined"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Next, we can load the continuous-energy eigenvalue for comparison."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 37,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"ce_keff = sp.k_combined"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Lets compare the two eigenvalues, including their bias"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 38,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Continuous-Energy keff = 1.024739\n",
|
|
"Multi-Group keff = 1.023545\n",
|
|
"bias [pcm]: 119.4\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"bias = 1.0E5 * (ce_keff[0] - mg_keff[0])\n",
|
|
"\n",
|
|
"print('Continuous-Energy keff = {0:1.6f}'.format(ce_keff[0]))\n",
|
|
"print('Multi-Group keff = {0:1.6f}'.format(mg_keff[0]))\n",
|
|
"print('bias [pcm]: {0:1.1f}'.format(bias))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"This shows a small but nontrivial pcm bias between the two methods. Some degree of mismatch is expected simply to the very few histories being used in these example problems. An additional mismatch is always inherent in the practical application of multi-group theory due to the high degree of approximations inherent in that method."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Flux and Pin Power Visualizations"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Next we will visualize the mesh tally results obtained from both the Continuous-Energy and Multi-Group OpenMC calculations.\n",
|
|
"\n",
|
|
"First, we extract volume-integrated fission rates from the Multi-Group calculation's mesh fission rate tally for each pin cell in the fuel assembly."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 39,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Get the OpenMC fission rate mesh tally data\n",
|
|
"mg_mesh_tally = mgsp.get_tally(name='mesh tally')\n",
|
|
"mg_fission_rates = mg_mesh_tally.get_values(scores=['fission'])\n",
|
|
"\n",
|
|
"# Reshape array to 2D for plotting\n",
|
|
"mg_fission_rates.shape = (17,17)\n",
|
|
"\n",
|
|
"# Normalize to the average pin power\n",
|
|
"mg_fission_rates /= np.mean(mg_fission_rates)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Now we can do the same for the Continuous-Energy results."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 40,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Get the OpenMC fission rate mesh tally data\n",
|
|
"ce_mesh_tally = sp.get_tally(name='mesh tally')\n",
|
|
"ce_fission_rates = ce_mesh_tally.get_values(scores=['fission'])\n",
|
|
"\n",
|
|
"# Reshape array to 2D for plotting\n",
|
|
"ce_fission_rates.shape = (17,17)\n",
|
|
"\n",
|
|
"# Normalize to the average pin power\n",
|
|
"ce_fission_rates /= np.mean(ce_fission_rates)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Now we can easily use Matplotlib to visualize the two fission rates side-by-side."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 41,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<matplotlib.text.Text at 0x7fc8f339d7b8>"
|
|
]
|
|
},
|
|
"execution_count": 41,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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\n7AAAAABJRU5ErkJggg==\n",
|
|
"text/plain": [
|
|
"<matplotlib.figure.Figure at 0x7fc8f4139908>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"# Force zeros to be NaNs so their values are not included when matplotlib calculates\n",
|
|
"# the color scale\n",
|
|
"ce_fission_rates[ce_fission_rates == 0.] = np.nan\n",
|
|
"mg_fission_rates[mg_fission_rates == 0.] = np.nan\n",
|
|
"\n",
|
|
"# Plot the CE fission rates in the left subplot\n",
|
|
"fig = plt.subplot(121)\n",
|
|
"plt.imshow(ce_fission_rates, interpolation='none', cmap='jet')\n",
|
|
"plt.title('Continuous-Energy Fission Rates')\n",
|
|
"\n",
|
|
"# Plot the MG fission rates in the right subplot\n",
|
|
"fig2 = plt.subplot(122)\n",
|
|
"plt.imshow(mg_fission_rates, interpolation='none', cmap='jet')\n",
|
|
"plt.title('Multi-Group Fission Rates')\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"source": [
|
|
"We also see good agreement between the fission rate distributions, though these should converge closer together with an increasing number of particle histories in both the continuous-energy run to generate the multi-group cross sections, and in the multi-group calculation itself."
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.5.2"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 0
|
|
}
|