Files
OpenMC_NEA_Training_nov25/course/live_notebooks/dose-rate.ipynb
Stafie Alex PSI 850de66b07 first files
2025-12-02 11:57:33 +01:00

2710 lines
183 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"cells": [
{
"cell_type": "markdown",
"id": "cfaf6169-c92d-49d3-aab7-a7b0c7c3c4d3",
"metadata": {},
"source": [
"# Performing Shutdown Dose Rate Calculations\n",
"\n",
"In this session, we'll learn how to calculate the Shutdown Dose Rate (SDR) for a very simple system. We will utilize [OpenMC's depletion capabilities](https://openmc.readthedocs.io/en/stable/) for performing SDR calculations using the Rigorous 2-Step (R2S) and Direct 1-Step (D1S) method. The R2S process allows one to calculate dose rate maps from the transport of radioactive decay products like gamma rays after a given irradiation scenario. The process couples an initial neutron transport simulation for computing flux spectrum integrated reaction rates for a defined spatial discretization to an inventory solver to compute nuclide inventories given an irradiation scenario. Once the new (radioactive) material compositions are computed, they are turned into photon sources based on the nuclear data contained in a depletion chain. These photon sources are then used for a second transport simulation to compute the dose rate at desired locations. In this tutorial, we will first walk through the steps manually for a cell-based R2S workflow to understand each piece. Then we will use the newly introduced `R2SManager` class to execute a mesh-based R2S workflow, followed by a D1S calculation of the same system.\n",
"\n",
"### Task Outline for this tutorial\n",
"1. Build a steel slab activation model between a 14 MeV neutron source and a photon detector\n",
"2. Calculate volume-averaged fluxes and microscopic cross sections in the model for use in depletion\n",
"3. Define an irradiation scenario and solve the Bateman equations\n",
"4. Compute a photon source from the irradiated steel slab\n",
"5. Run a photon transport calculation to compute the decay photon flux at the detector location\n",
"6. As an alternative to steps 25, run a mesh-based R2S calculation using the `R2SManager` class\n",
"7. As an alternative to steps 25, run a D1S coupled neutronphoton calculation to compute the decay photon flux"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "5abcedcc-f5fa-4326-822a-64e4419a5b96",
"metadata": {},
"outputs": [],
"source": [
"import openmc\n",
"import openmc.deplete\n",
"from math import pi\n",
"import numpy as np\n",
"from uncertainties import ufloat\n",
"from matplotlib import pyplot as plt\n",
"from matplotlib.colors import LogNorm"
]
},
{
"cell_type": "markdown",
"id": "ae825fcf-ce6b-49dc-beb3-fb9a54d0d352",
"metadata": {},
"source": [
"## Task 1: Build steel slab activation model with detector\n",
"We will create a simple slab geometry irradiated by a monoenergetic, monodirectional 14 MeV point neutron source. On the opposite side of the slab we will create a detector to measure the photon dose rate. Our neutron source will be at the origin and be irradiating a 20cm x 20cm x 15cm slab of steel. Let's start by creating an OpenMC `Model` object and defining some basic variables for the geometry of the system."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "dbbdbd6e-616e-43fc-b607-8053ef035d26",
"metadata": {},
"outputs": [],
"source": [
"model = openmc.Model()"
]
},
{
"cell_type": "markdown",
"id": "93137d91-d4c8-4192-b8cd-bbd214c5a257",
"metadata": {},
"source": [
"We want the slab to extend from -10cm to +10cm in both $x$ and $y$ dimensions as well as from 1cm to 16cm in $z$. We also need to compute the volumes of each of these regions. For a more complicated system, we can run a stochastic volume calculation for each cell to get these values."
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "3d54bec2-f365-4d36-b15b-9cdea2548144",
"metadata": {},
"outputs": [],
"source": [
"xmin = ymin = -10\n",
"xmax = ymax = 10\n",
"zmin = 1\n",
"zmax = 16\n",
"air_radius = 32\n",
"detector_z0 = 24\n",
"detector_radius = 1.5"
]
},
{
"cell_type": "markdown",
"id": "2bce8a30-6f10-4403-9e05-c8ec3f6e2ec4",
"metadata": {},
"source": [
"Now we can create the surfaces necessary to build our model using some of the handy composite surface capabilities similar to MCNP \"macrobodies\"."
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "c68cbf2f-126d-414a-ba64-94123f61ce62",
"metadata": {},
"outputs": [],
"source": [
"rpp = openmc.model.RectangularParallelepiped(xmin, xmax, ymin, ymax, zmin, zmax)\n",
"detector_sphere = openmc.Sphere(z0=detector_z0, r=detector_radius)\n",
"boundary = openmc.Sphere(r=air_radius, boundary_type='vacuum')"
]
},
{
"cell_type": "markdown",
"id": "8e455860-09ed-43c0-a04a-6af010cd4c2a",
"metadata": {},
"source": [
"Let's create a simple nickel-iron-chromium alloy with a little bit of manganese, molybdenum, and cobalt thrown in for a bit more spice to fill our slab. We also need to set the depletable attribute of the steel to let OpenMC know that this material should be considered during depletion calculations."
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "06e1ef84-949a-41bf-89f9-9d24ee4711d0",
"metadata": {},
"outputs": [],
"source": [
"steel_comp = {\n",
" 'Fe': 69.9,\n",
" 'Ni': 10.0,\n",
" 'Cr': 15.0,\n",
" 'Mn': 2.0,\n",
" 'Mo': 3.0,\n",
" 'Co': 0.1,\n",
"}\n",
"steel = openmc.Material(name='steel')\n",
"steel.add_components(steel_comp, percent_type='wo')\n",
"steel.set_density('g/cm3', 8.0)\n",
"steel.depletable = True"
]
},
{
"cell_type": "markdown",
"id": "196ac009-b2a4-418a-8708-0236e4bdf44b",
"metadata": {},
"source": [
"When we get to the depletion portion of this tutorial we will need to assign a volume to the steel material. All materials that get depleted in OpenMC must meet two requirements:\n",
"\n",
"`material.depletable = True` and their `volume` attribute must be set.\n",
"\n",
"Let's create the `Cell` objects for our model and calculate their volumes."
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "902fe359-6c4d-4f02-9d3c-97755e979838",
"metadata": {},
"outputs": [],
"source": [
"slab = openmc.Cell(region=-rpp, fill=steel)\n",
"detector = openmc.Cell(region=-detector_sphere)\n",
"air = openmc.Cell(region=+rpp & +detector_sphere & -boundary)\n",
"cells = [slab, detector, air]"
]
},
{
"cell_type": "markdown",
"id": "e79e663e-4f81-4805-8948-48911781140d",
"metadata": {},
"source": [
"We can use the bounding box property of the slab cell to get the volume"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "a2b6d865-8621-4f52-bc06-81bad80eb35f",
"metadata": {},
"outputs": [],
"source": [
"slab.volume = slab.bounding_box.volume\n",
"slab.fill.volume = slab.volume\n",
"detector.volume = 4/3*pi*detector_radius**3"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "faea80aa-2be1-45ef-89b9-9b41d5474cdb",
"metadata": {},
"outputs": [],
"source": [
"model.geometry = openmc.Geometry(cells)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "ef53fb56-2a59-40e6-9154-993991a9b8b8",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<Axes: xlabel='x [cm]', ylabel='z [cm]'>"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAARYAAAEHCAYAAABrx2lxAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAH2hJREFUeJzt3X90U/X9P/BnWtu0hTalvxIqqVb5jUV3OsFUVNCOgqJj/Bh+nFCEgWjLxPbroAcENyfdgM+soBR3xg/nEcrAicqGgFWK04C2hyplUi3SUSlJgdGkVJqW5n7/YL0fQn+QtDe9P/J8nHPPaW5ubl5J3nn2fd/35l6dIAgCiIgkFCR3AUSkPQwWIpIcg4WIJMdgISLJMViISHIMFiKSHIOFiCTHYCEiyd0gdwFK43a7UVtbi8jISOh0OrnLIVIUQRDQ0NCAxMREBAV13i9hsFyjtrYWZrNZ7jKIFK2mpgYDBgzo9H4GyzUiIyMBXHnjoqKiZK5G/aI/MMhdAgCgfoJD7hI0wel0wmw2i9+TzqgmWAoLC1FYWIjq6moAwIgRI7B8+XJMnDgRANDU1ITc3FwUFRXB5XIhIyMD69evh9Fo9Ol52jZ/oqKiGCw+Ct7dftNRFyFDIR3od7B9wLVO4s/kuut6wwQ6tfwI8f3330dwcDAGDRoEQRDwxhtvYPXq1Thy5AhGjBiBp556Cn//+9+xZcsWGAwGZGdnIygoCJ9++qlPz+N0OmEwGOBwOBgs19FRkKgZg+b6vP1+qCZYOhITE4PVq1dj2rRpiI+Px9atWzFt2jQAwPHjxzFs2DBYrVbcddddXq+TwdI5rQXJ9TBo2vP2+6GaTaGrtba2YseOHWhsbITFYkFZWRlaWlqQnp4uLjN06FAkJSVdN1hcLhdcLpd42+l0+rV2tQm0MLna1a+dIeMbVR3HcvToUfTt2xd6vR4LFizAO++8g+HDh8NmsyE0NBTR0dEeyxuNRthsti7XmZ+fD4PBIE7cI3RF8G5dQIfKtfh++EZVPZYhQ4agvLwcDocDO3fuRGZmJkpKSnq0zry8POTk5Ii320a9AxG/ONfHXox3VBUsoaGhGDhwIAAgNTUVX3zxBV555RXMmDEDzc3NqK+v9+i12O12mEymLtep1+uh1+v9WbbiMVC6p+19Y8C0p6pNoWu53W64XC6kpqYiJCQExcXF4n2VlZU4deoULBaLjBUqV1vXnqHSc3wv21NNjyUvLw8TJ05EUlISGhoasHXrVhw4cAB79+6FwWDA3LlzkZOTg5iYGERFRWHhwoWwWCw+7REKBGz8/sVezBWqCZa6ujrMmjULZ86cgcFgwMiRI7F371785Cc/AQC8/PLLCAoKwtSpUz0OkKMrGCi9K9ADRtXHsfiDFo9jYajIS0vhounjWMg7DBRlCMTeC4NFgxgoyhRIAaPqvULUHkNF+QLhM2KPRSMCobFqidZ7LwwWlWOgqJtWA4abQirGUNEOrX2WDBaV0lpDJG19ptwUUhktNT5vPPdoFQBgddFAmSvpHVrZNGKwqEgghUpboFx7O5ACRs3hwk0hlQjkUPH2Pq1R82fOYFEBNTcw6hm1fvYMFgULxJ/ie9MjCaReC6DOdsBgUSi1NSTyPzW1CQaLAqmpAUnNm8HZQBnA7Yha2gaDRWHU0nBIPmpoIwwWBVFDg+kNXfVIArm3cjWltxUex6IQSm8ova0tQALt+BVfKPlYFwaLAjBUOsdA6ZpSw4WbQjJjqFBPKbENMVhkpMQGQeqktLakmmDJz8/HnXfeicjISCQkJGDy5MmorKz0WKapqQlZWVmIjY1F3759MXXqVNjtdpkq7prSGgKpn5LalGqCpaSkBFlZWTh06BD279+PlpYWjB8/Ho2NjeIyzz77LN5//33s2LEDJSUlqK2txZQpU2SsumNKagCkLUppW6q9/MfZs2eRkJCAkpIS3HvvvXA4HIiPj8fWrVsxbdo0AMDx48cxbNgwWK1Wry9c1huX/1DKh0/a5M/BXG+/H6rpsVzL4XAAAGJiYgAAZWVlaGlpQXp6urjM0KFDkZSUBKvV2ul6XC4XnE6nx+RPDBXyNyW0MVUGi9vtxqJFi3D33XfjtttuAwDYbDaEhoZ6XBQeAIxGI2w2W6frys/Ph8FgECez2ey3upXwgVNgkLutqTJYsrKyUFFRgaKioh6vKy8vDw6HQ5xqamokqLA9uT9oCjxytjnVHSCXnZ2N3bt34+DBgxgwYIA432Qyobm5GfX19R69FrvdDpPJ1On69Ho99Hq9P0tmqJBs5DqATjU9FkEQkJ2djXfeeQcfffQRkpOTPe5PTU1FSEgIiouLxXmVlZU4deoULBZLb5dLFNBU02PJysrC1q1b8e677yIyMlIcNzEYDAgPD4fBYMDcuXORk5ODmJgYREVFYeHChbBYLF7vEfIH9lZIbnL0WlSzu1mn6/gLunnzZsyePRvAlQPkcnNzsW3bNrhcLmRkZGD9+vVdbgpdS8rdzQwVUhIpwsXb74dqgqW3SBUsDBVSop6Gi+aPYyEi5WKw+AF7K6RUvdU2GSxEJDkGi8TYWyGl6402ymCREEOF1MLfbZXBQkSSU80Bckqn9d7K+5HT5C5BFg837JS7BL/x54Fz7LEQkeQYLBLQem+FtMtfbZfB0kMMFVI7f7RhBgsRSY7B0gPsrZBWSN2WGSxEJDkGSzext0JaI2WbZrAQkeQYLEQkOQZLN3AziLRKqrbNYCEiyTFYfMTeCmmdFG2cwUJEklNVsBw8eBAPP/wwEhMTodPpsGvXLo/7BUHA8uXL0b9/f4SHhyM9PR3ffvutPMUSBTBVBUtjYyNuv/12vPbaax3ev2rVKqxduxYbNmzA4cOH0adPH2RkZKCpqUmS5+dmEAWKnrZ1VZ2PZeLEiZg4cWKH9wmCgIKCAixbtgw//elPAQB/+ctfYDQasWvXLjz66KO9WSpRQFNVj6UrJ0+ehM1mQ3p6ujjPYDBg9OjRsFqtnT7O5XLB6XR6TB1hb4UCTU/avGaCpe2Sq0aj0WO+0WgU7+tIfn4+DAaDOJnNZr/WSRQINBMs3ZWXlweHwyFONTU1cpdEpHqaCZa26zPb7XaP+Xa7vctrN+v1ekRFRXlM1+JmEAWq7rZ9zQRLcnIyTCYTiouLxXlOpxOHDx+GxWKRsTKiwKOqvUIXL15EVVWVePvkyZMoLy9HTEwMkpKSsGjRIvzud7/DoEGDkJycjOeffx6JiYmYPHmyfEUTBSBVBUtpaSnGjRsn3s7JyQEAZGZmYsuWLfj1r3+NxsZGzJ8/H/X19RgzZgw++OADhIWFyVUyUUDSCYLgnwuLqJTT6YTBYIDD4UBUVBTHV/6L1xUKbG3XH7r2+9EZzYyxEJFyMFiISHIMFiKSHIOlCxxfIbrC1+8Cg4WIJOfV7uYpU6b4vOINGzYgISHB58cRkfp5FSy7du3Cz3/+c4SHh3u10q1bt+LixYsMFqIA5fUBcmvXrvU6KHbu5L5/okDm1RjLxx9/jJiYGK9XumfPHtx4443dLkoJoj8wyF0CkaL4MoDrVY/lvvvu86mAMWPG+LQ8EWlLt38rVFdXh7q6Orjdbo/5I0eO7HFRRKRuPgdLWVkZMjMz8fXXX6PtZ0Y6nQ6CIECn06G1tVXyIolIXXwOljlz5mDw4MHYuHEjjEYjdDoeREZEnnwOlu+++w5vv/02Bg4c6I96iEgDfD7y9oEHHsCXX37pj1qISCN87rH8+c9/RmZmJioqKnDbbbchJCTE4/5HHnlEsuKISFm8PQzD52CxWq349NNPsWfPnnb3cfCWiIBubAotXLgQjz/+OM6cOQO32+0xMVSICOhGsJw/fx7PPvtsuwuDERG18TlYpkyZgo8//tgftRCRRvg8xjJ48GDk5eXhn//8J1JSUtoN3v7qV7+SrDgKTJdaQtB0OQT9wn9od9+FSxEIu6EF4SEtMlRG3vL5LP3Jycmdr0ynw3fffdfjonrqtddew+rVq2Gz2XD77bdj3bp1GDVqlFePbTsLuW47oIvwc6Eq0ltn6b/UEoJXS3+CBlcYFo3+ADFXhct/LkWg4PAEROqbkP3j/b0SLjxLvyfhB0CYgeuepd/nHsvJkyd7VJi/bd++HTk5OdiwYQNGjx6NgoICZGRkoLKykueH6YHe+oIFu2KR0HQ/bmiKwpJD96AuJQ+t+nMIdsUh4Wg+bmiKgk1oxP849qFVf75XaiLfae7UlH/84x8xb948PPHEExg+fDg2bNiAiIgIbNq0Se7SyAut+vOoS8nD5bAzuKGpPxKO5iPUOfS/odIfl8PO/DdsGCpK5nOwTJ06FX/4wx/azV+1ahWmT58uSVHd1dzcjLKyMqSnp4vzgoKCkJ6eDqvV2uFjXC4XnE6nx0TyatWf8wgX41drrgmVc3KXSNfhc7AcPHgQDz74YLv5EydOxMGDByUpqrvOnTuH1tbWdrvCjUYjbDZbh4/Jz8+HwWAQJ7PZ3Bul0nW06s/h/OD/9Zh3fvD/MlRUwudguXjxIkJDQ9vNDwkJUeV/+7y8PDgcDnGqqamRuyQCEOyKQ+w3uR7zYr/JRbArTqaKyBc+B0tKSgq2b9/ebn5RURGGDx8uSVHdFRcXh+DgYNjtdo/5drsdJpOpw8fo9XpERUV5TCSv/xuovbL5Yx/5/zzGXBguyufzXqHnn38eU6ZMwYkTJ3D//fcDAIqLi7Ft2zbs2LFD8gJ9ERoaitTUVBQXF2Py5MkAALfbjeLiYmRnZ8taG3kn2BXbwUDtlTGXtvkJR/NRl7KEA7gK5nOwPPzww9i1axdWrlyJnTt3Ijw8HCNHjsSHH37o87lx/SEnJweZmZn48Y9/jFGjRqGgoACNjY144okn5C6NvOAOvoTWEAcAeAzUXh0urSEOuIMvyVkmXYfPB8ipwauvvioeIHfHHXdg7dq1GD16tFeP5QFy8tNdjkBQa3iHPZJgVyzcwZcg3ND+qFzyP28PkNNksPQEg4Woc94Gi1eDtzExMTh3zvvdfElJSfj3v//t9fJEpC1ejbHU19djz549MBi8O3vU+fPneW4WogDm9eBtZmamP+sgIg3xKliuvSgZEQWm+gkOGHD9LRfN/QiRiOTHYCEiyTFYiEhyDBYikhyDhYgk53Ow3H///fjNb37Tbv6FCxfEHyUSUWDzOVgOHDiAV199FZMnT0ZjY6M4v7m5GSUlJZIWJ6f6CQ65SyBSlNZJ3v/6p1ubQh9++CFsNhvuuusuVFdXd2cVRKRh3QqW/v37o6SkBCkpKbjzzjtx4MABicsiIjXzOVh0Oh2AK2de27p1K5555hlMmDAB69evl7w4IlInn0/0dO1ZFpYtW4Zhw4bxt0REJOrWBcvi4+M95k2dOhVDhw5FaWmpZIUpQeskAcG7dXKXQSQ7XwZugW4Ey0033dTh/BEjRmDEiBG+ro6INIgHyBGR5BgsRCQ5Bst1+LptSaQ13fkOqCZYXnrpJaSlpSEiIgLR0dEdLnPq1Ck89NBDiIiIQEJCAp577jlcvny5dwslIt8Hb+XS3NyM6dOnw2KxYOPGje3ub21txUMPPQSTyYTPPvsMZ86cwaxZsxASEoKVK1fKUDFR4FLd5T+2bNmCRYsWob6+3mP+nj17MGnSJNTW1ooXhd+wYQMWL16Ms2fPdni96Y60Xf7j6ssbcJczBbKrN4U6+n50RDWbQtdjtVqRkpIihgoAZGRkwOl04tixY50+zuVywel0ekzX4jgLBarutn3NBIvNZvMIFQDibZvN1unj8vPzYTAYxMlsNvu1TqJAIGuwLFmyBDqdrsvp+PHjfq0hLy8PDodDnGpqavz6fESBQNbB29zcXMyePbvLZW655Rav1mUymfD55597zLPb7eJ9ndHr9dDr9dddPw/vp0DTkyEAWYMlPj6+3e+OustiseCll15CXV0dEhISAAD79+9HVFQUhg8fLslzEJF3VDPGcurUKZSXl+PUqVNobW1FeXk5ysvLcfHiRQDA+PHjMXz4cMycORNffvkl9u7di2XLliErK8urHok3OIhLgaKnbV01x7EsX74cb7zxhnj7Rz/6EQDg448/xtixYxEcHIzdu3fjqaeegsViQZ8+fZCZmYnf/va3cpVMFLBUdxyLv11vPz3HWSgQdNZjCbjjWHoLN4dI66Ro4wwWIpIcg6Ub2GshrZKqbTNYiEhyDBYikhyDpZu4OURaI2WbZrAQkeQYLD3AXgtphdRtmcFCRJJjsPQQey2kdv5owwwWCTBcSK381XYZLEQkOQaLRNhrIbXxZ5tlsBCR5BgsEmKvhdTC322VwSIxhgspXW+0UQYLEUmOweIH7LWQUvVW22SwEJHkGCx+wl4LKU1vtklVBEt1dTXmzp2L5ORkhIeH49Zbb8WKFSvQ3NzssdxXX32Fe+65B2FhYTCbzVi1apVMFV/BcCGl6O22qIrLfxw/fhxutxuvv/46Bg4ciIqKCsybNw+NjY1Ys2YNgCtnDx8/fjzS09OxYcMGHD16FHPmzEF0dDTmz58vW+28giLJTY5/cKq9/Mfq1atRWFiI7777DgBQWFiIpUuXwmazITQ0FMCVa0Pv2rXLp+s/e3t5A18wWEhOUgaL5i//4XA4EBMTI962Wq249957xVABgIyMDFRWVuLChQudrsflcsHpdHpMUuMmEclFrranymCpqqrCunXr8OSTT4rzbDYbjEajx3Jtt202W6frys/Ph8FgECez2eyXmhku1NvkbHOyBsuSJUug0+m6nK7djDl9+jQmTJiA6dOnY968eT2uIS8vDw6HQ5xqamp6vM7OMFyot8jd1mQdvM3NzcXs2bO7XOaWW24R/66trcW4ceOQlpaGP/3pTx7LmUwm2O12j3ltt00mU6fr1+v1kl003hsczCV/kztUAJmDJT4+HvHx8V4te/r0aYwbNw6pqanYvHkzgoI8O1sWiwVLly5FS0sLQkJCAAD79+/HkCFD0K9fP8lrJ6LOqWKM5fTp0xg7diySkpKwZs0anD17FjabzWPs5LHHHkNoaCjmzp2LY8eOYfv27XjllVeQk5MjY+UdU8J/FNImpbQtVRzHsn//flRVVaGqqgoDBgzwuK9tb7nBYMC+ffuQlZWF1NRUxMXFYfny5bIew9IVbhKR1JQSKoCKj2PxF38cx9IVhgtJobdCRfPHsWiFkv7LkDopsQ0xWBRAiQ2D1EGpbYfBohBKbSCkXEpuMwwWBVFyQyFlUXpbYbAojNIbDMlPDW2EwaJAamg4JA+1tA0Gi0KppQFR71FTm1DFAXKBqq0h8ViXwKamQGnDHosKqLFhkTTU+tkzWFRCrQ2Muk/NnzmDRUXU3NDIN2r/rDnGojIcd9E2tQdKG/ZYVEorDZD+j5Y+UwaLimmpIQY6rX2W3BRSOW4aqZvWAqUNg0UjGDDqotVAacNNIY3ReoPVgkD4jNhj0SD2XpQpEAKlDYNFwxgwyhBIgdKGm0IBIBAbtlIE6nuvmmB55JFHkJSUhLCwMPTv3x8zZ85EbW2txzJfffUV7rnnHoSFhcFsNmPVqlUyVas8rZOEgG3kcgj091s1wTJu3Dj89a9/RWVlJd5++22cOHEC06ZNE+93Op0YP348brrpJpSVlWH16tV44YUX2l0xMdAFeoP3N76/V6j28h/vvfceJk+eDJfLhZCQEBQWFmLp0qWw2WwIDQ0FcOXa0Lt27Wp3/eeu9PblP5SAYzA9E0hBounLf/znP//BW2+9hbS0NPFyqlarFffee68YKgCQkZGByspKXLhwodN1uVwuOJ1OjynQ8L9s9/B965yqgmXx4sXo06cPYmNjcerUKbz77rvifTabDUaj0WP5tttXX4r1Wvn5+TAYDOJkNpv9U7wKtH1R+GXpHN8j78gaLEuWLIFOp+tyunoz5rnnnsORI0ewb98+BAcHY9asWejpllxeXh4cDoc41dTU9PRlaQK/PJ74fvhG1uNYcnNzMXv27C6XueWWW8S/4+LiEBcXh8GDB2PYsGEwm804dOgQLBYLTCYT7Ha7x2PbbptMpk7Xr9frodfru/8iNO7qL1OgjcUwSLpP1mCJj49HfHx8tx7rdrsBXBkjAQCLxYKlS5eipaVFHHfZv38/hgwZgn79+klTcIC79oumtaBhkEhHFXuFDh8+jC+++AJjxoxBv379cOLECTz//POw2+04duwY9Ho9HA4HhgwZgvHjx2Px4sWoqKjAnDlz8PLLL2P+/PleP1cg7hWSitqChkHiO2+/H6o4pD8iIgJ/+9vfsGLFCjQ2NqJ///6YMGECli1bJm7GGAwG7Nu3D1lZWUhNTUVcXByWL1/uU6hQz3T0RVVK2DBEepcqeiy9yeFwIDo6GjU1Neyx+Fn0BwZJ11c/wSHp+qg9p9MJs9mM+vp6GAydf36q6LH0poaGBgAI6N3OamWAtEFFnWtoaOgyWNhjuYbb7UZtbS0iIyOh0ymjG9/2XyIQe1GB+tqV+roFQUBDQwMSExMRFNT50SrssVwjKCgIAwYMkLuMDkVFRSmqkfWmQH3tSnzdXfVU2qjqyFsiUgcGCxFJjsGiAnq9HitWrAjII4QD9bWr/XVz8JaIJMceCxFJjsFCRJJjsBCR5BgsRCQ5BouCVVdXY+7cuUhOTkZ4eDhuvfVWrFixAs3NzR7LafXqBK+99hpuvvlmhIWFYfTo0fj888/lLklS+fn5uPPOOxEZGYmEhARMnjwZlZWVHss0NTUhKysLsbGx6Nu3L6ZOndruvEOKJJBi7dmzR5g9e7awd+9e4cSJE8K7774rJCQkCLm5ueIyDodDMBqNwi9+8QuhoqJC2LZtmxAeHi68/vrrMlbec0VFRUJoaKiwadMm4dixY8K8efOE6OhowW63y12aZDIyMoTNmzcLFRUVQnl5ufDggw8KSUlJwsWLF8VlFixYIJjNZqG4uFgoLS0V7rrrLiEtLU3Gqr3DYFGZVatWCcnJyeLt9evXC/369RNcLpc4b/HixcKQIUPkKE8yo0aNErKyssTbra2tQmJiopCfny9jVf5VV1cnABBKSkoEQRCE+vp6ISQkRNixY4e4zNdffy0AEKxWq1xleoWbQirjcDgQExMj3u7u1QmUrLm5GWVlZUhPTxfnBQUFIT09HVarVcbK/MvhuHLah7bPt6ysDC0tLR7vw9ChQ5GUlKT494HBoiJVVVVYt24dnnzySXFed69OoGTnzp1Da2trh69Lra/petxuNxYtWoS7774bt912GwCI18iKjo72WFYN7wODRQa+Xp0AAE6fPo0JEyZg+vTpmDdvnkyVk79kZWWhoqICRUVFcpciCZ42QQa+Xp2gtrYW48aNQ1paWrtLxnb36gRKFhcXh+Dg4A5fl1pfU1eys7Oxe/duHDx40OOUHSaTCc3Nzaivr/fotajifZB7kIe69v333wuDBg0SHn30UeHy5cvt7m8bvG1ubhbn5eXlaWLwNjs7W7zd2toq3HjjjZoavHW73UJWVpaQmJgofPPNN+3ubxu83blzpzjv+PHjqhi8ZbAo2Pfffy8MHDhQeOCBB4Tvv/9eOHPmjDi1qa+vF4xGozBz5kyhoqJCKCoqEiIiIjSxu1mv1wtbtmwR/vWvfwnz588XoqOjBZvNJndpknnqqacEg8EgHDhwwOOz/eGHH8RlFixYICQlJQkfffSRUFpaKlgsFsFischYtXcYLAq2efNmAUCH09W+/PJLYcyYMYJerxduvPFG4fe//71MFUtr3bp1QlJSkhAaGiqMGjVKOHTokNwlSaqzz3bz5s3iMpcuXRKefvppoV+/fkJERITws5/9zOMfi1LxtAlEJDnuFSIiyTFYiEhyDBYikhyDhYgkx2AhIskxWIhIcgwWIpIcg4VkU11dLf7o8o477vDrc23ZskV8rkWLFvn1uYjBQgrw4Ycfori42K/PMWPGDJw5cwYWi8Wvz0NX8NfNJLvY2FjExsb69TnCw8MRHh7ucUIs8h/2WEgSZ8+ehclkwsqVK8V5n332GUJDQ7vVG9m0aRNGjBgBvV6P/v37Izs7W7xPp9Ph9ddfx6RJkxAREYFhw4bBarWiqqoKY8eORZ8+fZCWloYTJ05I8trIdwwWkkR8fDw2bdqEF154AaWlpWhoaMDMmTORnZ2NBx54wKd1FRYWIisrC/Pnz8fRo0fx3nvvYeDAgR7LvPjii5g1axbKy8sxdOhQPPbYY3jyySeRl5eH0tJSCILgEUbUy2T+ESRpzNNPPy0MHjxYeOyxx4SUlBShqamp02VPnjwpABCOHDniMT8xMVFYunRpp48DICxbtky8bbVaBQDCxo0bxXnbtm0TwsLC2j32vvvuE5555hnvXxB1C3ssJKk1a9bg8uXL2LFjB9566y3o9XqfHl9XV4fa2trr9nJGjhwp/t12btyUlBSPeU1NTXA6nT49P0mDwUKSOnHiBGpra+F2u1FdXe3z48PDw71aLiQkRPxbp9N1Os/tdvtcA/Ucg4Uk09zcjMcffxwzZszAiy++iF/+8peoq6vzaR2RkZG4+eab/b77mfyLu5tJMkuXLoXD4cDatWvRt29f/OMf/8CcOXOwe/dun9bzwgsvYMGCBUhISMDEiRPR0NCATz/9FAsXLvRT5SQ19lhIEgcOHEBBQQHefPNNREVFISgoCG+++SY++eQTFBYW+rSuzMxMFBQUYP369RgxYgQmTZqEb7/91k+Vkz/w1JQkm+rqaiQnJ+PIkSN+P6S/zdixY3HHHXegoKCgV54vULHHQrJLS0tDWlqaX5/jrbfeQt++ffHJJ5/49XnoCvZYSDaXL18W9xzp9XqYzWa/PVdDQ4N4AbTo6GjExcX57bmIwUJEfsBNISKSHIOFiCTHYCEiyTFYiEhyDBYikhyDhYgkx2AhIskxWIhIcgwWIpLc/wd0so5/IjZOnAAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 258.065x259.74 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"model.plot(color_by='cell', basis='xz', n_samples=1)"
]
},
{
"cell_type": "markdown",
"id": "58b836a1-8270-432c-9b6a-e0595ce58ba2",
"metadata": {},
"source": [
"So, we're happy with our geometry and materials, the only remaining need for our neutron transport simulation in support of shutdown dose rates is the neutron source and simulation settings. Let's create a simple, monoenergetic 14 MeV source pointing in the $z$-direction and run a fixed source simulation."
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "cfe6254f-2896-4059-8216-8ed4058e0486",
"metadata": {},
"outputs": [],
"source": [
"source = openmc.IndependentSource()\n",
"source.energy = openmc.stats.delta_function(14.0e6)\n",
"source.angle = openmc.stats.Monodirectional((0., 0., 1.))\n",
"model.settings.source = source\n",
"\n",
"model.settings.run_mode = 'fixed source'\n",
"model.settings.particles = 1000\n",
"model.settings.batches = 10"
]
},
{
"cell_type": "markdown",
"id": "0a16b6ac-89c0-4ec6-8bee-dbfa6519f400",
"metadata": {},
"source": [
"## Task 2: Calculate volume-averaged fluxes and microscopic cross sections\n",
"\n",
"In order to run a depletion calculation, we need to know the volume-average fluxes and microscopic reaction rates in the steel slab. OpenMC provides a function, `openmc.deplete.get_microxs_and_flux`, that will do this for you using the current simulation settings in the `Model` object that you pass it."
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "10e2fa8b-8335-4d86-8172-edea9ff80349",
"metadata": {},
"outputs": [],
"source": [
"full_chain = openmc.deplete.Chain.from_xml(openmc.config['chain_file'])\n",
"reduced_chain = full_chain.reduce(model.geometry.get_all_nuclides(), level=2)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "3b950093-063a-44b9-a341-78dcea4d22f1",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"117"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(reduced_chain)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "b67c7548-202f-4a4e-9653-a12fae660e10",
"metadata": {},
"outputs": [],
"source": [
"reduced_chain.export_to_xml('steel_chain.xml')\n",
"openmc.config['chain_file'] = 'steel_chain.xml'"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "6a904846-78a3-49f3-92cf-f50e335ef7c6",
"metadata": {},
"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",
" | The OpenMC Monte Carlo Code\n",
" Copyright | 2011-2025 MIT, UChicago Argonne LLC, and contributors\n",
" License | https://docs.openmc.org/en/latest/license.html\n",
" Version | 0.15.3\n",
" Commit Hash | 27e38e894697bb32a1dac7848d2618818b6b8daf\n",
" Date/Time | 2025-11-26 14:40:19\n",
" OpenMP Threads | 2\n",
"\n",
" Reading model XML file 'model.xml' ...\n",
" Reading chain file:\n",
" /home/ubuntu/openmc-nea-course/notebooks/dose/steel_chain.xml...\n",
" Reading cross sections XML file...\n",
" Reading Fe54 from /home/ubuntu/data/endfb71_hdf5/Fe54.h5\n",
" Reading Fe56 from /home/ubuntu/data/endfb71_hdf5/Fe56.h5\n",
" Reading Fe57 from /home/ubuntu/data/endfb71_hdf5/Fe57.h5\n",
" Reading Fe58 from /home/ubuntu/data/endfb71_hdf5/Fe58.h5\n",
" Reading Ni58 from /home/ubuntu/data/endfb71_hdf5/Ni58.h5\n",
" Reading Ni60 from /home/ubuntu/data/endfb71_hdf5/Ni60.h5\n",
" Reading Ni61 from /home/ubuntu/data/endfb71_hdf5/Ni61.h5\n",
" Reading Ni62 from /home/ubuntu/data/endfb71_hdf5/Ni62.h5\n",
" Reading Ni64 from /home/ubuntu/data/endfb71_hdf5/Ni64.h5\n",
" Reading Cr50 from /home/ubuntu/data/endfb71_hdf5/Cr50.h5\n",
" Reading Cr52 from /home/ubuntu/data/endfb71_hdf5/Cr52.h5\n",
" Reading Cr53 from /home/ubuntu/data/endfb71_hdf5/Cr53.h5\n",
" Reading Cr54 from /home/ubuntu/data/endfb71_hdf5/Cr54.h5\n",
" Reading Mn55 from /home/ubuntu/data/endfb71_hdf5/Mn55.h5\n",
" Reading Mo92 from /home/ubuntu/data/endfb71_hdf5/Mo92.h5\n",
" Reading Mo94 from /home/ubuntu/data/endfb71_hdf5/Mo94.h5\n",
" Reading Mo95 from /home/ubuntu/data/endfb71_hdf5/Mo95.h5\n",
" Reading Mo96 from /home/ubuntu/data/endfb71_hdf5/Mo96.h5\n",
" Reading Mo97 from /home/ubuntu/data/endfb71_hdf5/Mo97.h5\n",
" Reading Mo98 from /home/ubuntu/data/endfb71_hdf5/Mo98.h5\n",
" Reading Mo100 from /home/ubuntu/data/endfb71_hdf5/Mo100.h5\n",
" Reading Co59 from /home/ubuntu/data/endfb71_hdf5/Co59.h5\n",
" Minimum neutron data temperature: 294 K\n",
" Maximum neutron data temperature: 294 K\n",
" Reading H1 from /home/ubuntu/data/endfb71_hdf5/H1.h5\n",
" Reading H2 from /home/ubuntu/data/endfb71_hdf5/H2.h5\n",
" Reading He4 from /home/ubuntu/data/endfb71_hdf5/He4.h5\n",
" Reading Ca44 from /home/ubuntu/data/endfb71_hdf5/Ca44.h5\n",
" Reading Ca46 from /home/ubuntu/data/endfb71_hdf5/Ca46.h5\n",
" Reading Ti46 from /home/ubuntu/data/endfb71_hdf5/Ti46.h5\n",
" Reading Ti47 from /home/ubuntu/data/endfb71_hdf5/Ti47.h5\n",
" Reading Ti48 from /home/ubuntu/data/endfb71_hdf5/Ti48.h5\n",
" Reading Ti49 from /home/ubuntu/data/endfb71_hdf5/Ti49.h5\n",
" Reading Ti50 from /home/ubuntu/data/endfb71_hdf5/Ti50.h5\n",
" Reading V50 from /home/ubuntu/data/endfb71_hdf5/V50.h5\n",
" Reading V51 from /home/ubuntu/data/endfb71_hdf5/V51.h5\n",
" Reading Co58 from /home/ubuntu/data/endfb71_hdf5/Co58.h5\n",
" Reading Ni59 from /home/ubuntu/data/endfb71_hdf5/Ni59.h5\n",
" Reading Cu63 from /home/ubuntu/data/endfb71_hdf5/Cu63.h5\n",
" Reading Cu65 from /home/ubuntu/data/endfb71_hdf5/Cu65.h5\n",
" Reading Sr88 from /home/ubuntu/data/endfb71_hdf5/Sr88.h5\n",
" Reading Sr89 from /home/ubuntu/data/endfb71_hdf5/Sr89.h5\n",
" Reading Sr90 from /home/ubuntu/data/endfb71_hdf5/Sr90.h5\n",
" Reading Y89 from /home/ubuntu/data/endfb71_hdf5/Y89.h5\n",
" Reading Y91 from /home/ubuntu/data/endfb71_hdf5/Y91.h5\n",
" Reading Zr90 from /home/ubuntu/data/endfb71_hdf5/Zr90.h5\n",
" Reading Zr91 from /home/ubuntu/data/endfb71_hdf5/Zr91.h5\n",
" Reading Zr92 from /home/ubuntu/data/endfb71_hdf5/Zr92.h5\n",
" Reading Zr93 from /home/ubuntu/data/endfb71_hdf5/Zr93.h5\n",
" Reading Zr94 from /home/ubuntu/data/endfb71_hdf5/Zr94.h5\n",
" Reading Zr95 from /home/ubuntu/data/endfb71_hdf5/Zr95.h5\n",
" Reading Zr96 from /home/ubuntu/data/endfb71_hdf5/Zr96.h5\n",
" Reading Nb93 from /home/ubuntu/data/endfb71_hdf5/Nb93.h5\n",
" Reading Nb94 from /home/ubuntu/data/endfb71_hdf5/Nb94.h5\n",
" WARNING: Negative value(s) found on probability table for nuclide Nb94 at 250K\n",
" WARNING: Negative value(s) found on probability table for nuclide Nb94 at 294K\n",
" WARNING: Negative value(s) found on probability table for nuclide Nb94 at 600K\n",
" WARNING: Negative value(s) found on probability table for nuclide Nb94 at 900K\n",
" WARNING: Negative value(s) found on probability table for nuclide Nb94 at 1200K\n",
" WARNING: Negative value(s) found on probability table for nuclide Nb94 at 2500K\n",
" Reading Nb95 from /home/ubuntu/data/endfb71_hdf5/Nb95.h5\n",
" WARNING: Negative value(s) found on probability table for nuclide Nb95 at 250K\n",
" WARNING: Negative value(s) found on probability table for nuclide Nb95 at 294K\n",
" WARNING: Negative value(s) found on probability table for nuclide Nb95 at 600K\n",
" WARNING: Negative value(s) found on probability table for nuclide Nb95 at 900K\n",
" WARNING: Negative value(s) found on probability table for nuclide Nb95 at 1200K\n",
" Reading Mo99 from /home/ubuntu/data/endfb71_hdf5/Mo99.h5\n",
" WARNING: Negative value(s) found on probability table for nuclide Mo99 at 250K\n",
" WARNING: Negative value(s) found on probability table for nuclide Mo99 at 294K\n",
" WARNING: Negative value(s) found on probability table for nuclide Mo99 at 600K\n",
" WARNING: Negative value(s) found on probability table for nuclide Mo99 at 900K\n",
" WARNING: Negative value(s) found on probability table for nuclide Mo99 at 1200K\n",
" WARNING: Negative value(s) found on probability table for nuclide Mo99 at 2500K\n",
" Reading Tc99 from /home/ubuntu/data/endfb71_hdf5/Tc99.h5\n",
" Reading Ru98 from /home/ubuntu/data/endfb71_hdf5/Ru98.h5\n",
" Reading Ru99 from /home/ubuntu/data/endfb71_hdf5/Ru99.h5\n",
" Reading Ru100 from /home/ubuntu/data/endfb71_hdf5/Ru100.h5\n",
" Reading Ru101 from /home/ubuntu/data/endfb71_hdf5/Ru101.h5\n",
" Preparing distributed cell instances...\n",
" Writing summary.h5 file...\n",
" Maximum neutron transport energy: 20000000 eV for Fe58\n",
"\n",
" ===============> FIXED SOURCE TRANSPORT SIMULATION <===============\n",
"\n",
" Simulating batch 1\n",
" Simulating batch 2\n",
" Simulating batch 3\n",
" Simulating batch 4\n",
" Simulating batch 5\n",
" Simulating batch 6\n",
" Simulating batch 7\n",
" Simulating batch 8\n",
" Simulating batch 9\n",
" Simulating batch 10\n",
" Creating state point statepoint.10.h5...\n",
"\n",
" =======================> TIMING STATISTICS <=======================\n",
"\n",
" Total time for initialization = 6.9566e+00 seconds\n",
" Reading cross sections = 2.2662e+00 seconds\n",
" Total time in simulation = 4.8358e-01 seconds\n",
" Time in transport only = 4.8019e-01 seconds\n",
" Time in active batches = 4.8358e-01 seconds\n",
" Time accumulating tallies = 1.1148e-04 seconds\n",
" Time writing statepoints = 1.8696e-03 seconds\n",
" Total time for finalization = 2.2196e-04 seconds\n",
" Total time elapsed = 7.4729e+00 seconds\n",
" Calculation Rate (active) = 20679.2 particles/second\n",
"\n",
" ============================> RESULTS <============================\n",
"\n",
" Leakage Fraction = 1.08859 +/- 0.00879\n",
"\n"
]
}
],
"source": [
"fluxes, micros = openmc.deplete.get_microxs_and_flux(model, [slab])"
]
},
{
"cell_type": "markdown",
"id": "44df4c2b-ffd9-4c17-a61c-09b6481bf82b",
"metadata": {},
"source": [
"## Task 3: Define an irradiation scenario and deplete\n",
"\n",
"With the volume-average fluxes and microscopic cross sections, we can create a depletion \"operator\" that returns reaction rates to a depletion \"integrator\". Use the `IndependentOperator` and `PredictorIntegrator` classes for this task."
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "9065eecc-f077-4b91-a0e1-2687778901bf",
"metadata": {},
"outputs": [],
"source": [
"op = openmc.deplete.IndependentOperator([steel], fluxes, micros, normalization_mode=\"source-rate\")"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "1b047a12-0838-4386-a6ad-9d6eb5aa077a",
"metadata": {},
"outputs": [],
"source": [
"# Six 1-day pulses, 1 day in between each, 30 day cooling\n",
"timesteps = [1.0, 1.0]*5 + [1.0, 30.0]\n",
"source_rates = [1.0e12, 0.0]*5 + [1e12, 0.0]\n",
"\n",
"integrator = openmc.deplete.PredictorIntegrator(op, timesteps, source_rates=source_rates, timestep_units='d')"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "3e81c9d4-4f3f-4270-b280-765266da7df6",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[openmc.deplete] t=0.0 s, dt=86400.0 s, source=1000000000000.0\n",
"[openmc.deplete] t=86400.0 s, dt=86400.0 s, source=0.0\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/ubuntu/.pyenv/versions/3.12.4/lib/python3.12/site-packages/uncertainties/core.py:1024: UserWarning: Using UFloat objects with std_dev==0 may give unexpected results.\n",
" warn(\"Using UFloat objects with std_dev==0 may give unexpected results.\")\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[openmc.deplete] t=172800.0 s, dt=86400.0 s, source=1000000000000.0\n",
"[openmc.deplete] t=259200.0 s, dt=86400.0 s, source=0.0\n",
"[openmc.deplete] t=345600.0 s, dt=86400.0 s, source=1000000000000.0\n",
"[openmc.deplete] t=432000.0 s, dt=86400.0 s, source=0.0\n",
"[openmc.deplete] t=518400.0 s, dt=86400.0 s, source=1000000000000.0\n",
"[openmc.deplete] t=604800.0 s, dt=86400.0 s, source=0.0\n",
"[openmc.deplete] t=691200.0 s, dt=86400.0 s, source=1000000000000.0\n",
"[openmc.deplete] t=777600.0 s, dt=86400.0 s, source=0.0\n",
"[openmc.deplete] t=864000.0 s, dt=86400.0 s, source=1000000000000.0\n",
"[openmc.deplete] t=950400.0 s, dt=2592000.0 s, source=0.0\n",
"[openmc.deplete] t=3542400.0 (final operator evaluation)\n"
]
}
],
"source": [
"integrator.integrate()"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "21fbe590-bcdc-45a8-a5d2-c969431a4c1c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<StepResult: t=0.0, dt=86400.0, source=1000000000000.0>,\n",
" <StepResult: t=86400.0, dt=86400.0, source=0.0>,\n",
" <StepResult: t=172800.0, dt=86400.0, source=1000000000000.0>,\n",
" <StepResult: t=259200.0, dt=86400.0, source=0.0>,\n",
" <StepResult: t=345600.0, dt=86400.0, source=1000000000000.0>,\n",
" <StepResult: t=432000.0, dt=86400.0, source=0.0>,\n",
" <StepResult: t=518400.0, dt=86400.0, source=1000000000000.0>,\n",
" <StepResult: t=604800.0, dt=86400.0, source=0.0>,\n",
" <StepResult: t=691200.0, dt=86400.0, source=1000000000000.0>,\n",
" <StepResult: t=777600.0, dt=86400.0, source=0.0>,\n",
" <StepResult: t=864000.0, dt=86400.0, source=1000000000000.0>,\n",
" <StepResult: t=950400.0, dt=2592000.0, source=0.0>,\n",
" <StepResult: t=3542400.0, dt=0.0, source=0.0>]"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"results = openmc.deplete.Results()\n",
"results"
]
},
{
"cell_type": "markdown",
"id": "a027887e-617e-4acd-bc4d-9ef26ddbf269",
"metadata": {},
"source": [
"## Task 4: Compute a photon source from the irradiated steel slab\n",
"\n",
"With depletion having run successfully, now use the `openmc.deplete.Results` to determine the activated material composition and its decay photon spectrum."
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "bf33fcf9-f24a-49f2-acb2-94d8520d0c1e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<StepResult: t=3542400.0, dt=0.0, source=0.0>"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"last_step = results[-1]\n",
"last_step"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "60bac5db-9446-4646-bc99-8d2e90aa0733",
"metadata": {},
"outputs": [],
"source": [
"activated_material = last_step.get_material(str(steel.id))"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "261b4431-31a5-4355-96a3-394f39af504c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Material\n",
"\tID =\t1\n",
"\tName =\t\n",
"\tTemperature =\tNone\n",
"\tDensity =\tNone [sum]\n",
"\tVolume =\t6000.0 [cm^3]\n",
"\tDepletable =\tFalse\n",
"\tS(a,b) Tables \n",
"\tNuclides \n",
"\tH1 =\t8.33715984815392e-12 [ao]\n",
"\tH2 =\t3.601542285815245e-25 [ao]\n",
"\tHe4 =\t2.6996465118932704e-12 [ao]\n",
"\tCa44 =\t1.1268964042695361e-24 [ao]\n",
"\tCa46 =\t8.625494484013457e-25 [ao]\n",
"\tCa47 =\t3.313586630879643e-28 [ao]\n",
"\tSc47 =\t5.339904157307925e-27 [ao]\n",
"\tSc49 =\t1.0742265600188758e-72 [ao]\n",
"\tSc50 =\t1.0288113722998632e-75 [ao]\n",
"\tTi46 =\t7.21745529789442e-24 [ao]\n",
"\tTi47 =\t3.768179543389567e-14 [ao]\n",
"\tTi48 =\t4.423981445806284e-23 [ao]\n",
"\tTi49 =\t2.2556651632234155e-13 [ao]\n",
"\tTi50 =\t2.342197461925639e-14 [ao]\n",
"\tTi51 =\t2.2965489972885418e-65 [ao]\n",
"\tV49 =\t2.59333651825336e-15 [ao]\n",
"\tV50 =\t1.6471800224181396e-13 [ao]\n",
"\tV51 =\t1.1833693632204033e-12 [ao]\n",
"\tV53 =\t1.9634063369370954e-64 [ao]\n",
"\tCr49 =\t4.4307555433390593e-64 [ao]\n",
"\tCr50 =\t0.0006038803607183748 [ao]\n",
"\tCr51 =\t8.305135473447802e-13 [ao]\n",
"\tCr52 =\t0.011645231658510152 [ao]\n",
"\tCr53 =\t0.0013204757914402256 [ao]\n",
"\tCr54 =\t0.0003286943736439385 [ao]\n",
"\tMn53 =\t4.868339560682415e-15 [ao]\n",
"\tMn54 =\t1.6299504570326532e-12 [ao]\n",
"\tMn55 =\t0.0017538712121059404 [ao]\n",
"\tMn56 =\t2.4488107163670164e-60 [ao]\n",
"\tMn57 =\t2.1142883735347963e-64 [ao]\n",
"\tMn58 =\t1.0111095937917713e-67 [ao]\n",
"\tFe53 =\t2.8366214672632105e-65 [ao]\n",
"\tFe54 =\t0.003524659498769988 [ao]\n",
"\tFe55 =\t1.3724874789659306e-11 [ao]\n",
"\tFe56 =\t0.05532961636950215 [ao]\n",
"\tFe57 =\t0.0012778021348070075 [ao]\n",
"\tFe58 =\t0.00017005200714176715 [ao]\n",
"\tFe59 =\t3.927043630916157e-15 [ao]\n",
"\tFe61 =\t4.3013010115423625e-66 [ao]\n",
"\tCo57 =\t6.933436858471325e-14 [ao]\n",
"\tCo58 =\t1.3451530159835576e-12 [ao]\n",
"\tCo59 =\t8.17487110016399e-05 [ao]\n",
"\tCo60 =\t2.0759234206389818e-13 [ao]\n",
"\tCo61 =\t1.3175954214596146e-63 [ao]\n",
"\tCo62 =\t2.894389858148917e-65 [ao]\n",
"\tCo64 =\t2.616136480688119e-69 [ao]\n",
"\tNi57 =\t1.3458366715288229e-20 [ao]\n",
"\tNi58 =\t0.0055879403257793 [ao]\n",
"\tNi59 =\t4.718465402598573e-13 [ao]\n",
"\tNi60 =\t0.0021524646095096747 [ao]\n",
"\tNi61 =\t9.356614633035646e-05 [ao]\n",
"\tNi62 =\t0.0002983298169214629 [ao]\n",
"\tNi63 =\t4.9072636654709446e-14 [ao]\n",
"\tNi64 =\t7.59758091892603e-05 [ao]\n",
"\tNi65 =\t1.8691773659439988e-64 [ao]\n",
"\tCu63 =\t3.267875983247111e-17 [ao]\n",
"\tCu65 =\t4.608244940087499e-16 [ao]\n",
"\tSr88 =\t3.7395168192215205e-27 [ao]\n",
"\tSr89 =\t1.0188863923014141e-26 [ao]\n",
"\tSr90 =\t2.7019080125420936e-27 [ao]\n",
"\tSr91 =\t3.403430688601981e-51 [ao]\n",
"\tY89 =\t3.0001749499164256e-15 [ao]\n",
"\tY89_m1 =\t1.1461876683804222e-22 [ao]\n",
"\tY91 =\t1.801804418536769e-26 [ao]\n",
"\tY92 =\t3.3397645225582726e-74 [ao]\n",
"\tY93 =\t3.76894838611015e-49 [ao]\n",
"\tZr89 =\t2.0680656647896193e-18 [ao]\n",
"\tZr90 =\t6.500022189866342e-25 [ao]\n",
"\tZr91 =\t1.6698979924854666e-15 [ao]\n",
"\tZr92 =\t2.1778282866175988e-15 [ao]\n",
"\tZr93 =\t1.5789847058016775e-15 [ao]\n",
"\tZr94 =\t6.326150844817807e-16 [ao]\n",
"\tZr95 =\t7.90932494987922e-16 [ao]\n",
"\tZr96 =\t6.612269617658831e-26 [ao]\n",
"\tZr97 =\t2.7675523854734932e-30 [ao]\n",
"\tNb91 =\t1.955373087294453e-14 [ao]\n",
"\tNb91_m1 =\t4.471659318286667e-18 [ao]\n",
"\tNb92 =\t2.0945829005022417e-14 [ao]\n",
"\tNb93 =\t2.410609714326034e-19 [ao]\n",
"\tNb93_m1 =\t1.5682951175247048e-18 [ao]\n",
"\tNb94 =\t4.741080026660824e-15 [ao]\n",
"\tNb95 =\t2.9234093253527147e-15 [ao]\n",
"\tNb95_m1 =\t5.094520907076362e-19 [ao]\n",
"\tNb96 =\t2.6538902991667387e-25 [ao]\n",
"\tNb97 =\t2.1410460695780314e-31 [ao]\n",
"\tNb97_m1 =\t2.5633087639138704e-33 [ao]\n",
"\tNb98 =\t9.764713688566474e-68 [ao]\n",
"\tNb100 =\t9.859553524466132e-69 [ao]\n",
"\tMo91 =\t1.1419397184103039e-63 [ao]\n",
"\tMo92 =\t0.000220663589875857 [ao]\n",
"\tMo93 =\t1.0603122741638447e-13 [ao]\n",
"\tMo93_m1 =\t2.816060602309764e-50 [ao]\n",
"\tMo94 =\t0.00013838735764517898 [ao]\n",
"\tMo95 =\t0.00023910117840940203 [ao]\n",
"\tMo96 =\t0.0002511518898191458 [ao]\n",
"\tMo97 =\t0.00014433739649682083 [ao]\n",
"\tMo98 =\t0.00036591985268080225 [ao]\n",
"\tMo99 =\t2.88530126159844e-17 [ao]\n",
"\tMo100 =\t0.00014677766524276353 [ao]\n",
"\tMo101 =\t1.9107320968379576e-64 [ao]\n",
"\tTc99 =\t1.5717054466349614e-13 [ao]\n",
"\tTc99_m1 =\t2.5399189179443544e-18 [ao]\n",
"\tTc101 =\t1.362865441700042e-63 [ao]\n",
"\tRu98 =\t1.1796098590776451e-27 [ao]\n",
"\tRu99 =\t5.155140257952722e-18 [ao]\n",
"\tRu100 =\t1.1859450655485886e-23 [ao]\n",
"\tRu101 =\t4.001607900553732e-15 [ao]"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"activated_material"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "35ebdf03-b460-49e6-8cbe-c5c2ebceb135",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<openmc.stats.univariate.Discrete at 0x7fba420edac0>"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"energy_dist = activated_material.get_decay_photon_energy()\n",
"energy_dist"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "f60446fc-41d8-48b6-b498-e1bc22fa43d3",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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ixero6PD7/nPPvtMlZWVuvbaa/Xwww+ruLg4SdHDqHjc5y1btmjnzp1JihjRise9zsrK0j333KPq6mr98Ic/TFLkiESs9/n999/XVVddpbq6Oi1YsEA7duxIYvSph+QkxYyMjKiyslJOpzPg8wcOHFBTU5Oam5vV1dWlyspKrVq1SgMDA75zpk+frrfeeku9vb360Y9+JJfLlazwYVCs9/mll17SvHnzNG/evGSGjSjE4z39+uuvq7OzUy+//LJ27Niht99+O1nhw6BY7/OXX36pX/3qV/rBD36g9vZ2HT58WIcPH07mPyG1eJGyJHl//OMf+x2rqanxOhwO32OPx+OdNWuWd+fOnQGvsXnzZu8LL7yQyDARo2ju86OPPuq99tprvdddd533mmuu8RYWFnq3b9+ezLARhXi8p7ds2eJ99tlnExglYhXNfX7jjTe89913n+/5J5980vvkk08mJd5UxMiJhVy4cEGdnZ2qra31HcvOzlZtba3a29slSS6XS+fOnZMkDQ0Nqa2tTTfddJMp8SI6Ru7zzp07derUKX344Yd66qmntGnTJm3bts2skBElI/d6ZGTE954eHh7WkSNHdOutt5oSL6Jj5D5XV1drYGBAZ8+e1djYmNra2nTLLbeYFbLpMrfaxoLOnDkjj8ejkpISv+MlJSU6ceKEJOmjjz7SX//1X/sKYR988EHNnz/fjHARJSP3GenByL12uVxat26dJMnj8WjTpk2qrq5OeqyInpH7fNlll2nHjh26++675fV6dd999+n+++83I9yUQHKSZmpqatTd3W12GEiijRs3mh0CEuirX/2q3nrrLbPDQBKsWbOG1Xd/wLSOhRQXFysnJ2dKgavL5VJpaalJUSHeuM+Zg3udGbjPkSM5sZDc3FwtXLhQra2tvmNjY2NqbW3VkiVLTIwM8cR9zhzc68zAfY4c0zopZnh4WCdPnvQ97u3tVXd3t4qKijRnzhw1NTWpvr5eixYtUk1NjXbv3q2RkRE1NDSYGDUixX3OHNzrzMB9jjOTVwthkl/84hdeSVO+6uvrfed873vf886ZM8ebm5vrramp8b755pvmBYyocJ8zB/c6M3Cf4yvL66W3OQAASB3UnAAAgJRCcgIAAFIKyQkAAEgpJCcAACClkJwAAICUQnICAABSCskJAABIKSQnAAAgpZCcAACAlEJyAgAAUgrJCQAASCkkJwAAIKX8/wiIIWkUVV6WAAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.stem(energy_dist.x, energy_dist.p)\n",
"plt.xscale('log')\n",
"plt.yscale('log')"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "3670301f-b6cf-49b8-8c70-d4f73979bcd3",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"full_dist = activated_material.get_decay_photon_energy(0.0)\n",
"plt.stem(full_dist.x, full_dist.p)\n",
"plt.xscale('log')\n",
"plt.yscale('log')"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "3094ff13-5bbe-475d-9ec1-cdccb4c04f0e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(352, 84)"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"full_dist.x.size, energy_dist.x.size"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "d8d9f917-8985-4b01-92f8-a63f3a0e3a4b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"np.float64(2446836522.9653597)"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"energy_dist.integral()"
]
},
{
"cell_type": "markdown",
"id": "f76c5fc5-783a-46ed-90a2-4a700822fb93",
"metadata": {},
"source": [
"## Task 5: Run a photon transport calculation\n",
"\n",
"With the decay photon spectrum, now redefine the source for the `Model` to be a uniformly distributed photon source in the slab with the decay photon spectrum. Define a photon flux tally in the detector cell and run a transport simulation."
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "7b0a7181-cdde-4a08-ba0c-951d23bc7384",
"metadata": {},
"outputs": [],
"source": [
"photon_source = openmc.IndependentSource(particle='photon')\n",
"photon_source.energy = energy_dist\n",
"photon_source.space = openmc.stats.Box(*slab.bounding_box)\n",
"photon_source.strength = energy_dist.integral()\n",
"model.settings.source = photon_source"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "ab894151-ec31-4f4f-8ef0-ce88bc993f8f",
"metadata": {},
"outputs": [],
"source": [
"detector_tally = openmc.Tally()\n",
"detector_tally.filters = [openmc.CellFilter([detector]), openmc.ParticleFilter(['photon'])]\n",
"# dose_filter = openmc.EnergyFunctionFilter(*openmc.data.dose_coefficients(...))\n",
"detector_tally.scores = ['flux']\n",
"model.tallies = [detector_tally]"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "233e3441-1f9b-470c-8942-16a8e5286178",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"PosixPath('/home/ubuntu/openmc-nea-course/notebooks/dose/statepoint.10.h5')"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model.run(apply_tally_results=True, output=False)"
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "83a10457-5625-4367-8879-0ba449661672",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>cell</th>\n",
" <th>particle</th>\n",
" <th>nuclide</th>\n",
" <th>score</th>\n",
" <th>mean</th>\n",
" <th>std. dev.</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>3.686018e+06</td>\n",
" <td>1.614072e+06</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" cell particle nuclide score mean std. dev.\n",
"0 2 photon total flux 3.69e+06 1.61e+06"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"detector_tally.get_pandas_dataframe()"
]
},
{
"cell_type": "markdown",
"id": "fde71fbd-95b8-4e58-b548-f7f58c990041",
"metadata": {},
"source": [
"## Task 6: Mesh-based R2S calculation\n",
"\n",
"Now that we have manually gone through the steps to calculate the photon dose from a neutron irradiation, we will show how this can be dramatically simplified by using the `openmc.deplete.R2SManager` class, which automates the full workflow and works for either a cell-based or a mesh-based workflow.\n",
"\n",
"The first step to use `R2SManager` is to define the domain that will be used as the activation region. For a mesh-based R2S calculation, that means we need to define a mesh. We'll use the convenient `RegularMesh.from_domain` classmethod for this:"
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "fc5ee390-15d4-4258-8629-b6ac49e341f6",
"metadata": {},
"outputs": [],
"source": [
"mesh = openmc.RegularMesh.from_domain(slab, (5, 5, 5))"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "86d596ad-ddf6-40a2-a348-e8c684e81078",
"metadata": {},
"outputs": [],
"source": [
"model.settings.source = source\n",
"model.settings.particles = 10000"
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "e58c3861-f897-4291-afb8-5524dbef6e70",
"metadata": {},
"outputs": [],
"source": [
"r2s = openmc.deplete.R2SManager(model, mesh)"
]
},
{
"cell_type": "code",
"execution_count": 38,
"id": "15316ff3-a525-4756-971d-f7ee11c90932",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<openmc.model.model.Model at 0x7fba47c41370>"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"r2s.neutron_model"
]
},
{
"cell_type": "code",
"execution_count": 39,
"id": "a69f441d-d0db-43fc-a21a-99d3cc6d2afb",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<openmc.model.model.Model at 0x7fba3f68aea0>"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"r2s.photon_model"
]
},
{
"cell_type": "code",
"execution_count": 40,
"id": "51037212-88e5-4071-a813-56758428da55",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[Tally\n",
" \tID =\t3\n",
" \tName =\t\n",
" \tFilters =\tCellFilter, ParticleFilter\n",
" \tNuclides =\ttotal\n",
" \tScores =\t['flux']\n",
" \tEstimator =\tNone\n",
" \tMultiply dens. =\tTrue]"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"r2s.photon_model.tallies"
]
},
{
"cell_type": "code",
"execution_count": 41,
"id": "85930d8f-bafa-438c-b2ad-2d53d67ba4b8",
"metadata": {},
"outputs": [],
"source": [
"r2s.neutron_model.tallies = []"
]
},
{
"cell_type": "code",
"execution_count": 42,
"id": "e4b8ad8e-2f9d-4649-9184-afc06a5554eb",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
" WARNING: Negative value(s) found on probability table for nuclide Nb94 at 250K\n",
" WARNING: Negative value(s) found on probability table for nuclide Nb94 at 294K\n",
" WARNING: Negative value(s) found on probability table for nuclide Nb94 at 600K\n",
" WARNING: Negative value(s) found on probability table for nuclide Nb94 at 900K\n",
" WARNING: Negative value(s) found on probability table for nuclide Nb94 at 1200K\n",
" WARNING: Negative value(s) found on probability table for nuclide Nb94 at 2500K\n",
" WARNING: Negative value(s) found on probability table for nuclide Nb95 at 250K\n",
" WARNING: Negative value(s) found on probability table for nuclide Nb95 at 294K\n",
" WARNING: Negative value(s) found on probability table for nuclide Nb95 at 600K\n",
" WARNING: Negative value(s) found on probability table for nuclide Nb95 at 900K\n",
" WARNING: Negative value(s) found on probability table for nuclide Nb95 at 1200K\n",
" WARNING: Negative value(s) found on probability table for nuclide Mo99 at 250K\n",
" WARNING: Negative value(s) found on probability table for nuclide Mo99 at 294K\n",
" WARNING: Negative value(s) found on probability table for nuclide Mo99 at 600K\n",
" WARNING: Negative value(s) found on probability table for nuclide Mo99 at 900K\n",
" WARNING: Negative value(s) found on probability table for nuclide Mo99 at 1200K\n",
" WARNING: Negative value(s) found on probability table for nuclide Mo99 at 2500K\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[openmc.deplete] t=0.0 s, dt=86400.0 s, source=1000000000000.0\n",
"[openmc.deplete] t=86400.0 s, dt=86400.0 s, source=0.0\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/ubuntu/.pyenv/versions/3.12.4/lib/python3.12/site-packages/uncertainties/core.py:1024: UserWarning: Using UFloat objects with std_dev==0 may give unexpected results.\n",
" warn(\"Using UFloat objects with std_dev==0 may give unexpected results.\")\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[openmc.deplete] t=172800.0 s, dt=86400.0 s, source=1000000000000.0\n",
"[openmc.deplete] t=259200.0 s, dt=86400.0 s, source=0.0\n",
"[openmc.deplete] t=345600.0 s, dt=86400.0 s, source=1000000000000.0\n",
"[openmc.deplete] t=432000.0 s, dt=86400.0 s, source=0.0\n",
"[openmc.deplete] t=518400.0 s, dt=86400.0 s, source=1000000000000.0\n",
"[openmc.deplete] t=604800.0 s, dt=86400.0 s, source=0.0\n",
"[openmc.deplete] t=691200.0 s, dt=86400.0 s, source=1000000000000.0\n",
"[openmc.deplete] t=777600.0 s, dt=86400.0 s, source=0.0\n",
"[openmc.deplete] t=864000.0 s, dt=86400.0 s, source=1000000000000.0\n",
"[openmc.deplete] t=950400.0 s, dt=2592000.0 s, source=0.0\n"
]
},
{
"data": {
"text/plain": [
"PosixPath('r2s_2025-11-26T15-05-11')"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"r2s.run(timesteps, source_rates, timestep_units='d', photon_time_indices=[-1])"
]
},
{
"cell_type": "code",
"execution_count": 43,
"id": "74046b82-12bf-4b40-95f2-15e7f3458f2f",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"dict_keys(['mesh_material_volumes', 'fluxes', 'micros', 'activation_materials', 'depletion_results', 'photon_tallies'])"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"r2s.results.keys()"
]
},
{
"cell_type": "code",
"execution_count": 45,
"id": "de5512a3-2b91-4711-b846-822d397f6fe7",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"125"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(r2s.results['fluxes'])"
]
},
{
"cell_type": "code",
"execution_count": 49,
"id": "d38cf5ee-b54d-47b7-8eca-f11e2e926d25",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Tally\n",
"\tID =\t3\n",
"\tName =\t\n",
"\tFilters =\tCellFilter, ParticleFilter\n",
"\tNuclides =\ttotal\n",
"\tScores =\t['flux']\n",
"\tEstimator =\ttracklength\n",
"\tMultiply dens. =\tTrue"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"photon_tally_result = r2s.results['photon_tallies'][12][0]\n",
"photon_tally_result"
]
},
{
"cell_type": "code",
"execution_count": 50,
"id": "a95da000-9b54-49fe-a032-b8235f35cf59",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>cell</th>\n",
" <th>particle</th>\n",
" <th>nuclide</th>\n",
" <th>score</th>\n",
" <th>mean</th>\n",
" <th>std. dev.</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>2.251429e+06</td>\n",
" <td>480123.666947</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" cell particle nuclide score mean std. dev.\n",
"0 2 photon total flux 2.25e+06 4.80e+05"
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"photon_tally_result.get_pandas_dataframe()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c5e09e3e-3c05-4570-b8e6-93c9c61b9a2b",
"metadata": {},
"outputs": [],
"source": [
"photon_tally_result.higher_moments = True\n",
"# ... run your simulation ...\n",
"photon_tally_result.normaltest()"
]
},
{
"cell_type": "code",
"execution_count": 51,
"id": "03aa4812-3f58-4d85-b2eb-8448f9cc6a03",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7fba3ed28c50>"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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CQlITU3VsDIiIqISVgfv8OHDsWTJkjLbly5datHi0Pb0xx9/oLi4uMxpTqGhocjMzFR8Tn5+PvR6vckXERGRvVgdvAcPHsTAgQPLbH/00Udx8OBBmxTlSIsXL0ZwcLD8FR6uck1PIiIiG7A6eO/cuQNf37JXo/bx8dG8tVi7dm14e3sjK8v0wtdZWVkICwtTfE5ycjJ0Op38de3aNUeUSkREHsrq4G3Tpg02bNhQZvv69evRsmVLmxRVUb6+voiOjkZKSoq8zWAwICUlBbGxsYrP8fPzQ1BQkMkXERGRvVh9Hu/s2bMxbNgwXLp0Cb179wYApKSk4PPPP8emTZtsXqC1pk+fjnHjxqFjx47o1KkTVq5ciby8PIwfP17r0oiIiKwP3sGDB2Pr1q1YtGgRvvjiC/j7+6Nt27bYs2cPevbsaY8arfLUU0/h999/x5w5c5CZmYn27dvj66+/5rrSRETkFNzuPN7K4nm8RERUER55Hi8REZGzsyh4a9asiT/++MPig0ZERODXX3+tcFFERETuyqIx3pycHOzatQvBwcEWHfTPP//kpdOIiIgUWDy5aty4cfasg4iIyCNYFLwGg8HedRAREXkETq4iIiJyIAYvERFRJR07dgx37961aF8Gr4qjR49qXQIREbmA06dPIyYmBl27drVofwavirVr12pdAhERuYB169ZBCIFffvnFov0ZvCqKioq0LoGIiFyAtXlhdfD27t0br776apntt2/fli+aQERERMqsvkjC/v37kZ6ejrS0NHz66acICAgAABQUFODAgQM2L5CIiMidVKirec+ePcjMzESXLl1w5coVG5dERETkvioUvPXq1cOBAwfQpk0bxMTEYP/+/TYui4iIyD1ZHbySJAEA/Pz88Nlnn2HKlCkYMGAA3nvvPZsXR0RE5G6sHuM1v3zvK6+8ghYtWnAtZyIiIgtYHbyXL19GnTp1TLYNHz4czZs3d6tFJ27fvq11CURE5AKszQtJmDdhPZxer5cvf/jTTz+hY8eOGldERETO6uzZs2jdurVJb7BOp0NQUJDqc7iARjk++OADrUsgIiIn9sknn8iha+laFgzechQWFmpdAhERObGCggL59oQJEyx6DoOXiIjIgRi8REREDsTgJSIiciAGLxERkQMxeMuRk5OjdQlEROTEdDqd1c9h8JZj27ZtOH78uNZlEBGR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",
"text/plain": [
"<Figure size 516.129x519.481 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Sample sites from the photon source\n",
"sites = r2s.photon_model.sample_external_source(100_000)\n",
"\n",
"# Bin them onto a histogram\n",
"xs = [site.r[0] for site in sites]\n",
"zs = [site.r[2] for site in sites]\n",
"H, _, _ = np.histogram2d(xs, zs, 20, density=True)\n",
"\n",
"# Plot the geometry\n",
"ax = r2s.photon_model.plot(basis='xz', pixels=(400, 400), outline='only')\n",
"ax.autoscale(False)\n",
"ax.imshow(H.T, extent=slab.bounding_box.extent['xz'], origin='lower', norm=LogNorm())"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "1d262472-342c-4af3-9f61-d20c822fb730",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "ff6a6fdd-969c-4198-ad9b-f14fcb3f9536",
"metadata": {},
"source": [
"## Task 7: Calculate decay photon flux using D1S\n",
"\n",
"The above calculation was done using a typical \"rigorous 2-step\" (R2S) workflow where we separately ran neutron transport, activation, and photon transport calculations. OpenMC also includes a built-in \"direct 1-step\" (D1S) method that relies on a coupled neutronphoton transport calculation with the use of time correction factors to compute the shutdown dose rate. The workflow for a D1S calculation is much simpler than for R2S and involves the following steps:\n",
"\n",
"1. Indicate that neutron reactions should emit decay photons using `settings.use_decay_photons = True`\n",
"2. Make sure any \"detector\" tallies have a particle filter for photons\n",
"3. Call the `d1s.prepare_tallies` method on your model\n",
"4. Run the coupled neutronphoton transport simulation\n",
"5. Compute time correction factors with `d1s.time_correction_factors`\n",
"6. Apply the factors to the relevant tallies with `d1s.apply_time_correction`"
]
},
{
"cell_type": "code",
"execution_count": 55,
"id": "baf24e90-989e-4d28-853d-8311b5293900",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'neutron'"
]
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model.settings.source[0].particle"
]
},
{
"cell_type": "code",
"execution_count": 56,
"id": "fe66684a-ef68-42e1-8264-5474c8fd8f25",
"metadata": {},
"outputs": [],
"source": [
"model.settings.use_decay_photons = True\n",
"model.settings.photon_transport = True\n",
"model.tallies = [detector_tally]"
]
},
{
"cell_type": "code",
"execution_count": 58,
"id": "f6c9fcde-3c8c-4773-b6b8-89cb7f2b2534",
"metadata": {},
"outputs": [],
"source": [
"from openmc.deplete import d1s"
]
},
{
"cell_type": "code",
"execution_count": 62,
"id": "26a47b24-4df9-4da9-bc27-7ff5be1e4d6f",
"metadata": {},
"outputs": [],
"source": [
"detector_tally = openmc.Tally()\n",
"detector_tally.filters = [openmc.CellFilter([detector]), openmc.ParticleFilter(['photon'])]\n",
"detector_tally.scores = ['flux']\n",
"model.tallies = [detector_tally]"
]
},
{
"cell_type": "code",
"execution_count": 63,
"id": "397c4f51-2f25-43db-b23c-77beaa6d1cab",
"metadata": {},
"outputs": [],
"source": [
"radionuclides = d1s.prepare_tallies(model)"
]
},
{
"cell_type": "code",
"execution_count": 64,
"id": "927b7377-7cf0-450b-8e03-d8c233d8071f",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Tally\n",
"\tID =\t7\n",
"\tName =\t\n",
"\tFilters =\tCellFilter, ParticleFilter, ParentNuclideFilter\n",
"\tNuclides =\t\n",
"\tScores =\t['flux']\n",
"\tEstimator =\tNone\n",
"\tMultiply dens. =\tTrue"
]
},
"execution_count": 64,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"detector_tally"
]
},
{
"cell_type": "code",
"execution_count": 65,
"id": "8651d8ac-ceee-4bb3-be5d-33b3466f7f13",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"PosixPath('/home/ubuntu/openmc-nea-course/notebooks/dose/statepoint.10.h5')"
]
},
"execution_count": 65,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model.run(apply_tally_results=True, output=False)"
]
},
{
"cell_type": "code",
"execution_count": 66,
"id": "402adc80-60bb-4bea-9a33-88aa6980553d",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>cell</th>\n",
" <th>particle</th>\n",
" <th>parentnuclide</th>\n",
" <th>nuclide</th>\n",
" <th>score</th>\n",
" <th>mean</th>\n",
" <th>std. dev.</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Nb98</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>1.455704e-08</td>\n",
" <td>1.455704e-08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Nb100</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Mn52</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Mn57</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Ni57</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Fe61</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Cr49</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Cr55</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>2.733290e-12</td>\n",
" <td>2.733290e-12</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Nb92</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>2.895947e-06</td>\n",
" <td>2.074967e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Mo91</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Nb96</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Cr51</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>9.936837e-07</td>\n",
" <td>9.927083e-07</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Zr89</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Mn54</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>3.916542e-05</td>\n",
" <td>8.912528e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Co58</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>5.246875e-05</td>\n",
" <td>1.516495e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Zr93</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Zr97</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Ni65</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>2.225002e-08</td>\n",
" <td>2.225002e-08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Ti51</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>1.025973e-08</td>\n",
" <td>1.025973e-08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Mo101</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>5.743067e-08</td>\n",
" <td>3.872549e-08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Zr95</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>5.363494e-08</td>\n",
" <td>5.363494e-08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Mo93_m1</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Fe55</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Nb95</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>2.442321e-07</td>\n",
" <td>2.441529e-07</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Mo99</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>1.589747e-07</td>\n",
" <td>8.330548e-08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Mo93</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>V50</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>V52</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>2.258763e-05</td>\n",
" <td>3.470646e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Mn58</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>V54</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>30</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Co60_m1</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>31</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Co60</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>3.397177e-06</td>\n",
" <td>1.665118e-06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>32</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Co61</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>33</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Nb97</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>1.708168e-07</td>\n",
" <td>1.138945e-07</td>\n",
" </tr>\n",
" <tr>\n",
" <th>34</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>V53</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>1.250029e-07</td>\n",
" <td>1.250026e-07</td>\n",
" </tr>\n",
" <tr>\n",
" <th>35</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Ni59</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>36</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Nb94</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>37</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Mn56</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>1.102291e-04</td>\n",
" <td>2.703110e-05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>38</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Fe53</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>39</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Mn53</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>40</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Fe59</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>1.699475e-12</td>\n",
" <td>1.699475e-12</td>\n",
" </tr>\n",
" <tr>\n",
" <th>41</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Ni63</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>42</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Co62</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>43</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Co64</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" cell particle parentnuclide nuclide score mean std. dev.\n",
"0 2 photon Nb98 total flux 1.46e-08 1.46e-08\n",
"1 2 photon Nb100 total flux 0.00e+00 0.00e+00\n",
"2 2 photon Mn52 total flux 0.00e+00 0.00e+00\n",
"3 2 photon Mn57 total flux 0.00e+00 0.00e+00\n",
"4 2 photon Ni57 total flux 0.00e+00 0.00e+00\n",
"5 2 photon Fe61 total flux 0.00e+00 0.00e+00\n",
"6 2 photon Cr49 total flux 0.00e+00 0.00e+00\n",
"7 2 photon Cr55 total flux 2.73e-12 2.73e-12\n",
"8 2 photon Nb92 total flux 2.90e-06 2.07e-06\n",
"9 2 photon Mo91 total flux 0.00e+00 0.00e+00\n",
"10 2 photon Nb96 total flux 0.00e+00 0.00e+00\n",
"11 2 photon Cr51 total flux 9.94e-07 9.93e-07\n",
"12 2 photon Zr89 total flux 0.00e+00 0.00e+00\n",
"13 2 photon Mn54 total flux 3.92e-05 8.91e-06\n",
"14 2 photon Co58 total flux 5.25e-05 1.52e-05\n",
"15 2 photon Zr93 total flux 0.00e+00 0.00e+00\n",
"16 2 photon Zr97 total flux 0.00e+00 0.00e+00\n",
"17 2 photon Ni65 total flux 2.23e-08 2.23e-08\n",
"18 2 photon Ti51 total flux 1.03e-08 1.03e-08\n",
"19 2 photon Mo101 total flux 5.74e-08 3.87e-08\n",
"20 2 photon Zr95 total flux 5.36e-08 5.36e-08\n",
"21 2 photon Mo93_m1 total flux 0.00e+00 0.00e+00\n",
"22 2 photon Fe55 total flux 0.00e+00 0.00e+00\n",
"23 2 photon Nb95 total flux 2.44e-07 2.44e-07\n",
"24 2 photon Mo99 total flux 1.59e-07 8.33e-08\n",
"25 2 photon Mo93 total flux 0.00e+00 0.00e+00\n",
"26 2 photon V50 total flux 0.00e+00 0.00e+00\n",
"27 2 photon V52 total flux 2.26e-05 3.47e-06\n",
"28 2 photon Mn58 total flux 0.00e+00 0.00e+00\n",
"29 2 photon V54 total flux 0.00e+00 0.00e+00\n",
"30 2 photon Co60_m1 total flux 0.00e+00 0.00e+00\n",
"31 2 photon Co60 total flux 3.40e-06 1.67e-06\n",
"32 2 photon Co61 total flux 0.00e+00 0.00e+00\n",
"33 2 photon Nb97 total flux 1.71e-07 1.14e-07\n",
"34 2 photon V53 total flux 1.25e-07 1.25e-07\n",
"35 2 photon Ni59 total flux 0.00e+00 0.00e+00\n",
"36 2 photon Nb94 total flux 0.00e+00 0.00e+00\n",
"37 2 photon Mn56 total flux 1.10e-04 2.70e-05\n",
"38 2 photon Fe53 total flux 0.00e+00 0.00e+00\n",
"39 2 photon Mn53 total flux 0.00e+00 0.00e+00\n",
"40 2 photon Fe59 total flux 1.70e-12 1.70e-12\n",
"41 2 photon Ni63 total flux 0.00e+00 0.00e+00\n",
"42 2 photon Co62 total flux 0.00e+00 0.00e+00\n",
"43 2 photon Co64 total flux 0.00e+00 0.00e+00"
]
},
"execution_count": 66,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"detector_tally.get_pandas_dataframe()"
]
},
{
"cell_type": "code",
"execution_count": 67,
"id": "4c032fb7-22df-4062-be0b-dbbb2e593d6f",
"metadata": {},
"outputs": [],
"source": [
"tcf = d1s.time_correction_factors(radionuclides, timesteps, source_rates, timestep_units='d')"
]
},
{
"cell_type": "code",
"execution_count": 68,
"id": "0dc33e78-3e61-47d2-8395-ea085d35c72c",
"metadata": {},
"outputs": [],
"source": [
"result = d1s.apply_time_correction(detector_tally, tcf)"
]
},
{
"cell_type": "code",
"execution_count": 69,
"id": "0c0d5dc4-9446-4508-ad58-98f5277bf9b1",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>cell</th>\n",
" <th>particle</th>\n",
" <th>nuclide</th>\n",
" <th>score</th>\n",
" <th>mean</th>\n",
" <th>std. dev.</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>2.745324e+06</td>\n",
" <td>641922.558</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" cell particle nuclide score mean std. dev.\n",
"0 2 photon total flux 2.75e+06 6.42e+05"
]
},
"execution_count": 69,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"result.get_pandas_dataframe()"
]
},
{
"cell_type": "code",
"execution_count": 70,
"id": "e9cc1c7b-8e49-4710-8e7b-489d193fac2e",
"metadata": {},
"outputs": [],
"source": [
"result_by_nuclide = d1s.apply_time_correction(detector_tally, tcf, sum_nuclides=False)"
]
},
{
"cell_type": "code",
"execution_count": 71,
"id": "ada8e4e1-b17f-4a9d-933c-daa34cd2df45",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>cell</th>\n",
" <th>particle</th>\n",
" <th>parentnuclide</th>\n",
" <th>nuclide</th>\n",
" <th>score</th>\n",
" <th>mean</th>\n",
" <th>std. dev.</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Nb98</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Nb100</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Mn52</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Mn57</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Ni57</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Fe61</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Cr49</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Cr55</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Nb92</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>9.502703e-04</td>\n",
" <td>6.808755e-04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Mo91</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Nb96</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Cr51</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>6.159467e+04</td>\n",
" <td>6.153421e+04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Zr89</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Mn54</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>4.824159e+05</td>\n",
" <td>1.097791e+05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Co58</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>2.177249e+06</td>\n",
" <td>6.292862e+05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Zr93</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Zr97</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Ni65</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>1.746472e-82</td>\n",
" <td>1.746472e-82</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Ti51</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Mo101</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Zr95</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>2.373735e+03</td>\n",
" <td>2.373735e+03</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Mo93_m1</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Fe55</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Nb95</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>1.440174e+04</td>\n",
" <td>1.439707e+04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Mo99</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>4.414169e+01</td>\n",
" <td>2.313101e+01</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Mo93</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>V50</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>V52</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Mn58</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>V54</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>30</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Co60_m1</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>31</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Co60</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>7.245205e+03</td>\n",
" <td>3.551220e+03</td>\n",
" </tr>\n",
" <tr>\n",
" <th>32</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Co61</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>33</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Nb97</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>7.328975e-176</td>\n",
" <td>4.886695e-176</td>\n",
" </tr>\n",
" <tr>\n",
" <th>34</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>V53</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>35</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Ni59</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>36</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Nb94</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>37</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Mn56</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>9.940475e-77</td>\n",
" <td>2.437669e-77</td>\n",
" </tr>\n",
" <tr>\n",
" <th>38</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Fe53</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>39</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Mn53</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>40</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Fe59</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>9.150078e-02</td>\n",
" <td>9.150078e-02</td>\n",
" </tr>\n",
" <tr>\n",
" <th>41</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Ni63</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>42</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Co62</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>43</th>\n",
" <td>2</td>\n",
" <td>photon</td>\n",
" <td>Co64</td>\n",
" <td>total</td>\n",
" <td>flux</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" cell particle parentnuclide nuclide score mean std. dev.\n",
"0 2 photon Nb98 total flux 0.00e+00 0.00e+00\n",
"1 2 photon Nb100 total flux 0.00e+00 0.00e+00\n",
"2 2 photon Mn52 total flux 0.00e+00 0.00e+00\n",
"3 2 photon Mn57 total flux 0.00e+00 0.00e+00\n",
"4 2 photon Ni57 total flux 0.00e+00 0.00e+00\n",
"5 2 photon Fe61 total flux 0.00e+00 0.00e+00\n",
"6 2 photon Cr49 total flux 0.00e+00 0.00e+00\n",
"7 2 photon Cr55 total flux 0.00e+00 0.00e+00\n",
"8 2 photon Nb92 total flux 9.50e-04 6.81e-04\n",
"9 2 photon Mo91 total flux 0.00e+00 0.00e+00\n",
"10 2 photon Nb96 total flux 0.00e+00 0.00e+00\n",
"11 2 photon Cr51 total flux 6.16e+04 6.15e+04\n",
"12 2 photon Zr89 total flux 0.00e+00 0.00e+00\n",
"13 2 photon Mn54 total flux 4.82e+05 1.10e+05\n",
"14 2 photon Co58 total flux 2.18e+06 6.29e+05\n",
"15 2 photon Zr93 total flux 0.00e+00 0.00e+00\n",
"16 2 photon Zr97 total flux 0.00e+00 0.00e+00\n",
"17 2 photon Ni65 total flux 1.75e-82 1.75e-82\n",
"18 2 photon Ti51 total flux 0.00e+00 0.00e+00\n",
"19 2 photon Mo101 total flux 0.00e+00 0.00e+00\n",
"20 2 photon Zr95 total flux 2.37e+03 2.37e+03\n",
"21 2 photon Mo93_m1 total flux 0.00e+00 0.00e+00\n",
"22 2 photon Fe55 total flux 0.00e+00 0.00e+00\n",
"23 2 photon Nb95 total flux 1.44e+04 1.44e+04\n",
"24 2 photon Mo99 total flux 4.41e+01 2.31e+01\n",
"25 2 photon Mo93 total flux 0.00e+00 0.00e+00\n",
"26 2 photon V50 total flux 0.00e+00 0.00e+00\n",
"27 2 photon V52 total flux 0.00e+00 0.00e+00\n",
"28 2 photon Mn58 total flux 0.00e+00 0.00e+00\n",
"29 2 photon V54 total flux 0.00e+00 0.00e+00\n",
"30 2 photon Co60_m1 total flux 0.00e+00 0.00e+00\n",
"31 2 photon Co60 total flux 7.25e+03 3.55e+03\n",
"32 2 photon Co61 total flux 0.00e+00 0.00e+00\n",
"33 2 photon Nb97 total flux 7.33e-176 4.89e-176\n",
"34 2 photon V53 total flux 0.00e+00 0.00e+00\n",
"35 2 photon Ni59 total flux 0.00e+00 0.00e+00\n",
"36 2 photon Nb94 total flux 0.00e+00 0.00e+00\n",
"37 2 photon Mn56 total flux 9.94e-77 2.44e-77\n",
"38 2 photon Fe53 total flux 0.00e+00 0.00e+00\n",
"39 2 photon Mn53 total flux 0.00e+00 0.00e+00\n",
"40 2 photon Fe59 total flux 9.15e-02 9.15e-02\n",
"41 2 photon Ni63 total flux 0.00e+00 0.00e+00\n",
"42 2 photon Co62 total flux 0.00e+00 0.00e+00\n",
"43 2 photon Co64 total flux 0.00e+00 0.00e+00"
]
},
"execution_count": 71,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"result_by_nuclide.get_pandas_dataframe()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "eb48f8a1-7292-44e9-85de-a254e37afc5f",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.12.4"
}
},
"nbformat": 4,
"nbformat_minor": 5
}