Files
Stafie Alex PSI 850de66b07 first files
2025-12-02 11:57:33 +01:00

1786 lines
224 KiB
Plaintext
Raw Permalink 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": "f19a3dc7-f423-4e8c-9673-b79a2de4ca37",
"metadata": {},
"source": [
"# Advanced Tallies in OpenMC\n",
"\n",
"In this tutorial, we'll learn about more advanced tally options, focusing on different spatial representations of tallies. There are several different mechanisms by which we can define a spatial filter:\n",
"\n",
"- Cells (distributed and not distributed)\n",
"- Overlaid structured meshes\n",
"- Overlaid unstructured meshes\n",
"- Functional expansions\n",
"\n",
"Cell tallies directly use the regions of a cell as a filter. Overlaid meshes instead use each element in the mesh as a unique region. Finally, functional expansion tallies expand the tally collision events with a functional series representation. For example, if we want to tally the heating distribution over a cylindrical pin in a light water reactor, we might expect the power distribution to exhibit a spatial self-shielding profile, high on the periphery and low in the fuel pin center. Three different tallies could be used to capture this spatial variation.\n",
" \n",
"<img src=\"filters.png\" alt=\"drawing\" width=\"600\"/>"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "5b9969e1-ebbc-4d29-bd26-96ead5926fe0",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"import openmc\n",
"import numpy as np"
]
},
{
"cell_type": "markdown",
"id": "4f72ba30-11cc-4842-a83b-58eb717dfdc9",
"metadata": {},
"source": [
"A model that warrants advanced tallies is necessarily more complex than a pincell, so we're going to use the built-in PWR assembly model in OpenMC."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "dd77bd70-85f5-4e14-b6dd-00548acc759a",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"model = openmc.examples.pwr_assembly()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "b83f7c54-9d43-4a0f-b4a1-3437a6e1fb2f",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/plain": [
"<Axes: xlabel='x [cm]', ylabel='y [cm]'>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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67Vu3drbsGGDixBKMmPGDO/VV1/1tm3b5r3xxhve8OHDvU6dOnkffvih53nR//zSHDt2zDvllFO8H/3oR01+FsXP78CBA5nzHgDvrrvu8t555x1vx44dnud53p133um1b9/ee+6557w//elP3iWXXOL17t3b+/vf/57Zxze+8Q3v3nvvzfzfby7rgM2TY6688koPQJPXK6+8ktlm+/bt3siRI70TTjjB69SpkzdjxoycbxyvvPKKB8Dbtm1b5r2PP/7YGzdunNe2bVuvvLzcmzhxYqYhCwPjxo3zhgwZUvBn27Zty/Fg586d3nnnned16NDBKysr80477TTv5ptv9urr6y0ecXDWrVvnVVdXexUVFV7r1q29008/3fvJT36Sc6UwP0bP87y///3v3r/8y794J510ktemTRvv29/+dk4zEiYWLlxYMG+zL2ZH8XO89957vVNOOcVr1aqV99WvftV78803Mz87//zzvSuvvDJn+9/+9rfel7/8Za9Vq1bemWee6b3wwguWjzg4xT6vhQsXZrbJj/Gmm27K+NG1a1fv4osv9t5++237Bx+Ayy67zOvWrZvXqlUr7x/+4R+8yy67zNuyZUvm51H//NK89NJLHgBv8+bNTX4Wxc8vff7Kf6XjaGxs9P793//d69q1q1dWVuYNGzasSew9e/b0Zs+enfNeqbmsg5TneZ6+XwISQgghhMQbrvNECCGEECIAmydCCCGEEAHYPBFCCCGECMDmiRBCCCFEADZPhBBCCCECsHkihBBCCBGAzRMhhBBCiABsngghiWf79u1IpVJIpVJFn5mli0WLFmW0brrpJqNahBAzsHkihJD/z8svv4zly5cb1bjssstQW1ub87R7Qki0aOH6AAghJCx07NgRHTt2NKpxwgkn4IQTTkCrVq2M6hBCzMErT4SQWPHXv/4VlZWV+MlPfpJ5b+XKlWjVqpXUVaUFCxbgzDPPRFlZGbp164apU6dmfpZKpfDggw9i9OjRaNOmDU4//XSsWrUKW7ZswdChQ3HiiSdiyJAh2Lp1q5bYCCHhgM0TISRWdO7cGQsWLMCtt96KtWvX4sCBA/je976HqVOnYtiwYUL7uv/++zFlyhRce+21eO+99/D888/jtNNOy9nm9ttvx4QJE7B+/XpUVVXh8ssvx3XXXYeamhqsXbsWnuflNFyEkOjDX9sRQmLHxRdfjMmTJ+OKK67AV77yFZx44omYO3eu8H7uuOMOzJgxAzfeeGPmvXPPPTdnm4kTJ+I73/kOAOBHP/oRBg8ejH//93/HiBEjAAA33ngjJk6cqBANISRs8MoTISSWzJ8/H0ePHsWTTz6JRx99FGVlZULjP/zwQ+zdu9f3atWAAQMy/+7atSsAoH///jnvff7552hoaBDSJ4SEFzZPhJBYsnXrVuzduxeNjY3Yvn278PgTTjgh0HYtW7bM/DuVShV9r7GxUfgYCCHhhM0TISR2HD58GOPHj8dll12G22+/Hddccw0+/PBDoX20a9cOvXr1Mr50ASEkevCeJ0JI7Pg//+f/oL6+Hr/4xS/Qtm1bvPjii7j66quxZMkSof3ceuutuP7669GlSxeMHDkSBw4cwBtvvIHvf//7ho6cEBIFeOWJEBIrXn31Vdxzzz34zW9+g/LycjRr1gy/+c1v8D//8z+4//77hfZ15ZVX4p577sH//b//F2eeeSZGjx6NDz74wNCRE0KiQsrzPM/1QRBCiEu2b9+O3r1745133jH+eJY0Q4cOxVlnnYV77rnHih4hRB+88kQIIf+fIUOGYMiQIUY1Hn30UbRt2xb/8z//Y1SHEGIOXnkihCSeo0ePZv4ir6ysDD169DCmdeDAAezbtw8A0L59e3Tq1MmYFiHEDGyeCCGEEEIE4K/tCCGEEEIEYPNECCGEECIAmydCCCGEEAHYPBFCCCGECMDmiRBCCCFEADZPhBBCCCECsHkihBBCCBGAzRMhhBBCiABsngghhBBCBPh/TzltsywwudsAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 645.161x649.351 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"model.geometry.root_universe.plot(width=(22, 22), pixels=(500, 500))"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "3a2e9248-32ac-4e4d-bf64-529aac1f02ad",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"BoundingBox(lower_left=(-10.71, -10.71, -inf), upper_right=(10.71, 10.71, inf))"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model.geometry.root_universe.bounding_box"
]
},
{
"cell_type": "markdown",
"id": "285d387b-7557-43c1-bf4d-0b6e6ab71338",
"metadata": {},
"source": [
"Let's make this model finite in the vertical direction so that we'll be able to see some variation in tallies added with a $z$-component. By inspecting the model, we see that we want to change the region of cell 7, so that it is within two z-planes which bound on the top and bottom."
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "60301796-8308-4c31-a77c-e8f04fa2d0e2",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{7: Cell\n",
" \tID =\t7\n",
" \tName =\troot cell\n",
" \tFill =\t3\n",
" \tRegion =\t(3 -4 5 -6)\n",
" \tRotation =\tNone\n",
" \tTranslation =\tNone\n",
" \tVolume =\tNone}"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model.geometry.root_universe.cells"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "12ff9a2d-24df-4be6-b5ba-0c54d56c2ba4",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{3: Surface\n",
" \tID =\t3\n",
" \tName =\t\n",
" \tType =\tx-plane\n",
" \tBoundary =\treflective\n",
" \tCoefficients \n",
" x0 =\t-10.71,\n",
" 4: Surface\n",
" \tID =\t4\n",
" \tName =\t\n",
" \tType =\tx-plane\n",
" \tBoundary =\treflective\n",
" \tCoefficients \n",
" x0 =\t10.71,\n",
" 5: Surface\n",
" \tID =\t5\n",
" \tName =\t\n",
" \tType =\ty-plane\n",
" \tBoundary =\treflective\n",
" \tCoefficients \n",
" y0 =\t-10.71,\n",
" 6: Surface\n",
" \tID =\t6\n",
" \tName =\t\n",
" \tType =\ty-plane\n",
" \tBoundary =\treflective\n",
" \tCoefficients \n",
" y0 =\t10.71,\n",
" 1: Surface\n",
" \tID =\t1\n",
" \tName =\tFuel OR\n",
" \tType =\tz-cylinder\n",
" \tBoundary =\ttransmission\n",
" \tCoefficients \n",
" x0 =\t0\n",
" y0 =\t0\n",
" r =\t0.39218,\n",
" 2: Surface\n",
" \tID =\t2\n",
" \tName =\tClad OR\n",
" \tType =\tz-cylinder\n",
" \tBoundary =\ttransmission\n",
" \tCoefficients \n",
" x0 =\t0\n",
" y0 =\t0\n",
" r =\t0.4572}"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"surfaces = model.geometry.get_all_surfaces()\n",
"surfaces"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "e4da1f58-b76b-43c5-b8c5-3c0aaa768091",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{7: Cell\n",
" \tID =\t7\n",
" \tName =\troot cell\n",
" \tFill =\t3\n",
" \tRegion =\t(3 -4 5 -6)\n",
" \tRotation =\tNone\n",
" \tTranslation =\tNone\n",
" \tVolume =\tNone,\n",
" 1: Cell\n",
" \tID =\t1\n",
" \tName =\tfuel\n",
" \tFill =\tMaterial 1\n",
" \tRegion =\t-1\n",
" \tRotation =\tNone\n",
" \tTemperature =\tNone\n",
" \tDensity =\tNone\n",
" \tTranslation =\tNone\n",
" \tVolume =\tNone,\n",
" 2: Cell\n",
" \tID =\t2\n",
" \tName =\tclad\n",
" \tFill =\tMaterial 2\n",
" \tRegion =\t(1 -2)\n",
" \tRotation =\tNone\n",
" \tTemperature =\tNone\n",
" \tDensity =\tNone\n",
" \tTranslation =\tNone\n",
" \tVolume =\tNone,\n",
" 3: Cell\n",
" \tID =\t3\n",
" \tName =\thot water\n",
" \tFill =\tMaterial 3\n",
" \tRegion =\t2\n",
" \tRotation =\tNone\n",
" \tTemperature =\tNone\n",
" \tDensity =\tNone\n",
" \tTranslation =\tNone\n",
" \tVolume =\tNone,\n",
" 4: Cell\n",
" \tID =\t4\n",
" \tName =\tguide tube inner water\n",
" \tFill =\tMaterial 3\n",
" \tRegion =\t-1\n",
" \tRotation =\tNone\n",
" \tTemperature =\tNone\n",
" \tDensity =\tNone\n",
" \tTranslation =\tNone\n",
" \tVolume =\tNone,\n",
" 5: Cell\n",
" \tID =\t5\n",
" \tName =\tguide tube clad\n",
" \tFill =\tMaterial 2\n",
" \tRegion =\t(1 -2)\n",
" \tRotation =\tNone\n",
" \tTemperature =\tNone\n",
" \tDensity =\tNone\n",
" \tTranslation =\tNone\n",
" \tVolume =\tNone,\n",
" 6: Cell\n",
" \tID =\t6\n",
" \tName =\tguide tube outer water\n",
" \tFill =\tMaterial 3\n",
" \tRegion =\t2\n",
" \tRotation =\tNone\n",
" \tTemperature =\tNone\n",
" \tDensity =\tNone\n",
" \tTranslation =\tNone\n",
" \tVolume =\tNone}"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"height = 100\n",
"\n",
"cells = model.geometry.root_universe.get_all_cells()\n",
"cells"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "db1125f8-2b65-4c47-9168-a6051e4ba5a1",
"metadata": {},
"outputs": [],
"source": [
"bottom = openmc.ZPlane(z0=0, boundary_type='vacuum')\n",
"top = openmc.ZPlane(z0=height, boundary_type='vacuum')"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "1e4d9f1e-8cbb-4f4b-9d77-4533d092b6b8",
"metadata": {},
"outputs": [],
"source": [
"\n",
"\n",
"cells[7].region = cells[7].region & +bottom & -top"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f139345a-f7cd-49a4-abd3-79ae55325d54",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 10,
"id": "97cb26af-c81c-4914-bae7-192585e34970",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<Axes: xlabel='x [cm]', ylabel='z [cm]'>"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 774.194x779.221 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"model.geometry.root_universe.plot(width=(22, 150), pixels=(600, 600), basis='xz')"
]
},
{
"cell_type": "markdown",
"id": "3e2ef5a5-3e98-4324-8fb0-99e74070e614",
"metadata": {},
"source": [
"# Structured Mesh Tallies"
]
},
{
"cell_type": "markdown",
"id": "bb3a2175-3fee-4351-805a-ceafa1f59636",
"metadata": {},
"source": [
"OpenMC can tally results onto regular, rectilinear, cylindrical, spherical, and unstructured meshes. Here we'll look at how to setup a regular mesh tally and visualize it for this assembly model. To do so, we need to create a mesh filter using a `RegularMesh`. A `RegularMesh` can be defined for 1D, 2D, or 3D; here, we will set up a 3-D mesh (but we'll use only one element in the vertical direction). This would be the same as if we had set up a 2D mesh - the reason we are using a 3-D mesh is because we need a 3-D mesh in order to output results into VTK format, which we'll demo shortly."
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "1bb8e94a-848e-480f-a70e-e8381d2c579f",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[-10.71 -10.71 0. ] [ 10.71 10.71 100. ]\n"
]
}
],
"source": [
"lower_left, upper_right = model.geometry.bounding_box\n",
"print(lower_left, upper_right)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "ca8ab1a9",
"metadata": {},
"outputs": [],
"source": [
"mesh = openmc.RegularMesh()\n",
"mesh.lower_left = lower_left\n",
"mesh.upper_right = upper_right\n",
"mesh.dimension = (50, 50, 1)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "5a239e20-a1db-4b94-87c9-41de3f32d268",
"metadata": {},
"outputs": [],
"source": [
"mesh_filter = openmc.MeshFilter(mesh)"
]
},
{
"cell_type": "markdown",
"id": "01bdef40",
"metadata": {},
"source": [
"Learning from our last session on tallies, we'll include a tally with all of the scores needed for determining the neutron source (we will plot our tally in conventional units for flux)."
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "95e962ac",
"metadata": {},
"outputs": [],
"source": [
"mesh_tally = openmc.Tally()\n",
"mesh_tally.filters = [mesh_filter]\n",
"mesh_tally.scores = ['flux', 'heating']\n",
"model.tallies = [mesh_tally]"
]
},
{
"cell_type": "markdown",
"id": "a65d0ecd-13ee-4f43-836e-b4201567e47a",
"metadata": {},
"source": [
"With these tallies setup, we'll apply them and and run the model."
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "1d0d6cbd-cf04-4488-8fb7-45d82e5b6e99",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"root = model.geometry.root_universe\n",
"\n",
"box = openmc.openmc.stats.Box(root.bounding_box.lower_left, root.bounding_box.upper_right)\n",
"model.settings.source = openmc.IndependentSource(space=box, constraints={'fissionable': True})\n",
"\n",
"model.settings.particles = 2000\n",
"model.settings.batches = 50 \n",
"model.settings.inactive = 20"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "ba9aa8a2",
"metadata": {},
"outputs": [],
"source": [
"statepoint = model.run(output=False, apply_tally_results=True)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "0b298f8c-df78-4cfb-83de-4a7a2c8a469c",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/plain": [
"(2500, 1, 1)"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mt = mesh_tally.get_values(scores=['flux'])\n",
"mt.shape"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "05d63825",
"metadata": {},
"outputs": [],
"source": [
"mesh_flux = mt.reshape(mesh.dimension)"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "2b986dee",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.colorbar.Colorbar at 0x7fcc37392ab0>"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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Lu+//z4qKiowadKkeq3nSqwuZWVltc5Dcnd3d5h/1RAcGBEREbVRer0eAwYMQFpamu09i8WCtLQ0JCYm1tomMTHRbnkASE1NFZevy5o1a3DXXXchLMw+IzAxMRGHDh1Cfn6+3Xr8/f0RFxdXZ7+9evXChg0bHN5fv359vdpLOMeIiIjIVVqg8nVKSgomT56MgQMHIj4+HitWrEB5ebktS23SpElo3769bfL2o48+isGDB2PZsmUYOXIk1q9fjz179uCNN96w9VlUVITs7GycO3cOAJCZmQng0pWeq6/2HD9+HF999ZVDHSQAGD58OOLi4jBx4kS88MILMBgMmDdvHqZPn16v24Lz58/H6NGjceLECdx2220AgLS0NPznP/9p9PwigAMjp6rqYoTWq5Y0TEUtDwAwRsj1buJuyFa2/eGYXEfHs0ZOCXUrV3YLi6dc1yP81lwxBgA9AuRJcx//2EuMWc3qFFa3EPnXQFepbuvhLtf++W33I2Lsh6IoZb/WULkwzegbMpRtfyiR+z6WIdcx0pjUta0eGrhDjB2paqds29VTrjP17v54MRYZWazs97e58twCY3Xjf4YO5sv70FtfrWwb7CXXABvevvZJqVdkVYSIsdxwfzF26oxjDZ2reftXibHrQ/PFGAAcPisf28ICeZu07uoaPppg+Ryv62GmESHy7Qyton6V11n1b2ZVtacYq/GXjysAuJU7/lZYqlxYSdqqufRqah8NMG7cOBQUFGDBggUwGAzo27cvtm3bZpvonJ2dDa325xtISUlJWLduHebNm4ennnoKsbGx2Lx5s62GEQBs2bLFNrACgPHjxwMAFi5ciEWLFtneX7t2LTp06IDhw4c7bJdOp8PHH3+Mhx9+GImJifDx8cHkyZOxePHien2uO++8E5s3b8azzz6L999/H15eXujduzc+//xzDB48uEH76GocGBEREbVxM2bMwIwZM2qNbd++3eG9sWPHYuzYsWJ/U6ZMwZQpU+pc77PPPqss1tipU6darybV18iRIzFy5MhGt69NvQZGo0ePbnDHq1evrrWiJhER0a+V1Vr3lbb69EH2/vznP2Px4sUIDZUr9NdXvSZfb968GXq93q6QlOr1ySefoKxMXb6eiIjoV8fFWWm/Fv/+97+blIl2tXrfSnv11VfrfQXo/fffb/QGERERETWE1YmX0eo1MPry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ERFRba6ey9y5c2dER0c7XDWyWq1NKqNT71tpkydPbvRKiIiIiJOvnalz586222pXKyoqQufOnZv3VprFUsftHCIiIqobK187zZW5RL9UVlYGT0/5Fnxd2uTkayIiolaJc4yaLCUlBQCg0Wgwf/58eHv/PNfNbDZj165d6Nu3b6P758CIiIiIrhn79196vqLVasWhQ4fsHlOm1+vRp08fPPHEE43unwMjIiIiF+Eco6a7ko02depUvPrqq/Dz83Nq//V+iOy5c/KTqImIiKge+BBZp6iursa//vUvnD592ul91/uK0Q033IBVq1bhnnvucfpGtBWd3rfCzc3xjD39Ox9lO61Rnkhn8VFPfLdWyN+QwpPBcsM65u7l/RQmxrr3Vlf8+NeReDFmzpb3RWCmepuqbpPrtFzfQa67BAAlJ+UaMKcz5QcG90jIE2MA4Hda3pE33JylbPvdue5izOwrH3edYh8CgE+e/PeOcYC6VlRkkFwj6WxBoBgrzFNXmP3nqSFizOqjzhzxPSrX9invWSXG3A3qyZfZefL3Q1OpU7bFphAxZIxV/FfraKCyW10Puc6R3tOobJtXJv/VHOAr76cIX3VdrJ9y5fphkTefVbY9t0uuaWaWDyuqQtT/5becl+syHXST1wkAvds5/pFfrTNhn7IVtTbu7u7o2LFjs5QGqvcVo2eeeQYPPvggxo4di6KiIqdvCBERUZtn/fl2WmNfjblitGrVKsTExMDT0xMJCQnYvXu3cvmNGzeie/fu8PT0RK9evbB161a7+KZNmzB8+HCEhIRAo9EgIyOj1n7S09Nx2223wcfHB/7+/rjllltQWfnzH7kxMTHQaDR2r+eee65en+mvf/0rnnrqKaePSeo9MPrzn/+MgwcP4vz584iLi8NHH33k1A0hIiJq81rgVtqGDRuQkpKChQsXYt++fejTpw+Sk5ORn1/7lfadO3diwoQJuP/++7F//36MGjUKo0aNwuHDh23LlJeXY9CgQXj++efF9aanp2PEiBEYPnw4du/eje+//x4zZsywe14pACxevBi5ubm218yZM+v1uVauXImvvvoK7dq1Q7du3dC/f3+7V2M1aPJ1586d8cUXX2DlypUYPXo0evToATc3+y727eMFSSIiotZi+fLlmDZtGqZOnQoAWL16NT755BOsXbsWc+bMcVj+lVdewYgRIzB7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",
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"img = plt.imshow(mesh_flux, origin='lower', extent=[-10.71, 10.71, -10.71, 10.71])\n",
"plt.xlabel('X [cm]')\n",
"plt.ylabel('Y [cm]')\n",
"plt.colorbar(img, label='Flux (particle-cm/src)')"
]
},
{
"cell_type": "markdown",
"id": "7528075b-0810-4092-9c55-8e5ab4ea9f8a",
"metadata": {},
"source": [
"Just like in our last tutorial, we need to renormalize these flux values by (i) multiplying by the neutron source rate and (ii) dividing by the volume of each tally bin in order to get into units of neutrons/cm$^2$/s. Note that the volume chosen for normalization should always be the volume of *that* tally bin (a single mesh element in our case). To get the neutron source rate, we want the total heating over the entire domain - we have the heating tally within each mesh element, so we first need to take a sum over all those values.\n",
"\n",
"Definition for source rate, $S$: \n",
"\n",
"$r \\left\\lbrack\\frac{\\text{eV}}{\\text{src}}\\right\\rbrack * \\textcolor{red}{S} \\left\\lbrack\\frac{\\text{src}}{\\text{s}}\\right\\rbrack = p \\left\\lbrack\\frac{J}{\\text{s}}\\right\\rbrack * \\frac{1}{1.602\\times10^{-19}} \\left\\lbrack\\frac{eV}{\\text{J}}\\right\\rbrack $"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "81185ee4-8955-4e3b-ba42-c2a871172a63",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/plain": [
"np.float64(79902414.47398785)"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"r = mesh_tally.get_values(scores=['heating']).sum()\n",
"r"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "0d14b043-94bd-4211-9c6d-a629b2508f3f",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"np.float64(1.3280869421400394e+18)"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"neutron_source = 17e6 / 1.602e-19 /r\n",
"neutron_source"
]
},
{
"cell_type": "markdown",
"id": "5a5ec39e-a065-4d72-8dcb-2d9354e0401f",
"metadata": {},
"source": [
"For the volume normalization, we'll divide the flux values by the volume of a mesh voxel. Again, we're working with a 2D model so we'll assume an axial length of 1 cm."
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "5b227c58-9e9e-4b78-ac9d-4e3c94f3d850",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/plain": [
"np.float64(18.352656000000003)"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"volume = model.geometry.root_universe.bounding_box.volume / 2500\n",
"volume"
]
},
{
"cell_type": "markdown",
"id": "efb7cefd-5b43-457e-a071-01fd16b48e2d",
"metadata": {},
"source": [
"To normalize the neutron flux, we now do\n",
"\n",
"$f \\left\\lbrack\\frac{\\text{particle-cm}}{\\text{src}}\\right\\rbrack * \\frac{S}{V} \\left\\lbrack\\frac{\\text{src}}{\\text{s cm$^3$}}\\right\\rbrack \\rightarrow \\left\\lbrack\\frac{\\text{particle}}{\\text{cm$^2$-s}}\\right\\rbrack $"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "42120a7f-0c36-4b69-b341-800353b7815e",
"metadata": {
"scrolled": true,
"tags": []
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.colorbar.Colorbar at 0x7fcc34cf7ec0>"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjoAAAHACAYAAACrqcIiAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAdo5JREFUeJzt3Xl4VOXZP/DvLJnJvu8QEvY9EVAiURQqCkipqKX+rAsoorWCVaytaRHBpbiLC69o3wLSFlxaxbZaFBFEIYKAkX0JJCSErGTfZiYz5/cHL6Nxcj+TMJMJDN/Pdc2lmXue55w558zwzDnnvh+dpmkaiIiIiPyQvrtXgIiIiKircKBDREREfosDHSIiIvJbHOgQERGR3+JAh4iIiPwWBzpERETktzjQISIiIr/FgQ4RERH5LQ50iIiIyG9xoENERER+iwMdIiKiDtq8eTOmTp2K5ORk6HQ6rF27tlPtW1paMHPmTAwfPhxGoxHTpk1zec2mTZug0+lcHqWlpd55ExcYDnSIiIg6qLGxERkZGVi6dOlZtbfb7QgKCsL999+PCRMmKF976NAhlJSUOB/x8fFntcwLnbG7V4CIiOh8MXnyZEyePFmMWywW/PGPf8SaNWtQU1ODYcOG4ZlnnsG4ceMAACEhIXj99dcBAFu2bEFNTY3YV3x8PCIjI7249hcmntEhIiLykjlz5iAnJwdvv/02du/ejenTp2PSpEk4cuRIp/u66KKLkJSUhKuvvhpbtmzpgrW9MHCgQ0RE5AWFhYVYsWIF3nvvPYwdOxZ9+/bFb3/7W1x++eVYsWJFh/tJSkrCsmXL8M9//hP//Oc/kZKSgnHjxmHXrl1duPb+i5euiIiIvGDPnj2w2+0YMGBAm+ctFgtiYmI63M/AgQMxcOBA599ZWVk4evQoXnrpJfz1r3/12vpeKDjQISIi8oKGhgYYDAbs3LkTBoOhTSw0NNSjvkePHo2vvvrKoz4uVBzoEBERecGIESNgt9tRXl6OsWPHerXv3NxcJCUlebXPCwUHOkRERB3U0NCAvLw859/5+fnIzc1FdHQ0BgwYgFtuuQW33347XnjhBYwYMQIVFRXYsGED0tPTMWXKFADA/v37YbVaUVVVhfr6euTm5gI4ffMxACxZsgS9e/fG0KFD0dLSgv/93//F559/jk8//dTXb9cv6DRN07p7JYiIiM4HmzZtwvjx412enzFjBlauXAmbzYYnn3wSq1atQnFxMWJjY3HppZdi0aJFGD58OAAgLS0Nx48fd+njzD/Hzz77LN58800UFxcjODgY6enpWLBgQbvLJfc40CEiIiK/xfRyIiIi8lsc6BAREZHf4s3IXuBwOHDy5EmEhYVBp9N19+oQEVEnaJqG+vp6JCcnQ6/vut//LS0tsFqtXunLZDIhMDDQK335Ow50vODkyZNISUnp7tUgIiIPFBUVoWfPnl3Sd0tLC3qnhqK03O6V/hITE5Gfn8/BTgdwoOMFYWFhAIB+9yyAwdzOQefmJE9LnHw/eNyQcmXbho0JYqyph0OMmarUv1qs0XJbd+9HF9sixhynzGLMGNes7LfVKh+uA3qWKdse2S0PRI3N8hsKGVal7LcxV652aotRf6GFHTGIsYZUefs7wluV/SZ8Lm+n1mD1zgsul/suGy33a41Sv1dzudzWEaTOh0jMKBVjFfUhYiz4szBlvyGl8nutGhygbGsbUS/GesfKx8zY2DwxBgA1tmAxtrcuWdn2+IZUMaYbWSfGYkIalf2eOCzPmN3rE/V+PzXYJMYi8uXtXzFK/mwAQJ9LC8XYsYpoZVvdQdfjwmFpQf6Ljzu/y7uC1WpFabkdx3emITzMs7NGdfUOpI4qgNVq5UCnAzjQ8YIzl6sM5sCzGujoA+UvemOIPDA4s0y5X/kfS4NZ/UFTtXU70JG/q4Em+f3og9X/4OkN8uHqbjvpFV8Gek1+Q4ZgN9tf0a89SP2PgMEsf5krt3+QeqBjDJC3k2ZS7zxjgNy3PlDuV+/uvSraQnH8A+p9a7DL299gUv8DoHqvBrN6oOMItsn9KtY3MFT9lWu2ycsNsMuDBkD9XaALtogxY4j6eNIHyf0aje6OcXmd1ceaeqATECL3a2hU73ed4jPri1sPQsN0CA3zbDkOd1/C1AYHOkRERD5i1xywe1jUxa4pfgiRCw50iIiIfMQBDQ54NtLxtP2FhunlRERE5Ld4RoeIiMhHHHDA0wtPnvdwYeFAx4uMFsDQzhnF2oFu0gnD5JvyTh6Xs3oAIFRxz56hRb5hzRqhPvUZWCGf7LNEublpWCfHU4eUiLGCveqsksCeDWLsUG4vZVstVq5dYa+Qb2ys36ve/hGjKsWYw83Z5fo6uW9Tjbz9W4LUJ2Ibk+S4Xr6H9vQ69ZC/EoKHV4sxa5Wc/QQAkZeeEmMV1epMl5M75RmbU0efEGPFk5TdosYi3/gbEiIfawAwq992MbanvocYe+vwpcp+mxvlYzE0TM5mBABjprx/ooLljMbKBvW+i0itFWOF10Qq2wbKHw+cvEI+Tk2pclYbABytiBVj9vxQZVtHpOsgwdHiu4GDXdNg93DmJU/bX2jOq0tXmzdvxtSpU5GcnAydToe1a9e2iWuahgULFiApKQlBQUGYMGECjhw54rbfpUuXIi0tDYGBgcjMzMT27fKXGBEREZ0/zquBTmNjIzIyMrB06dJ2488++yxeeeUVLFu2DNu2bUNISAgmTpyIlhb5l9A777yDefPm4bHHHsOuXbuQkZGBiRMnorxcXb+GiIios87cjOzpgzruvBroTJ48GU8++SSuv/56l5imaViyZAnmz5+P6667Dunp6Vi1ahVOnjzpcubnh1588UXMnj0bd9xxB4YMGYJly5YhODgYy5cv78J3QkREFyIHNNg9fHCg0znn1UBHJT8/H6WlpZgwYYLzuYiICGRmZiInJ6fdNlarFTt37mzTRq/XY8KECWIbALBYLKirq2vzICIionOP3wx0SktPl4lPSGg7JUJCQoIz9mOVlZWw2+2dagMAixcvRkREhPPBea6IiKgjeOnK9/xmoONL2dnZqK2tdT6Kioq6e5WIiOg8cCbrytMHdZzfDHQSExMBAGVlbSd3LCsrc8Z+LDY2FgaDoVNtAMBsNiM8PLzNg4iIiM49flNHp3fv3khMTMSGDRtw0UUXAQDq6uqwbds23Hvvve22MZlMGDVqFDZs2IBp06YBABwOBzZs2IA5c+Z0eh2soYChnfn8tBB1HZ2QA/IkgKZa9ci9rq8c1ykWG71X2S1aFOVjfnPtx8q2//PeFDFWWCTP+GlMVc+i3Fwht9UFqLeTTq+IJ8lZebZm9UckMkiuT3KsRK71AQBGxVyKcZfJ9YaqNsp1ZQCgvrdiMldFbSUAcPSQt4WhWTGppEU9CeOpGrm2iaNCPQmjvrd8XFwSfVxuB3VtpcKqKLmtohYUAGyr7i3Gdh6UY7om9XbKuuSgGGvV1L9Lt+3vK8YMuyLFmD1efUxEZ8nHYm2sujBTjxFlYuxomfz5aClV1/bR2itY9n90wZ2viaOpvh+8zPF/D0/7oI47rwY6DQ0NyMvLc/6dn5+P3NxcREdHo1evXnjggQfw5JNPon///ujduzceffRRJCcnOwcxAHDVVVfh+uuvdw5k5s2bhxkzZuDiiy/G6NGjsWTJEjQ2NuKOO+7w9dsjIiI/dyZzytM+qOPOq4HOjh07MH78eOff8+bNAwDMmDEDK1euxO9+9zs0Njbi7rvvRk1NDS6//HKsW7cOgYHf/2I8evQoKiu/L9d50003oaKiAgsWLEBpaSkuuugirFu3zuUGZSIiIk/ZNXhh9nLvrMuF4rwa6IwbNw6a4iYsnU6Hxx9/HI8//rj4moKCApfn5syZc1aXqoiIiOjcdl4NdIiIiM5nvEfH9zjQISIi8hEHdLBDfQN4R/qgjvOb9HIiIiKiH+MZHS9q7meBPsh1pD12kHoG9S8tg8RYa4U6HdUgZwND55BH/TUD1Xez2eKtYuzFLdco2+rDFenNFnmdrDVymj0AGOvkbaFKpQeAVrvctzGxSYyF7VKkVAMoqOgpxhzx6tRbW7i8D06UyanPWl91vzqTvDEC96hTuS2pctvQTXLKb/VF6h1gMMrHhC1Y3bZfQqUY62GuFmNrjmYq+w2KlksD2DX1L+bjtdFiLCDMIsZaLUHKfnd9NESMWYfI6wsA+kb581GTKX+ejaXqY/zE4Xi5bZx6nYprI8SYZpe3cVCx+ntPrzhkrBHq77b2svQdLb77ze/QTj887YM6jgMdIiIiH7F74dKVp+0vNLx0RURERH6LZ3SIiIh8hGd0fI8DHSIiIh9xaDo43NwD1pE+qON46YqIiIj8Fs/oEBER+QgvXfkeBzpEREQ+Yocedg8vprippkE/woGOF4VGNsMQ7FovZFthmrqhUTF/l6LWBACMnrRXjH15YIAYuy4jV9lvrU2u97HtRKqyrS1UPqxsFrk+hjlErvUBAOlDT4qxHd/1U7bVWeXtaDTKXxstMcpuEXlYjtXZApRtw0ecEmOVJyLlhiZ1AfiAE3LNIEuMugCH7qhcK8caKW/D4EL1V0mTWa7VElik3k7F+9PE2PPDk8XYZcPU9av2lCeJsbryUGXby0fsEWPfoJcYq6xV14oKGSPXBWrd7eZg7C3Xg1LRdOo6OsE9GsSY1aqud9NUIm/H4CK5ranWzXGq+Jc+6rB6GKDpXI/jVpsD+cpW3qN54R4djffodArv0SEiIiK/xTM6REREPsJ7dHyPAx0iIiIfsWt62Nubh6JTfXhpZS4QvHRFREREfotndIiIiHzEAR0cHp5jcICndDqDAx0iIiIf4T06vseBjhcZdBoMOteRtu6QnLILAOhhE0M6dSYxvt44VF6f1BYx9sUJdTp2q0P+xTEkoVTZduehNDGmU6TStx5Xp/Tu3T1QjJlM6l84UQfleKU1XIzZE9Spqg6zvJ1sPS3KtlWHo+VglOKYMKjfa2Cl/CWoV68Sai6RX6BK/u+RJKdFA4ClSt7GMVnq46n280QxpmuWU5TrbIHKflvt8r4b0LdE2XZx0kYxdq/1WjE2u+9Xyn5XFIwRYxHpcjkCQF2SIKhI/qpvTmlV9ttaLn9/6YLVbVVlHRoHysdac6265EDYMXnfVQ5T/7MWXOb6+bFbeReHP+NAh4iIyEe8czMyL111Bgc6REREPnL6Hh0PJ/XkpatO4fk6IiIi8ls8o0NEROQjDi/MdcWsq87hQIeIiMhHeI+O73GgQ0RE5CMO6FlHx8c40PGi2opQ6INcU1p10W5yxB3yjWXNvdUzekfkyjMP64Y2i7Ga8jBlv/pAOW20OixY2TYkWl6ubZ+cZmxNUKeqGirklNP4K9TpwM1H5Jmqg8rl7d/UU739bZq8/SMi1bNJN5TKM1mnpVSIseO58ozdAFA/Qi4roDW6+ci3yOnaUT1qxVhmXIGy2x49a8TY0twrlW0dg+R9EBVbL8Z+EntQ2e9vUwrE2IfVI5VtV9UOEmMNrfJ+vSpYMd09gNetV4ixZos65RoB8vdMcz9FXQGLegZyU6Ucd5jUbR3J8rGoU3zvmSvVAwFLlByzB6kHAZYW1+XaLby5159xoENEROQjdk0Hu+ZhwUAP219oONAhIiLyEbsXbka289JVpzC9nIiIiPwWz+gQERH5iEPTw+Fh1pWDWVedwoEOERGRj/DSle/x0hURERH5Lb8a6KSlpUGn07k87rvvvnZfv3LlSpfXBgaqZzwmIiI6Ww58n3l1tg83BUvoR/zq0tU333wDu93u/Hvv3r24+uqrMX36dLFNeHg4Dh065Pxbp/Mgbc+uO/34EWOMXEsCAOxlQWIsMEWuEwIAlii5jovtSKQYMzeqx7i6IfI6O9ykNjZWy++nxyVlYuxUfYiyX+souRbI8WPxyra4zC6G9C3ytggKclPHKEauLVNSHqlsq0XLdYP0OvnUtD1SXW8o+IA8WG8epD4WVXMFVitqL71/8mJlt0MHFYmxZ0f/U9n2ubxrxFh8SIMYSwmoUvb7VvnlYsxsUG9jvU7+p+bltH+IsQ/q05X9NjTK+86hqDsDAJcMzBdj+8sTxZg5wKbst9ouF61R1dgBANVXhVYn1wUyyqW4AAANqfLnOahEvU7t/rz34U9+7xQM9KtzFF3OrwY6cXFxbf5++umn0bdvX1x5pVyQTKfTITFR/hIgIiKi85ffDgutViv+9re/4c4771SepWloaEBqaipSUlJw3XXXYd++fT5cSyIiupCcmevK0wd1nF+d0fmhtWvXoqamBjNnzhRfM3DgQCxfvhzp6emora3F888/j6ysLOzbtw89e/YU21ksFlgs319Gqaur8+aqExGRn3JAB4fqGnEH+6CO89uBzl/+8hdMnjwZycnyvEBjxozBmDFjnH9nZWVh8ODBeOONN/DEE0+I7RYvXoxFixZ5dX2JiMj/eWf2cp7R6Qy/3FrHjx/HZ599hrvuuqtT7QICAjBixAjk5eUpX5ednY3a2lrno6hIvtGSiIiIuo9fntFZsWIF4uPjMWXKlE61s9vt2LNnD6699lrl68xmM8xmeYZiIiKi9ninYKBfnqPoMn430HE4HFixYgVmzJgBo7Ht27v99tvRo0cPLF68GADw+OOP49JLL0W/fv1QU1OD5557DsePH+/0maAzTKcM0Ae6pjZGbg1WttO3yqnEpWFyqjYABCou1drD5BTMgNRGZb86RXpzkFGdjhoWI/dduT1BjBma1dedI6+QU9OrjqhT08MvOiXGaurk/eMupTfQKKchx8aoSwM0W+X02uMVckqv3izvVwBwjJSXG3A4VNk2efRJMXZil3wZ2NBbTvMGgAMn5MzGp+omK9tel7pHjA0MLBFj3zalKvu9LW6rGIs2NCnbftnUX4y1KC4r1NvVdboeGbFOjD2352pl20CD/LkMMMjHTFOL+kebsU5RfuEidQq/tVVO9R6YfkKM5fWMVfaL4nAxZLpUvU4XJ7qegbc2WHFoiXqR3uLQdG5LdHSkD+o4vxvofPbZZygsLMSdd97pEissLIRe//2Htrq6GrNnz0ZpaSmioqIwatQobN26FUOGDPHlKhMREVEX8bvzX9dccw00TcOAAQNcYps2bcLKlSudf7/00ks4fvw4LBYLSktL8dFHH2HEiBE+XFsiIrqQOP7v0pUnj84WDNy8eTOmTp2K5ORk6HQ6rF27Vvn6r776CpdddhliYmIQFBSEQYMG4aWXXnJ53dKlS5GWlobAwEBkZmZi+/btnVovX/G7gQ4REdG56szs5Z4+OqOxsREZGRlYunRph14fEhKCOXPmYPPmzThw4ADmz5+P+fPn480333S+5p133sG8efPw2GOPYdeuXcjIyMDEiRNRXl7eqXXzBb+7dEVERETfmzx5MiZPVt8L90MjRoxoc3UjLS0N77//Pr788kvcfffdAIAXX3wRs2fPxh133AEAWLZsGT766CMsX74cjzzyiHffgId4RoeIiMhH7NB55eFL3377LbZu3eqcTslqtWLnzp2YMGGC8zV6vR4TJkxATk6OT9etI3hGh4iIyEfO5tJTe30ArlX5vV36pGfPnqioqEBraysWLlzozEiurKyE3W5HQkLbLNqEhAQcPHjQa8v3Fp7RISIiOg+lpKQgIiLC+ThTOsVbvvzyS+zYsQPLli3DkiVLsGbNGq/27ys8o+NFgeU6GMyupxSrhsg1aQAgaYRcHwb5cXIMQGuw3LfOKo9jLU1yDRcA0FrltkeOqeuT2EMcYsysqEtjiVZvp+pv4sWYQ12eBKeOy3VpQo/JtT6aEtXrdFwn16VxmNVtR488Isa27esrN3RT28e4R6695G4bF5ZFi7EAixiC5qY+jy5QXm6DUV0X6FCDXHvpsbj9YuwPTSnKfv9akSXGIgPUdXQ+PJghxl4zjZNjI1cr+93VnCbGfj4gV9m2p0muH2NQ1MXKKZSXCQAXXyH/Qt95Qr2N02LldTpYLu/XljJ1XSxNUUsqIUxdv+rr91z3nd3SAsA3/4jbAY8vPZ1590VFRQgP/76mkLcL2fbu3RsAMHz4cJSVlWHhwoW4+eabERsbC4PBgLKytv92lZWVITFRrpnVXXhGh4iIyEe8mXUVHh7e5tGVFfsdDodzMmuTyYRRo0Zhw4YNbeIbNmxoM3/kuYJndIiIiHykOyb1bGhoaDOHY35+PnJzcxEdHY1evXohOzsbxcXFWLVqFYDT9XF69eqFQYMGAThdh+f555/H/fff7+xj3rx5mDFjBi6++GKMHj0aS5YsQWNjozML61zCgQ4REZEf27FjB8aPH+/8e968eQCAGTNmYOXKlSgpKUFhYaEz7nA4kJ2djfz8fBiNRvTt2xfPPPMM7rnnHudrbrrpJlRUVGDBggUoLS3FRRddhHXr1rncoHwu4ECHiIjIRzTo4PDwHh2tk+3HjRsHTZPv0/rhjAEAMHfuXMydO9dtv3PmzMGcOXM6tS7dgQMdIiIiH+mOS1cXOm4tIiIi8ls8o+NFdcNs0Ae5piobgluV7ZreldPxzOpMbgTUy6cwG9PkdlqTetfrFOs8Y9JGZdt3j8kTozZaI8RYxqijyn73bu0nxgzN6lO55io5hdzYJJ/StYepU58N9XK/puqzPz3dp49ccuDYMfU18IY+iuPNoE4vDw9tEWOOBjltvSVG3W9Avfybytoqb0MAaGiVM0n+2RAuxgYFnVT2q1ekXPc2VyjbmofI23h3bQ8x9u8a9aTBW0t7i7EQk1XZNsosf4+o3mtipDodu6JFLh1grVLXdThcnayMSwxN6t/ggUXyMVPkpvyF0eb6nNbOc13Foeng0Dy7dOVp+wsNBzpEREQ+cmYGck/7oI7j1iIiIiK/xTM6REREPsJLV77HgQ4REZGPOKCHw8OLKZ62v9BwaxEREZHf4hkdIiIiH7FrOtg9vPTkafsLDQc63mR0nH78SMBhOS0XAOr6yqmfhhb1AR1QL7fV9IqZzd2kvOsD5BnIVenjABBsknM160PkdO3cY72U/QbVytsi8JQ6vTmwWn4/J38itzVHNyv7tdqDxZi9h2K6bwC7/ztIjDX3VOwfxczNADB1+G4x9u9cedZtAKg7GSbGEovkbRhUrj5Oq4bLbQ0GOQYAeZ/2EWMP95dTuVGv/npL7i+nkG9Cf2Xb0io5rV1fKH/e9yWo060NJnlbVNQGKNueVJRQsPaQU9P79SpX9ltcLZeEMEXL5QgAwFotp5+HH5L3j6FZ/Xm2RMmx1hA3bYe5fqYdTer34U28R8f3ONAhIiLyEe0Hs4970gd1HLcWERER+S2e0SEiIvIRO3Swezipp6ftLzQc6BAREfmIQ/P8HhuH+jYk+hFeuiIiIiK/xTM6REREPuLwws3Inra/0HCgQ0RE5CMO6ODw8B4bT9tfaDjQ8SKdQYPO4HrxNOSE+oJqc4J80LbEq2uMmGvkkX2P3pVizGqXa24AQMVxuVCFI1CukwMAiSH1Yiyyn1yX5vDensp+jZnVYqy2yaxs23BUrm0Sekyx/SPU20kLkmvatDao65609lDUylHtdjfX97eU9BZjBsX6AoDpuEmMlV0qr5SpRr1Ok67YJcY2FvZTtg2QDydYK+VtbA9Vf3aKC2LlZUaoayAlx9SKsfI8Rd0sm/qXeFxijdxvWZyyrb23XAsmeJ+8ToXBiqI0ADSHvG9tdfLxAgCmCvXnR2KJUh9P1ihF/TB3Y4CSdmr7+K6MDnUDDnSIiIh8hJWRfY8DHSIiIh/hPTq+x61FREREfotndIiIiHzEAS/MdcWbkTvFr87oLFy4EDqdrs1j0CB54kQAeO+99zBo0CAEBgZi+PDh+Pjjj320tkREdKHR/i/rypOHxoFOp/jVQAcAhg4dipKSEufjq6++El+7detW3HzzzZg1axa+/fZbTJs2DdOmTcPevXt9uMZERHShODN7uacP6ji/u3RlNBqRmJjYode+/PLLmDRpEh5++GEAwBNPPIH169fjtddew7Jlyzq9bF2VCbpA13TLur7qdpGH5VTJ5gHqVG5rhJxWXVwUo17wWWouCFPG9+WFizGdIrs5bHCNst+xPY6Jsa0lacq2tWnyF4Npt5x62yu+Stlvj5AaMfblt+qziTDK+z2gUv5oGqzqj219qbzfdW6yfXuNPy7GTv4nVYw5LpfTrQFg4/ujxFhzsjrlvXmAHB80tEiM2R3q33ElH/USY01J6g3VHCaXSTCl14gx6wn5swEA1fXBYmzwSHnfAMCBIvl7rzlBTrXXTrWTbv0D5lj5vbo7saC3yS+IPiB/tzUmuvmnSSf3a41Ul/OIGnTK5Tl7kwXqrUvnM787o3PkyBEkJyejT58+uOWWW1BYWCi+NicnBxMmTGjz3MSJE5GTk9PVq0lERBegM1lXnj6o4/zqjE5mZiZWrlyJgQMHoqSkBIsWLcLYsWOxd+9ehIW5noUoLS1FQkJCm+cSEhJQWlqqXI7FYoHF8n1Bsbq6Ou+8ASIi8mveuPTES1ed41cDncmTJzv/Pz09HZmZmUhNTcW7776LWbNmeW05ixcvxqJFi7zWHxEREXUNvz7/FRkZiQEDBiAvL6/deGJiIsrKyto8V1ZW5vYen+zsbNTW1jofRUXyfQJERERneJpx5Y25si40fj3QaWhowNGjR5GUlNRufMyYMdiwYUOb59avX48xY8Yo+zWbzQgPD2/zICIicodZV77nVwOd3/72t/jiiy9QUFCArVu34vrrr4fBYMDNN98MALj99tuRnZ3tfP1vfvMbrFu3Di+88AIOHjyIhQsXYseOHZgzZ053vQUiIiLyIr+6R+fEiRO4+eabcerUKcTFxeHyyy/H119/jbi407P+FhYWQq//fmyXlZWF1atXY/78+fjDH/6A/v37Y+3atRg2bFh3vQUiIvJjvBnZ9/xqoPP2228r45s2bXJ5bvr06Zg+fbpXlq8FaNBMrjUcHHIJCwCA3SwftMZAdR2d1iDXuj1nBBUEyP22qNepfrBVjMWkVivb1jbIdWkMe0LlZdbJ7QDg49qhYizghFxPCAC0HvL7aegvb+OWHT2U/TpGyfsuuEj98WruIdeHsafIO6jVzZdcapJrnZAzEoLrlW2PVseKsfqB8nYK3B2h7NcRLNc20UXJ+wYATHnycZG3Ta7tEzJYfZzWD5WXqwtQf2grS+XL1aYS+XOnxahrBrUWhYix6vBGZdvAA/J2soUpasukWeSYG0HRiho7AFoV9aDKLpa3ky1UXQsnUD7E0Rqq3sY19a7bydHku4EDBzq+51eXroiIiIh+yK/O6BAREZ3LeEbH9zjQISIi8hENns8+rr6wRz/GgQ4REZGP8IyO7/EeHSIiIvJbPKNDRETkIzyj43sc6HiRZtCgGVyvntrD1KmqTYmKNMsGOX0cAHQh8tXa8Hy53alL1WnrwUfl5dZUyinIABBYLn8IA6+qEGO6FvV7teS7Tsx6RtQIuV8AKCuMFmOGRvnEZq+Li5X9hgXIqbkF/dVp06P6F4ixwrooMVbXGKjs12Y3iLGi+khl26oj8nYy2uT9qneToWwZKG8LzSqvLwC0pMhtzWHyglMj3aSXK7Zjv0T18XTooFx2IGqU3DYjVn08BRnkz2VBQ4yybVm0/D3jiJX71dnVJ/ZjIhvE2KjYE8q22wLl9P9TBfIxHnpMfUxYFdUMzJXqtgHHXEtc2C2++6eQAx3f46UrIiIi8ls8o0NEROQjPKPjexzoEBER+Yim6aB5OFDxtP2FhpeuiIiIyG/xjA4REZGPOKDzuGCgp+0vNBzoEBER+Qjv0fE9DnS8yBhmhT7Y9Wpgq8VN+mxPOfXTWCWnngNA34sLxZhliLx7EwPUqc/7rCliLKhYfdjYFROJVxyXU0pjvlVvp9ZecqzRok5N14fI2/iqkQfldQpQzxj90XF5RnVzqDrn+vCpOGVckhJTo4wfK5HT/3V6dfF4g0X+AjVXyrGmZHUJhZF9j4sxvU69TkcU2yk2VN4/wUb1Me44JR+oDdGKgxiA6gd1dFCTGKtocU1t/qGD5Qnq5SrorfJKGYrkz4em/tjBEi6/n0N18cq2p47K5QoSBshp+BXRcikJALDXye8n/KD6+6kl1vV4c7RwUgV/xoEOERGRj/BmZN/jQIeIiMhHeOnK9zjQISIi8hGe0fE9ppcTERGR3+IZHSIiIh/RvHDpimd0OocDHSIiIh/RAGgeJnkxR6xzeOmKiIiI/BbP6HhRa70J+lbX+g4B1epCFbbYVjFmaFEv89g2ubhMaw+5josxwK7sV2eVx8DNqXJNGgDQN8rv1xAp1zZpSgxW9mvrJW8Me7O6jk6AWd7GzXa5VtF/S4Yo+221y9spPES980wGeR9kxhWIMaNeXbPmRFWkGNO5qVnTHCmvU+CgejHmKFHXPcmKOibGClpilG2bIuR9m/9JbzF2tIf6GNeM8raoalAfi8GF8lfnAWMPMWZU1HMCAHOgHLda1F/XvTOLxFhBjlwXK2V0sbLfaxIOiLG1J9KVbQ1x8megRrGNHdXqOkamGvlzZ41UNkX0ftf9brf57hyJAzroWBnZp3hGh4iIyEfOZF15+uiMzZs3Y+rUqUhOToZOp8PatWuVr3///fdx9dVXIy4uDuHh4RgzZgw++eSTNq9ZuHAhdDpdm8egQYM6uzl8ggMdIiIiP9bY2IiMjAwsXbq0Q6/fvHkzrr76anz88cfYuXMnxo8fj6lTp+Lbb79t87qhQ4eipKTE+fjqq6+6YvU9xktXREREPuLQdND5uGDg5MmTMXny5A6/fsmSJW3+/tOf/oQPP/wQ//73vzFixAjn80ajEYmJiZ1al+7AMzpEREQ+omneeQBAXV1dm4fFop5f72w5HA7U19cjOrrt3GVHjhxBcnIy+vTpg1tuuQWFhfLci92JAx0iIqLzUEpKCiIiIpyPxYsXd8lynn/+eTQ0NOAXv/iF87nMzEysXLkS69atw+uvv478/HyMHTsW9fVy0kJ34aUrIiIiH/HmFBBFRUUIDw93Pm82q7PVzsbq1auxaNEifPjhh4iP/362+h9eCktPT0dmZiZSU1Px7rvvYtasWV5fD09woONF8T2rYQhxPdAqG2KV7YKjm8RYS706bVd1Ts5glNOQbU1ySjUAIEROx9YFqNObQ/fKfdtOySml0ZeVKvstORgvxvSJ8jYEAEtVkBj72i6nKLu7Fp4YXSfGJiXvV7YdHHhSjC3aP0WM1ZeqjwldoJxWHRndoGwbnVYpxupaFF+ibr63Vxy5VG7qJuW9tVUuV9CSJL9XXYRcygAA9AZ5uc01geq2Q5rlYKv8oYyJVG//ssJoZVzlhClCjE2e/I0YW3d0sLLfv66/WoxZYtT7zmGS46a0WjHWe4icKg8AB/fK6fK6VvXBWHql6zHjaLYD7yqbeY03Bzrh4eFtBjre9vbbb+Ouu+7Ce++9hwkTJihfGxkZiQEDBiAvL6/L1uds8dIVERGRj5yZvdzTR1dbs2YN7rjjDqxZswZTpsg/vM5oaGjA0aNHkZSU1OXr1lk8o0NEROTHGhoa2pxpyc/PR25uLqKjo9GrVy9kZ2ejuLgYq1atAnD6ctWMGTPw8ssvIzMzE6Wlp8+2BwUFISLi9JnD3/72t5g6dSpSU1Nx8uRJPPbYYzAYDLj55pt9/wbd4BkdIiIiH/Fm1lVH7dixAyNGjHCmhs+bNw8jRozAggULAAAlJSVtMqbefPNNtLa24r777kNSUpLz8Zvf/Mb5mhMnTuDmm2/GwIED8Ytf/AIxMTH4+uuvERcX5/lG8jK/OqOzePFivP/++zh48CCCgoKQlZWFZ555BgMHDhTbrFy5EnfccUeb58xmM1pa3My9QERE1EmnByqe3qPTudePGzcOmqLRypUr2/y9adMmt32+/fbbnVuJbuRXZ3S++OIL3Hffffj666+xfv162Gw2XHPNNWhsbFS2Cw8Pb1Pd8fjx4z5aYyIiIrLZbCgqKsKhQ4dQVVXl1b796ozOunXr2vy9cuVKxMfHY+fOnbjiiivEdjqd7ryo7khEROc3b2Zdne/q6+vxt7/9DW+//Ta2b98Oq9UKTdOg0+nQs2dPXHPNNbj77rtxySWXeLQcvzqj82O1tafTF39czfHHGhoakJqaipSUFFx33XXYt2+fL1aPiIguMJqXHue7F198EWlpaVixYgUmTJiAtWvXIjc3F4cPH0ZOTg4ee+wxtLa24pprrsGkSZNw5MiRs16WX53R+SGHw4EHHngAl112GYYNGya+buDAgVi+fDnS09NRW1uL559/HllZWdi3bx969uzZbhuLxdKm1HZd3elaKhXHo6EPcq2/Ya5TjyebT4aKsSEj1ZfRjpTJN34lR8t1KqLM6roz3x1v/70DQFyMuvJlxcXyx9Bokuue9ImQa7gAQP9LK8TY7gp1SqMt0CYvN0o+TZoQJNfJAYCvT6aJsdpWuXYPADx9eJIyLjHUy3VlACA4Ud4/1RXqGjzN4XIJebuiPowxXF2zZmnGajF25z/vVba1R8n7DiHy8WQsUtfCCRxSI8Yu6aOuBZJzIk2MWS1yHSl3NYNUNWDc1Ye5stdReZ0c8ld9wHb1MdHQV66ppW9Wf7c5guX9U18j19Q6UC3HAABBcr+BBSZl05Z26ifpLH79m/+c9M0332Dz5s0YOnRou/HRo0fjzjvvxLJly7BixQp8+eWX6N+//1kty28HOvfddx/27t3rdjbVMWPGYMyYMc6/s7KyMHjwYLzxxht44okn2m2zePFiLFq0yKvrS0RE/o+Xrk5bs2ZNh15nNpvxq1/9yqNl+eUwds6cOfjPf/6DjRs3imdlJAEBARgxYoSyumN2djZqa2udj6IidRVPIiIiALx21Y7m5mY0NX1/leH48eNYsmQJPvnkE6/071cDHU3TMGfOHHzwwQf4/PPP0bu3XNpfYrfbsWfPHmV1R7PZ7Cy93dUluImIyI/83xkdTx7wgzM6P3Tdddc5ixXW1NQgMzMTL7zwAqZNm4bXX3/d4/79aqBz33334W9/+xtWr16NsLAwlJaWorS0FM3N389Lc/vttyM7O9v59+OPP45PP/0Ux44dw65du3Drrbfi+PHjuOuuu7rjLRAREV1Qdu3ahbFjxwIA/vGPfyAhIQHHjx/HqlWr8Morr3jcv1/do3Nm5Ddu3Lg2z69YsQIzZ84EABQWFkKv/358V11djdmzZ6O0tBRRUVEYNWoUtm7diiFDhvhqtYmI6AJxNpWN2+vDnzQ1NSEs7PRN8Z9++iluuOEG6PV6XHrppV6pa+dXAx1V5cczflzx8aWXXsJLL73URWtERET0Pd6M7Kpfv35Yu3Ytrr/+enzyySd48MEHAQDl5eVeuTXErwY63c1UYYDB7Jr6a+3f3M6rv6dZ5HThvPJYZVtrnVmMFTTIqee2HurKkxFb5dTc+ih12vTwiXKa6+69aWLsy1p5qg4AQDtpoWfoAhzqtnVyym9VkDzdxy+TvlZ2q0rb3XBigLJtQ5O874YklYmx76JClP3WV8jlCnRu0oH1kfJ2vLzPMTE2M+5LZb81DjldeNK4Xcq2u6uSxVhsUIMY2x+mLgIaHSx/LvdXJyjbGo1yenPLSXn/lNbHKPuFUT7GA0vVZQU++2yEGLNFyesb5ub3oc6qKCvQpP4H1xYjLzc9rViMfXewl7LfgFPy587m5g0FtbMd7YrvYOp6CxYswC9/+Us8+OCD+MlPfuLMhP7000+d83N5ggMdIiIiX/HGzcR+ckZnwYIFuO666/Dzn/8cl19+OUpKSpCRkeGMX3XVVbj++us9Xg4HOkRERD7Ce3S+d+LECUyePBkmkwlTp07Fz372MwwdOhQm0+mij6NHj/bKcvwq64qIiIjOD8uXL0dpaSnWrFmDsLAwPPDAA4iNjcWNN96IVatWeW1yTw50iIiIfIUFA9vQ6/UYO3Ysnn32WRw6dAjbtm1DZmYm3njjDSQnJ+OKK67A888/j+Ji+Z4ud3jpioiIyEeYdaU2ePBgDB48GL/73e9QUVGBf/3rX/jXv/4FAPjtb397Vn1yoENERETnnLi4OMyaNQuzZs3yqB8OdLxIZz/9+DHNrr5CGFgoz7brMMlp0QAQ0FeehVyXJ6f0Vh9Vp962DJTTjAPL1b8mGlvl99Orv5w23epQb6eajfI6t8Sr08vD+1eLsRNlUWLsL8axyn7zvpPnUnMoZtYGAH2IPCv0d0dTxJghWG4HAL0TTomx2SmblW13N8lpvcca5VIHqyovU/b7VNJnYuwTnXrfnayMFGO9esv7tV98pbLf8kY5Db+qRo4BABSzkAeVyKnKBvUk72iOk/ttHSan0gOAvVVeblyU3PZUqJv3Wi1/nm0R6msoWotinQLlddLZ1N8FWppcGiA2ql7Ztvyga9kNR4ub8hTe5keXns5Gc3Mzqqqq0KNHjzbP79u3T5zN3BO8R4eIiMhHPJ3nyhuXvrrTP/7xD/Tv3x9TpkxBeno6tm3b5ozddtttXbJMDnSIiIh85QK/GfnJJ5/Ezp07kZubixUrVmDWrFlYvXo1gI7NbnA2eOmKiIiIfMJmsyEh4XTl8VGjRmHz5s24/vrrkZeXB52ua85U8YwOERGRz+i89Dg/xcfHY/fu3c6/o6OjsX79ehw4cKDN897EgQ4REZGvXOCXrv76178iPj6+zXMmkwlr1qzBF1980SXL5KUrIiIi8omePeVM1csuU2dvni0OdIiIiHzFG2dkzuMzOpKWlhbs3r0b5eXlcDjapvv/7Gc/86hvDnS8qKWPBfqgdq6dKmpJAIAlQa63MmRoobLtviPy6DiwVb6Oa2xUdgtHoFxXIn58ibLt4IhSMfaf/cPFmGZXX3c2xsifbkOzuq05QK49c/WgA2JsX1WSsl8tVi6McsPQXGXbfbVy30dy5To6Oqu6ttKvLpZP/x5oSVa27Rco1zn6+7fyBHuJiTXKfq8ukQt+WWxn/zW0u1zehsEmm7JtdJBcg+qaHgeVbQuaYsRYSXy4GMs/4VrD5YeCw1vE2IDYcmXbvcXyvq2skNdJH6CuIaOLlo9xd0kyCTF18nIV9ZOCitXfmS22QDHWGi7vVwAwNrp+VzhafHjPC2cvd7Fu3TrcfvvtqKx0rX2l0+lgt6trkrnToW+YG264odMdL1u2zOU6HBEREdEPzZ07F9OnT8eCBQucGVne1KGBztq1a/GLX/wCQUFBHep09erVaGho4ECHiIjoBzTN/ZmwjvThT8rKyjBv3rwuGeQAnbh09corr3R44PKPf/zjrFeIiIjIb/EeHRc///nPsWnTJvTt27dL+u/QQGfjxo2Ijo7ucKf//e9/XeawICIiIvqx1157DdOnT8eXX36J4cOHIyCg7X2I999/v0f9d2igc+WVV3aq08svv/ysVoaIiMiv8WZkF2vWrMGnn36KwMBAbNq0qU2FZJ1O55uBTnvKy8vbTQNLT0/3aIWIiIj8lU47/fC0D3/yxz/+EYsWLcIjjzwCvd77dYw7PdDZuXMnZsyYgQMHDjgn4NLpdNA0zStpYOczfV0A9O2k/kbvVo++rRFy/FBjmrKtwSAf8cZmuZ3DrOwWOkWqd7NNnd686UQ/MaY1y2mjAREWZb/2AHm5gf3lNFYASA2vFmOb8vuLsXuGfqXs9z1thBh7f9coZVvVt1Vgipz/n5FcrOz2nfJLxNglkQXKtjvqe4sxVepzaaH60nZaHzk1urZZThUGAJtV/pr6ScoRMfaF4jgEgMPH5NIMJ3vK6dgAYFDsO5tdPsajYuqV/VYp0sADE+QSCQAwtvdRMXasXk6Hv6fXZmW/r+aPF2PuzitUNQSLsfVH5R/Fxgj1v+Smavkfw8py9b6LLnJ9zi5n0Hsf79FxYbVacdNNN3XJIAc4iykg7rzzTgwYMABbt27FsWPHkJ+f3+a/RERERB01Y8YMvPPOO13Wf6fP6Bw7dgz//Oc/0a+f+tcSERER/Qjv0XFht9vx7LPP4pNPPkF6errLzcgvvviiR/13eqBz1VVX4bvvvuNAh4iIqLN46crFnj17MGLE6dsA9u7d6/X+Oz3Q+d///V/MmDEDe/fuxbBhw1xGXp7OSUFEREQXjo0bN3Zp/50e6OTk5GDLli3473//6xK70G9GJiIiUuIZHReLFy9GQkIC7rzzzjbPL1++HBUVFfj973/vUf+dvhl57ty5uPXWW1FSUgKHw9HmwUEOERGRgualhx954403MGjQIJfnhw4dimXLlnncf6cHOqdOncKDDz7YZXNSEBER0YWjtLQUSUlJLs/HxcWhpKTE4/47fenqhhtuwMaNG7tsTorzmbFRB3079Wf06vIXaEhxyMF4dW2ZzN4FYiznoLyPorera+E0mOR1CjGpi06UlUbKQUW2gM5NIkHa8JNirLIhRNl2V2GKGLs0LV+Mba9NU/bb0CIXJNI1yfVUACAgsUmM9Y49Jca+yU9V9psSL9cM+vOJy5RtHQ75t88vBu8SYxuD5VpEAHBxTKEYq7SGKttOGLhfjC3cOVWMBZjcfPAUH7uW/ZHKpvEjy8SYVVFHx+5QH+RPXvaBGMupUyeAmPU2MVZ8qo8Ye6xK3oYAMDRJ/oemoEZdP8lyQt63esUFgIBa9XZqTpIbGyvU322OANe+Hb7MYmLWlYuUlBRs2bIFvXu3reO1ZcsWJCcne9x/pwc6AwYMQHZ2Nr766qsumZOCiIjIX7EysqvZs2fjgQcegM1mw09+8hMAwIYNG/C73/0ODz30kMf9n1XWVWhoKL744gt88cUXbWLemJPCG5YuXYrnnnsOpaWlyMjIwKuvvorRo0eLr3/vvffw6KOPoqCgAP3798czzzyDa6+91odrTEREdGF6+OGHcerUKfz617+G1Xr6ikFgYCB+//vfIzs72+P+Oz3Qyc+XT/OfC9555x3MmzcPy5YtQ2ZmJpYsWYKJEyfi0KFDiI+Pd3n91q1bcfPNN2Px4sX46U9/itWrV2PatGnYtWsXhg0b1g3vgIiI/BazrlzodDo888wzePTRR3HgwAEEBQWhf//+MJvdzFXUQV0zsUQ3evHFFzF79mzccccdGDJkCJYtW4bg4GAsX7683de//PLLmDRpEh5++GEMHjwYTzzxBEaOHInXXnvNx2tORER04ViwYAF27tzp/Ds0NBSXXHIJhg0b5rVBDnAWA50bb7wRzzzzjMvzzz77LKZPn+6VlTpbVqsVO3fuxIQJE5zP6fV6TJgwATk5Oe22ycnJafN6AJg4caL4eiIiorOlw/f36Zz1o7vfhJecOHECkydPRs+ePXHvvffiv//9r/PSlTd1eqCzefPmdu9fmTx5MjZvVs+C29UqKytht9tdUt8TEhJQWlrabpvS0tJOvR4ALBYL6urq2jyIiIio45YvX47S0lKsWbMGYWFheOCBBxAbG4sbb7wRq1atQlVVlVeW0+l7dBoaGmAymVyeDwgIuGD+wV+8eDEWLVrk8rw12g59kGvaY/3P5DRiAECznA5pOhKkbLovNFGMxSXWijH7T9W/CQL2xoixfFOssu3zl78rxv5aMkaM7T7eQ9lvhKlZjIVFqdPwd59IE2PXjtwjxtICKpX9Pmn7qRg7cDxc2dZaHSi3bXKtKXGGzqC+QH+8ULF/3LSFIv35WJPcb4S5RdltfqN8PF0f/62y7fMHrxZjaQlyGn7Bzp7KflNHyOUKir6Ttz8AVDUEi7GxvY6Ksby6OGW/H1Wmi7EeQTXKtkfqXe9BPCM0WP581FSp0/u/3d9bjOla1d8jquygkBPy7+yWGPVxqrfIbcMGq/9xrO3huu8cTS3AG8pm3sP08jb0ej3Gjh2LsWPH4tlnn8WBAwfw73//G2+88QbuvvtujB49Gj/72c9w8803o0cP9b8R4jI622D48OHtTqf+9ttvY8iQIWe1Et4SGxsLg8GAsrK2NS7KysqQmNj+gCAxMbFTrweA7Oxs1NbWOh9FRUWerzwREfk/VkZWGjx4MH73u99hy5YtKCoqwowZM/Dll19izZo1Z91np8/oPProo7jhhhtw9OjRNvnua9aswXvvvXfWK+INJpMJo0aNwoYNGzBt2jQAgMPhwIYNGzBnzpx224wZMwYbNmzAAw884Hxu/fr1GDNGPvNgNpu9eqMUERERtRUXF4dZs2Zh1qxZHvXT6TM6U6dOxdq1a5GXl4df//rXeOihh3DixAl89tlnzsFFd5o3bx7+/Oc/46233sKBAwdw7733orGxEXfccQcA4Pbbb2+Tl/+b3/wG69atwwsvvICDBw9i4cKF2LFjhzgwIiIiOms8o9NhRUVFLhN9no1On9EBgClTpmDKlCkeL7wr3HTTTaioqMCCBQtQWlqKiy66COvWrXPecFxYWAi9/vvxXVZWFlavXo358+fjD3/4A/r374+1a9eyhg4REXkdKyN3XFVVFd566y2xPExHndVA51w3Z84c8YzMpk2bXJ6bPn16t6fGExERXUj+9a9/KePHjh3zynI6NNCJjo7G4cOHERurzrY5o1evXvjyyy+RmqqefJCIiOiCwsrITtOmTYNOp4OmyW9I52625w7o0ECnpqYG//3vfxEREdGhTk+dOgW7XTE1rb8KcJx+/IjmJhXQaJK3lS1MMcUyAORGiSHzJRVirLpQbgcACReVizGDm/OmB1rk2WbrbfJN3FFRDcp+D1fK6bMmo3qmai1Y3sZvFF4hxvqFq9PLD36TJsZ0PeR0eAAI2ymnKFvDFR/NwfXKfq21cr9uvyAVx+q2PfLs2bE9a5TdXtErT4wF6uRZtwGgoVFOw68tiBRjbg4JJXuUunFIoFzUbOt7I8SY7jJ5ZnkAaLS6lu44o7Be/ZmNDJSPt4Ym+XMXEKTe/nbF91PAYcWxBqAlQd6Oml6+RTSoXP2d2XCpXLKjX7T6M1todN2OdrMFhcpWXsSBjlNSUhL+53/+B9ddd1278dzcXIwaNcrj5XT40tWMGTM8XhgRERH51ubNm/Hcc89h586dKCkpwQcffKBMHnr//ffx+uuvIzc3FxaLBUOHDsXChQsxceLENq/r7ATaPzZq1Cjs3LlTHOi4O9vTUR3KunI4HJ1+9OnTx+OVIyIi8iceT/9wFjczNzY2IiMjA0uXLu3Q6zdv3oyrr74aH3/8MXbu3Inx48dj6tSp+Pbb74t7nplA+7HHHsOuXbuQkZGBiRMnorxcvhrwYw8//DCysrLEeL9+/bBx48YO9yfxy5uRiYiIzkndUBl58uTJmDx5codfv2TJkjZ//+lPf8KHH36If//73xgx4vSl2R9OoA0Ay5Ytw0cffYTly5fjkUce6dByxo4dq4yHhITgyiuv7PB6S/xu9nIiIqJzlhfr6Px4zkWLRT0VztlyOByor69HdHQ0gLObQPvHCgs7d1dUcXFxp17/QxzoEBERnYdSUlIQERHhfCxevLhLlvP888+joaEBv/jFLwCc3QTaP3bJJZfgnnvuwTfffCO+pra2Fn/+858xbNgw/POf/zzr9e/wpauTJ08iOVnOpiEiIiI1bxYMLCoqQnj495MHd8XURKtXr8aiRYvw4YcfIj5eznztrP379+Opp57C1VdfjcDAQIwaNQrJyckIDAxEdXU19u/fj3379mHkyJF49tlnce211571sjp8Rmfo0KFYvXr1WS+IiIjogufFS1fh4eFtHt4e6Lz99tu466678O6777a5THU2E2j/WExMDF588UWUlJTgtddeQ//+/VFZWYkjR44AAG655Rbs3LkTOTk5Hg1ygE6c0Xnqqadwzz334IMPPsAbb7zhvFZH30v9hwaj0XWofvynIcp2eot8Y5kjRF1HR2uSfxpUHlPsIzf3spUdjhNjg9LV11b/ekBOL7QXytsi8pB6nVp+ItcJGdBTfad/7TG5BsnxQ/IHc3BmmRgDgLDj8oYcelmBsu3XJweJMXuovN8Nim0IACFl8u8Xyyh1raLEKLlGT3FFpBirLAsXYwDwv/njxJgWoq65FXpQri3TOKxFjAWUyvV3AKCwTP586JoNyrZ4P0YMWforfq4fjFR2axgs19kxBarvvyhrCBNjEaHydkoIVddlOlwi/4pPvEx938TJbfJVALu8W9ESoz7l4Tgl/4O+26i+8pCefNLlOZvBil3KVheeNWvW4M4778Tbb7/tMuXT2UygLQkKCsLPf/5z/PznP/fWqrvo8BmdX//619i9ezdOnTqFIUOG4N///neXrRQREZFf8kZqeScvfTU0NCA3Nxe5ubkAgPz8fOTm5jpvCM7Ozsbtt9/ufP3q1atx++2344UXXkBmZiZKS0tRWlqK2tpa52vcTaB9LulUennv3r3x+eef47XXXsMNN9yAwYMHw2hs28WuXRwXExERtasbKiPv2LED48ePd/49b948AKcLAa9cuRIlJSVtsqDefPNNtLa24r777sN9993nfP7M6wH3E2ifSzpdR+f48eN4//33ERUVheuuu85loENERETnjnHjxikrDJ8ZvJzR3uTX7VFNoH0u6dQo5c9//jMeeughTJgwAfv27UNcnHwfBxEREf0I57ryuQ4PdCZNmoTt27fjtddea3Mtj4iIiDrGm+nl1DEdvhnZbrdj9+7dHOQQERGR16jms3rjjTc87r/DZ3TWr1/v8cL8XU1/Mwwm17TH0Hx1u+ZEeXiuSj0HAHs/OeUaVXIKpj7Kquw3JERORy2tl9NYAcDWojiszHLadF0/9bjb3hggxr7b0VfZNqhc7ttUI29/2yXqNOPI6+T02sPV6ku7qhRy1U82fQ/FPgdg7C+nITeUqNPAreFNYsxglNPANYf6ONXZ5WMiOblK2basQr65UbPI+6epv/oYT0uQl1vQrC6MdmqkHNNFyMvVuflp2eqQX9DSqv66btwWK8YciqZBl9qU/ao+z8WVkcq2xkFy6rqWKx+Lhhb18aQZ5e0UEKAuV7Dv44Euz9kt8vcddb1Jkybh/vvvx5/+9CcEBJz+nq+srMQdd9yBr776Cvfcc49H/XMKCCIiIl/xYsFAf7Fx40Z88MEHuOSSS7B//3589NFHGDZsGOrq6pwp8Z7gQIeIiMhHPK2h4417fM41WVlZyM3NxbBhwzBy5Ehcf/31ePDBB7Fp0yakpqZ63D8HOkRERNStDh8+jB07dqBnz54wGo04dOgQmprkS+mdwYEOERGRL/GyVRtPP/00xowZg6uvvhp79+7F9u3b8e233yI9PR05OTke989qf0RERL7COjouXn75ZaxduxaTJ08GAAwbNgzbt2/HH/7wB4wbNw4Wi3qeN3c40CEiIqJus2fPHsTGts0aDAgIwHPPPYef/vSnHvfPgQ4REZGPsGCgqx8Pcn7oyiuv9Lh/DnS8qDkWMAS6Pm9Ulz2BPUg+akPz1bdRNTqCxFhQlVyLwl7Vzor+QH20SYyZy9W1ZUIbFP0OlWuMtCp7BaAoO+NOc6LcOKBO3sbbSnop+21plreTrUGOAYApSq7dYS8KFmPxqXJtEgCoa1HUTwpR10yp+k6u/WNsVBxPMeqdE1Qqb+PiQPlLDgAyLz8kxvZ8NEiMaSPrlP0WlUfLQZu6josxVv5QG/eEijFrpPpfKH1/+ZgIManrAlWkKeI2efvXfZSk7DcgSfH9VKg+xusVCTNGxdeIIaNWDgLQKzZjY736u03r5fpN42h2++3jPbx05eLxxx9XxhcsWOBR/xzoEBERUbf54IMP2vxts9mQn58Po9GIvn37cqBDRER0vuClK1fffvuty3N1dXWYOXMmrr/+eo/7Z3o5ERGRr7AycoeEh4dj0aJFePTRRz3uiwMdIiIiOufU1taitlZ9v1ZH8NIVERGRr/BmZBevvPJKm781TUNJSQn++te/OmvreIIDHSIiIh/hPTquXnrppTZ/6/V6xMXFYcaMGcjOzva4fw50vCj0pAaDyfUIrO2rbqePl1NKbT3VaY/2CjkN2d4k717zKXX6rPmUnPvZKi8SANASL38KzWFyhUvtpJyWCwDWHnb1ghXC8+SrtE095PW1H4lU9huo2I623upUbmu9nJo7cGSRGJuWmKvs9z/l6WKsEJHKtvWx8jFjU+xXvVm9bxpD5H51itRnANhXnijGmlLlbZwWoU7DLziSIMaiU2qUbasqwsWYWbHb9T3Vc/dMSd0nxt7dkKVsG6DoOyxE/o6p0iKV/eqs8v6pHqHe70GFAWKsNVjxuTsob18AaO0pf48YSuTyCgDQGnH23yNewTM6LvLz87u0f96jQ0RERH7Lb87oFBQU4IknnsDnn3+O0tJSJCcn49Zbb8Uf//hHmEzyL+dx48bhiy++aPPcPffcg2XLlnX1KhMR0YWGZ3QAAPPmzevwa1988UWPluU3A52DBw/C4XDgjTfeQL9+/bB3717Mnj0bjY2NeP7555VtZ8+e3aYyY3Cwm2szREREZ4H36JzWXu2c9uh06tssOsJvBjqTJk3CpEmTnH/36dMHhw4dwuuvv+52oBMcHIzERPk+ACIiIvKejRs34tixY0hLS4Ne37V30fj1PTq1tbWIjlbMZ/N//v73vyM2NhbDhg1DdnY2mprUNwxaLBbU1dW1eRAREbnFgoFO/fv3R2VlpfPvm266CWVlZV5fjt8OdPLy8vDqq6/innvuUb7ul7/8Jf72t79h48aNyM7Oxl//+lfceuutyjaLFy9GRESE85GSkuLNVSciIj915tKVpw9/oGlt38jHH3+MxsZGry/nnL909cgjj+CZZ55RvubAgQMYNOj7WYyLi4sxadIkTJ8+HbNnz1a2vfvuu53/P3z4cCQlJeGqq67C0aNH0bdv+3nh2dnZbW6kqqurQ0pKCqoutkEf5JqWbSqTUywBwH5Snm23tVV9fdLQS55F2ZQkp9fWlatTuUOOyescoJidHACCyuVYc395luuQkZViDAACVspn5+rS1GP22sFySqmmmApZ52b7OwxyGr6pUv3xCh5WLcbGxx0WY2/mXa7st1+0vB0bCyKUbSOOKdLws+QdH7BbfTw19ZfTge+/bL2y7Rv7x8rLjZD7tTvUx4Rq3yaEqg/yJsUM8SEn5f3e0Eed+rxme6YYM7Woj8XkGLmCbHmdYv8Y1f9qaoFyvnxopPz9AwChKfL+KS2SP8+GOsXU5gACj8jfmc091WUdDPWufeta/PY3P+E8GOg89NBDmDlzpvI1ffr0cf7/yZMnMX78eGRlZeHNN9/s9PIyM09/0eTl5YkDHbPZDLNZ/YVFRETkgllXTjqdzuVmY2/cfPxj5/xAJy4uDnFxcR16bXFxMcaPH49Ro0ZhxYoVZ3WDU25uLgAgKSmp022JiIiUONBx0jQNM2fOdJ44aGlpwa9+9SuEhIS0ed3777/v0XLO+YFORxUXF2PcuHFITU3F888/j4qKCmfsTEZVcXExrrrqKqxatQqjR4/G0aNHsXr1alx77bWIiYnB7t278eCDD+KKK65AerpcXZaIiIg8M2PGjDZ/u7s/9mz5zUBn/fr1yMvLQ15eHnr27NkmduaGJ5vNhkOHDjmzqkwmEz777DMsWbIEjY2NSElJwY033oj58+f7fP2JiMj/6f7v4Wkf/mDFihU+WY7fDHRmzpzp9l6etLS0Nnd5p6SkuFRFJiIi6jK8dOVzfjPQISIiOtexMrLvMaeOiIiI/BbP6HhR3FcBMJhc688ENMu1YwCg5HL5imtrkLotrIp6E4opuzIGFiq7LdjTfmo9AGhujpqGVDkWFdwi96uprzw3JsnvtTVEDAEAYtOq5FiwXKDqWEWMuuPyMDGkufkZYTTI+7bcKve7ZNg7yn7n7r5ZjIUp6uQAgGKxaC2TD6jWJLlOEQAYzXL8/RMjlG1bTgWJMUOYXDOl5Fv1tC5RQ0+JsQNHeijbRibINaoaesrbWBdkVfYbENgqxmwW9b4ryEuQ+62WPzu6CPV3jK6dujNn6KPUVeTLK8PFmKFW/iJxBKvXqTla3o5R36jrllkjXL9n7G62rVfx0pXPcaBDRETkSxyo+BQvXREREZHf4hkdIiIiH+HNyL7HgQ4REZGv8B4dn+OlKyIiIvJbPKNDRETkI7x05Xsc6HhR5UgH9O2kgwfUqU+cOcLlFNmAMnWqZGhKgxhraAwUY/Wh6tnXbeNqxZjFol4n3Qk5HbhqV7wYCxxao16nK+rkZX4np7ECwKUJBWLs048uEWNhoyqV/dYNU5QGqJC3AwCcqgoVYyVREWLszq9nKvt12OTjLdKq/obUj5K3caheTvmdM1BdYXx10WgxZrErSiQACImX0/9b98r73ZIsf64AdTmDmy/Zpmz7z48uE2M9J5wQY4W71Gnrdr1JjGlh6hT+yEQ55b1GL9cN0FnV30+aYve0botStjUr2gbIuxW2EPUxYWhRpMs73Bzj7RwWmvpQ8S5euvI5XroiIiIiv8UzOkRERD7CS1e+x4EOERGRr/DSlc9xoENEROQrHOj4HO/RISIiIr/FMzpEREQ+wnt0fI8DHSIiIl/hpSuf40DHi7QQO7Qg11oXjhb1FUJVrRydXLoEAFB9Uq63kph6SoxNS/pO2e+LBVfLQTcXPBOGVYixshNy3Q3DDnVNDuvgZjHWd1yhsu1HB4aJMbOihkb1oWhlvw4PPkG6Krlmyo6AXmJMr6hnAwCJCXItnJDpVmXbRpu8TmXfJYix/SnJyn4rG0LEmM7Nz9OmOrkelK53ixgzGtT91h6Tj7cPLBnKtv0vLxBj+79LFWM6kwf/Qjnkuj8AUN+gqNukaKsZ1esUWCbXrFHV2AEAc40ca+glL9dUo36vTcnyZ8C8T9027luLy3Otra7Pkf/gQIeIiMhHdJoGnebZKRlP219oONAhIiLyFV668jlmXREREZHf4hkdIiIiH2HWle9xoENEROQrvHTlc7x0RURERH6LZ3S8KKAiAPpA11Tx1hB1OrCxUR5vtoaoh+66VjmVsqHFLMZe3HKNsl/Y5X7DkuqVTSv3x4oxXaycy93cW536rKuWU5+PFaco2wZXyu+nsZdrSYAz+g8uVvZb3SKn9Fbvk7cDANjN8r7VNHl9E6LU27+0KlxeZq28DQH18RTYV17uFyf6Kfu1WuSvGoNR/flI7VEpxirX9xBjAZfL5RUAYFTfI2JsW4mc3g8AxypjxJg+Tk551xSfKwBwNMvbKfyAXIYCABqT5VzvkFPycpt6yMc/AOgVmdctCep919zTTX0Mgc6hzlvXFGn6df3U27hqpOs2djQbgS86tm6e6o5LV5s3b8Zzzz2HnTt3oqSkBB988AGmTZsmvr6kpAQPPfQQduzYgby8PNx///1YsmRJm9esXLkSd9xxR5vnzGYzWlrk47+78IwOERGRr2heenRCY2MjMjIysHTp0g693mKxIC4uDvPnz0dGhlxTKjw8HCUlJc7H8ePHO7diPsIzOkRERD7SHWd0Jk+ejMmTJ3f49WlpaXj55ZcBAMuXL5fXQ6dDYmJi51amG/CMDhER0Xmorq6uzcNi8W2F54aGBqSmpiIlJQXXXXcd9u3b59PldxQHOkRERL7ixUtXKSkpiIiIcD4WL17ss7cxcOBALF++HB9++CH+9re/weFwICsrCydOnPDZOnQUL10RERH5kLfq4BQVFSE8/PvkA7NZTkDxtjFjxmDMmDHOv7OysjB48GC88cYbeOKJJ3y2Hh3BgQ4REdF5KDw8vM1ApzsFBARgxIgRyMvL6+5VccGBjhfZwu3QtzN7uTt6xezZUKQZA4AtTl6ealbo0LhGZb9N+fKHR5X6DAD2UMXMwoVyerNDnT0LW5T8Xs1V6nVK+bBcjOUtlGfWLqxyM6P6CblteKGbGZjHyvvAYZevKoeb1emb/fvIs8dvzlOngcdENYixJou871od6qvgqhTyllOKWbcBFBbL2zhE8XFrbFb/ujXrW5VxlSCzXArB9IX82WkdX6vsV7db3hYtserTAI44eZ0aI+X9o7Oq950tXT5OQ4PUJSEam+R9YFek0tsS1N+jQUflft2V5Ij9xvX92q16FClbeZGmnX542sc5xm63Y8+ePbj22mu7e1Vc+NU9OmlpadDpdG0eTz/9tLJNS0sL7rvvPsTExCA0NBQ33ngjysrKfLTGRER0ITmTdeXpozMaGhqQm5uL3NxcAEB+fj5yc3NRWFgIAMjOzsbtt9/eps2Z1zc0NKCiogK5ubnYv3+/M/7444/j008/xbFjx7Br1y7ceuutOH78OO666y6Ptk9X8LszOo8//jhmz57t/DssLEz5+gcffBAfffQR3nvvPURERGDOnDm44YYbsGXLlq5eVSIioi63Y8cOjB8/3vn3vHnzAAAzZszAypUrUVJS4hz0nDFixAjn/+/cuROrV69GamoqCgoKAADV1dWYPXs2SktLERUVhVGjRmHr1q0YMmRI17+hTvK7gU5YWFiH8/pra2vxl7/8BatXr8ZPfvITAMCKFSswePBgfP3117j00ku7clWJiOhC0w1zXY0bNw6a4nLXypUrXRfh5vLYSy+9hJdeeqlzK9JN/OrSFQA8/fTTiImJwYgRI/Dcc8+htVW+Dr9z507YbDZMmDDB+dygQYPQq1cv5OTkiO0sFotL/QIiIiJ3dA7vPKjj/OqMzv3334+RI0ciOjoaW7duRXZ2NkpKSvDiiy+2+/rS0lKYTCZERka2eT4hIQGlpaXichYvXoxFixZ5c9WJiIioC5zzZ3QeeeQRlxuMf/w4ePAggNPXHceNG4f09HT86le/wgsvvIBXX33V69Uis7OzUVtb63wUFfnsfn0iIjqfdcNcVxe6c/6MzkMPPYSZM2cqX9OnT592n8/MzERraysKCgowcOBAl3hiYiKsVitqamranNUpKytT3udjNpt9WpiJiIj8Q3fMdXWhO+cHOnFxcYiLizurtrm5udDr9YiPj283PmrUKAQEBGDDhg248cYbAQCHDh1CYWFhm4qPHXXx8GMICHGtNbLtQPsDsTOsqfJ9ROMHHla2/fyA6wDujIZauSaHZjUo+0WwfBHYXR0dQ73ctzVG7tfQ6KYWS5hccKg5Qd324JwYMaY/IbdtVWwHAAhVtG2RFwkAsFUq6seEyu/VpFfXGNle3EuMOZrUH/mK5kgxprPI79XdvnOY5W/mHl+pv7Wbo+XjrSlJbqc51MepxSFvC6Nevd9tdvkYb7hErnNkzo1Q9tuqqJVjd3MsGs3y94jNJtdAijig/i6oy5T3bd0pucYRAAQWycvFgCYx5KgIVPbb3Ev+fBhr1Md4azsfO8Xu9D4/raNzLjvnBzodlZOTg23btmH8+PEICwtDTk4OHnzwQdx6662Iijpd9K24uBhXXXUVVq1ahdGjRyMiIgKzZs3CvHnzEB0djfDwcMydOxdjxoxhxhUREZEf8JuBjtlsxttvv42FCxfCYrGgd+/eePDBB531AgDAZrPh0KFDaGr6/pfESy+9BL1ejxtvvBEWiwUTJ07E//zP/3THWyAiIj/HS1e+5zcDnZEjR+Lrr79WviYtLc2lNkBgYCCWLl2KpUuXduXqERERdUsdnQvdOZ91RURERHS2/OaMDhER0bmOl658jwMdIiIiX2HWlc9xoONF+TUxMFhd6+uERDcr2zUflyce/XzPYGVbfaOcF2mqlq9MOkzqD4qhWU7NbTQq0qIB6OLlAo0J8bVirParBGW/jjQ5fdYao04l1izydgqokGM2nbrf+v7yOgVUqXNWg4sU+65W3nf7S9TlCmzRinUKsyrb6g1yCnNqTLUYO1YWq+w3IlT+DJzURSnbzrnqEzH26tc/EWPhQer3mhp0SowVhUYq2x4rl2sHmI/KqdFGOfMcAGCwyMdbqyK9HwBShlSJsaM2uURH718UKPv99kCaHDSqv0ds/eX9rpXL20kXoy7yqtnkz05oofozG1LqWp6h1cY5FfwZBzpEREQ+wktXvseBDhERka8w68rnmHVFREREfotndIiIiHyEl658jwMdIiIiX3Fopx+e9kEdxoEOERGRr/AeHZ/jPTpERETkt3hGx4uqj0VBH+haG0KvqI0BABH5ckynqXdRU4Lct0kuWYOgSvVPAlOja62JM4qj1evkCJZrUlTuiRdj9gR5mQCAkhAxpItW190Y0PekGDsSJK+T1urmt4Bdsf0HNarbKrR8GyHGjA3qtsOyCsTYoQr5vQLA+F55Yiz3VA8x5lBsBwBo3B0txn42+Rtl2xVHLhVj4bHyNrba1Mfp3w9dIsYSIuqVbR0ngsWYXnHINCe4qdei+Fhqbg7FvMNJYiy5d6UYK2+S63gBwOSRe8TYuu0ZyrZBB0xirDFV/rxrjQHKfvVN8sawqt8O6lNca/DYFXW2vE0HL9yj45U1uXBwoENEROQrrIzsc7x0RURERH6LZ3SIiIh8hOnlvseBDhERka8w68rneOmKiIiI/BbP6BAREfmITtOg8/BmYk/bX2g40PEiY6MO+nbSbAMr1MmArXKmKozN6gM6vECOW8Pk5dpN6nVqMcrplu7ej7FZkfoZKbcLrFSneDb0bhVjQ1JKlW1vTtouxv5UPUmMtR4MV/ZrjZJTZHU5coo4ADSmKdJre8jv1Vym/tjuLU4WY6029TY+UJsgt3XI+zU8vFnZr+mwa9mFMz4f1l/ZNipY7ru8NlSMjexxQtnvyUZ5/5yoiFK2NTbJnwFDi9zO0lPerwAAm7yNL0s/rGy6u1xOL48KlLdhZZNctgEANhf1FWOpA9Sfu7KTckkCXaRVjAXvC1L2mzZJrslxpCxO2bapwTXl3dEsr4vXOf7v4Wkf1GG8dEVERER+i2d0iIiIfISXrnyPAx0iIiJfYdaVz3GgQ0RE5CusjOxzvEeHiIiI/BbP6BAREfkIKyP7Hgc6XmSq1sFgdk07bU5UH5WGZjlV1aZIEQcA8xE5z9CoyPhtVsx6DqhTZI2KGAA0pMnrZKqRTyI29FGn3mYMPi7G9hTJKdUA8ELdBDH20z77xNh3UXJ6LABMSpDbvmqR09YBIOo7eVvU9ZPbtYaoc0vtTfLMzwHl6lmhj1nl2c1VbU21buZTlrPA0dQop54DwKDYcjHWK6xajO2rSFT222yR309QsEXZtjFNfr+j+xaIsZMN6pID96RtFmPLiy5TtrUpZmtXpZBX1yvqWwAI/FreeS3XqL8MLLHysRq8W04ht8uTngMA9h2TP5cGs1y2AQDC97h2brf4MF+bl658jpeuiIiIyG/xjA4REZGP6BynH572QR3HgQ4REZGv8NKVz/HSFREREfktntEhIiLyFRYM9DkOdIiIiHyEU0D4nt9cutq0aRN0Ol27j2+++UZsN27cOJfX/+pXv/LhmhMREVFX8ZszOllZWSgpKWnz3KOPPooNGzbg4osvVradPXs2Hn/8ceffwcHquhKS8ON2GANcazhE5KvbVQ0yiLGWOPXt9U1x8lg1dq9cC8QSaVb22xwv/2IwNqprppiq5XWym+V+9c3qcff+nD5iTAtVb6dqi7yN362Ujw+dXv3L6chJue5M1H71dqrrK8eMTXLb0EJlt9D0cn0YW4h6nQIr5QImLXHytgg8pd5OVeny/omPqle2/WavvKEGDigWY6o6OQBgbZbjU/vtVba9MXKHGPtLxRVirGdojbLfk7ZIMWY2qOtMXdJTrjPVK0iuN7Rmr/r7sTmzQYwNDa9Stm3pI2/jWpNcU8jQ6OY3eIscDwhT10Cyhbk+565uj1fxZmSf85uBjslkQmLi9wXCbDYbPvzwQ8ydOxc6nfrLPTg4uE1bIiKiLqEB8DQ9nOOcTvGbS1c/9q9//QunTp3CHXfc4fa1f//73xEbG4thw4YhOzsbTU1NytdbLBbU1dW1eRAREblz5h4dTx/UcX5zRufH/vKXv2DixIno2bOn8nW//OUvkZqaiuTkZOzevRu///3vcejQIbz//vtim8WLF2PRokXeXmUiIiLysnP+jM4jjzwi3mR85nHw4ME2bU6cOIFPPvkEs2bNctv/3XffjYkTJ2L48OG45ZZbsGrVKnzwwQc4evSo2CY7Oxu1tbXOR1FRkcfvk4iILgAavr9P56wf3f0mzi/n/Bmdhx56CDNnzlS+pk+ftjeprlixAjExMfjZz37W6eVlZmYCAPLy8tC3b/s3QZrNZpjN6pt5iYiIXPBmZJ875wc6cXFxiIuL6/DrNU3DihUrcPvttyMgQJ110Z7c3FwAQFJSUqfbEhER0bnlnB/odNbnn3+O/Px83HXXXS6x4uJiXHXVVVi1ahVGjx6No0ePYvXq1bj22msRExOD3bt348EHH8QVV1yB9PT0Ti+7NEsHfaBrhlecnIkKADDVyDHNoL66GH3IJsZsYXJKdeLXjcp+bWHyINFUrU7fbEiV0/NLxsnt3KWU6hTZtYEl8nsFAM0gx/XyJoQ9UNktDIpN0ZCi/tXVGqRItbfImYLuUsRj97aIsYp09RtSTRYYUigv99RIdeqzIdIqxsoKo5VtVSnkoQHyDggOlJcJAKkxcsr1JaHHlG1fPHmNGMurihVj34xao+z3kbJRYqyqWV324vDJBDG2RbFfNYf6eHLo5M+Ou5T3mspQMaYPl/ePFuXmjEW94kfs3nbyx3/A3M5ut6sPFe9yAFBv8o71QR3mdwOdv/zlL8jKysKgQYNcYjabDYcOHXJmVZlMJnz22WdYsmQJGhsbkZKSghtvvBHz58/39WoTEdEFgJWRfc/vBjqrV68WY2lpadB+cICkpKTgiy++8MVqERERUTfwu4EOERHROYs3I/scBzpERES+woGOz53zdXSIiIiIzhYHOkRERL7icbHAzp8R2rx5M6ZOnYrk5GTodDqsXbtW+fqSkhL88pe/xIABA6DX6/HAAw+0+7r33nsPgwYNQmBgIIYPH46PP/64U+vlKxzoEBER+YrDS49OaGxsREZGBpYuXdqh11ssFsTFxWH+/PnIyMho9zVbt27FzTffjFmzZuHbb7/FtGnTMG3aNOzdu7dzK+cDvEfHi4JO6mEwu44dG5PV7eK+k4s4mL9qULZV1YdpSZbrbmh6dSGHmn4mMWYPlGMA4FAcVeYKOWYLVX96w46r1ln9C0dTNK0erliumxojWrBdjBlCFAV6AGi18nbU2+TfIJq6ZBBqe8tVuwOa1NvJIJfgQUusYluY1fsuJU6uWVNulmutAEBsoFzz6URDpBhrbFZXL6+ulOutLKr5qbLt7QO2i7Eokzwp8JV7fq7sNyRA/i6orFbXhwkOkXde8+FIMeYwqo+JoJPysXgwOl7ZNiBEfj8Ou3wgD+lRquz34NbeYsyQUats23g43HVdWnx3z0t3pJdPnjwZkydP7vDr09LS8PLLLwMAli9f3u5rXn75ZUyaNAkPP/wwAOCJJ57A+vXr8dprr2HZsmWdWr+uxjM6RERE1Ck5OTmYMGFCm+cmTpyInJycblojGc/oEBER+YoXs67q6uraPO3LeRhLS0uRkNC2GndCQgJKS9Vn47oDz+gQERH5ikPzzgOni95GREQ4H4sXL+7mN3du4hkdIiKi81BRURHCw7+/58hXZ3MAIDExEWVlZW2eKysrQ2Jios/WoaN4RoeIiMhXvJheHh4e3ubhy4HOmDFjsGHDhjbPrV+/HmPGjPHZOnQUz+gQERH5jBfu0XGTZfpjDQ0NyMvLc/6dn5+P3NxcREdHo1evXsjOzkZxcTFWrVrlfE1ubq6zbUVFBXJzc2EymTBkyBAAwG9+8xtceeWVeOGFFzBlyhS8/fbb2LFjB958800P35v3caDjRYlfN8JodE03rk8LUrarSwkQY6aoSPVCFRm/zTHyCbugSnWOskORQR5+XE6pBoCWKHm5jT3kFQ4ucXeCUf5w203qNPCmZLltYLm8LZqTWpX96gPluL1GnYYfmi9//FpD5HYtMeovuYZectzYrN5Opho5rldsClUaMQAUnIgVY31SFDUHAJQ1y2nV/6/nN2LsHd3Fyn6LCuW6D00W9bG42iD3bTTIn4/qY9HKfjWTnKbfo3elsu11Pb8TYwH95XXafKq/st9vD6WJMaNV/u4CgMSoejFWdFw+JvbuTVX2q09tFmMtzerPnbl/nctz9iaLss35bseOHRg/frzz73nz5gEAZsyYgZUrV6KkpASFhYVt2owYMcL5/zt37sTq1auRmpqKgoICAEBWVhZWr16N+fPn4w9/+AP69++PtWvXYtiwYV3/hjqJAx0iIiJf6Ya5rsaNGwdN0WblypXtLML9MqZPn47p06d3al26Awc6REREvuLQ0NlLT+33QR3Fm5GJiIjIb/GMDhERka9ojtMPT/ugDuNAh4iIyFe64R6dCx0HOkRERL7Ce3R8jgMdL5JmpY04KKdYAoD27T4xZpswStm2dIxcIKolTk4pNdWrb88KOSmfGo345qSybeOUFDGmU0zoHVymPh1rDZVTn4NOuTmVq8nvt26MnKoaeERdGiAirUru96B6ZudWeXJ56BXZrpZB6lRYQ5l8TFij1aUBADnV3h4of7mGfamegdymCB+zJshBALE95Nmolx66Uow1N6mLp9nDFNvCrN5OrdujxFhdLzkPPzBZnokdACyl8kFRuU1dcfbPNfJGjotsEGMOTV1yIDxObttwQN4OABAxskSM9elTJsaOHVUfE1pZoBgzJsuzxwNAc71rW4f8FUB+gAMdIiIiX+GlK5/jQIeIiMhXNHhhoOOVNblgML2ciIiI/BbP6BAREfkKL135HAc6REREvuJwAPCwDo6DdXQ6g5euiIiIyG/xjA4REZGv8NKVz3Gg40Ull4XCYHat0ZDyn0plO12fNDF2KtWkbBtaJB/wMXJ5HjQkqmtntCriTfFynRwACC+S64hYYuRDzhaiXie93C2aY9QnJ2uGyY3N+YqaHG7qa9RtlWvl6NycXW5V1KXRW+VtEVCkrg8TUC+3NTaoP/ItaVY5aJW3saZXb//YvXIBJb0tQNm20hguxi4bnCfGthzop+zXVCHXDLLGq/8hiTwi19kJLpX7PTVCUTwJQEiR3LY5QX1AOVrk7VhySD5OtWB1zaCAU/Ix0xqrKIwFoGi/XPsnQFFTKCVN/Z1Zukvu17BHXdPJ0M6utVt8OHDgQMfneOmKiIiI/BbP6BAREfkKp4DwOQ50iIiIfETTHNA8nH3c0/YXGg50iIiIfEXTPD8jw3t0OuW8uUfnqaeeQlZWFoKDgxEZGdnuawoLCzFlyhQEBwcjPj4eDz/8MFpbFXewAqiqqsItt9yC8PBwREZGYtasWWhokCexIyIiovPHeTPQsVqtmD59Ou69995243a7HVOmTIHVasXWrVvx1ltvYeXKlViwYIGy31tuuQX79u3D+vXr8Z///AebN2/G3Xff3RVvgYiILnRnsq48fVCHnTeXrhYtWgQAWLlyZbvxTz/9FPv378dnn32GhIQEXHTRRXjiiSfw+9//HgsXLoTJ5JqmfeDAAaxbtw7ffPMNLr74YgDAq6++imuvvRbPP/88kpOTO7WOMXttMAa4pofWpEcr24UVNImxkDJ16qexSY7nXy/vXrM6e1OZGm2uVn/IGpLkFNnWYLlt7ZXqXO6gXDk1V6feTDCdUqQSR8pvVtO5+S2gyIi3B6m3U3Cx3HdIqbxOpVerU3pN++T085BiN1+QermcgTakXozZwsKU3VZkyKnP7lL4g/PkddoRpih1YFPvu8Tt8kFT10ud8l56mbx/Ig7J7Yz16nUyXlYlB49EKtvqKxXbuFFers3NIWFoURzkoYpyBFDvgmFJJWJsZ16qsl+j/HGG5uYjG33Qdd+12nx4z4vD4b72hDu8R6dTzpszOu7k5ORg+PDhSEhIcD43ceJE1NXVYd++9gvK5OTkIDIy0jnIAYAJEyZAr9dj27Zt4rIsFgvq6uraPIiIiOjc4zcDndLS0jaDHADOv0tLS8U28fFtC2kZjUZER0eLbQBg8eLFiIiIcD5SUtQF9IiIiADw0lU36NaBziOPPAKdTqd8HDx4sDtXsV3Z2dmora11PoqKirp7lYiI6DygORxeeVDHdes9Og899BBmzpypfE2fPn061FdiYiK2b9/e5rmysjJnTGpTXl7e5rnW1lZUVVWJbQDAbDbDbFaX4SciIqLu160Dnbi4OMTFxXmlrzFjxuCpp55CeXm583LU+vXrER4ejiFDhohtampqsHPnTowaNQoA8Pnnn8PhcCAzM9Mr60VEROSkeaEyMi9ddcp5c49OYWEhcnNzUVhYCLvdjtzcXOTm5jpr3lxzzTUYMmQIbrvtNnz33Xf45JNPMH/+fNx3333Osy/bt2/HoEGDUFxcDAAYPHgwJk2ahNmzZ2P79u3YsmUL5syZg//3//5fpzOuiIiI3HJo3nlQh5036eULFizAW2+95fx7xIgRAICNGzdi3LhxMBgM+M9//oN7770XY8aMQUhICGbMmIHHH3/c2aapqQmHDh2CzfZ9eu7f//53zJkzB1dddRX0ej1uvPFGvPLKK757Y0RERNRldJrGc2CeqqurQ0REBH4y5GEYDa737tQOi1S2N9fI9TxaohQFIwBUDZVrXJjq5FhTurp4iflAkBgLzDylbBsR1CLGju9PEmORBxT1OgAYLHKsMVnd1iGXYoEtXL6xT29R9xs5TN4WTVtilW2DKuSPXlWGvE6B5epjQqcoBu6uBlLNpXJdlNg4uYxCQ7P6njWbVf5NZa9Stx2ZcVSM7dzfW4wFFqtr4ahqCtnC1Pu9vrei9pJJjgVEyZ8NAOiXIBe4OnBMfZY5LKZRjBnWR4kxTX04wRYqx5oHqt/P6H4FYmzb3r5iLKhQve9MiooeDb3Ux/jA/znp8lyrw4LPCl5DbW0twsPDle3PlvPfCdN0GHXq9+dOq2bD59b3unR9/cl5c0aHiIjofKc5NGg6z84v8PxE53CgQ0RE5CuaAwArI/vSeXMzMhEREVFn8YwOERGRj/DSle9xoENEROQrvHTlcxzoeMGZ0XWrvf20oFabOjPBYJOzruw2dUqEQzGzsF2RMeRoUq+Tqq29SZH+hNMZDOJym+Xl2q3qTBcoJkpWrS9wesJgMabIkoGbflXbwm5xs42t8q8yR7O8TnbL2WddqZZ5ernyRla+12Y3/Sqyrhxu2toa5XVSHk8W9ZT2qm3h9nhS7B/NLsccZvUx0dp4dp8dwM3n0iq3dTfbt12RIORunbps3yneqqNFfTy19/3U6ji9nr44U9IKm8f1Althc/8icmJ6uRecOHGCE3sSEZ3nioqK0LNnzy7pu6WlBb1791ZOGN0ZiYmJyM/PR2BgoFf682cc6HiBw+HAyZMnERYWBp3OzVkJnK6nkJKSgqKiItZA8CJu167B7dp1uG27Rme3q6ZpqK+vR3JyMvT6rsvRaWlpgdWqODXdCSaTiYOcDuKlKy/Q6/Vn9SsgPDycX25dgNu1a3C7dh1u267Rme0aERHRxWsDBAYGcnDSDZheTkRERH6LAx0iIiLyWxzodAOz2YzHHnvMOas6eQe3a9fgdu063LZdg9uVfog3IxMREZHf4hkdIiIi8lsc6BAREZHf4kCHiIiI/BYHOj721FNPISsrC8HBwYiMjGz3NYWFhZgyZQqCg4MRHx+Phx9+GK2tirr+5CItLQ06na7N4+mnn+7u1TovLV26FGlpaQgMDERmZia2b9/e3at0Xlu4cKHLsTlo0KDuXq3z0ubNmzF16lQkJydDp9Nh7dq1beKapmHBggVISkpCUFAQJkyYgCNHjnTPylK34UDHx6xWK6ZPn45777233bjdbseUKVNgtVqxdetWvPXWW1i5ciUWLFjg4zU9/z3++OMoKSlxPubOndvdq3TeeeeddzBv3jw89thj2LVrFzIyMjBx4kSUl5d396qd14YOHdrm2Pzqq6+6e5XOS42NjcjIyMDSpUvbjT/77LN45ZVXsGzZMmzbtg0hISGYOHEiWlrUc3SRn9GoW6xYsUKLiIhwef7jjz/W9Hq9Vlpa6nzu9ddf18LDwzWLxeLDNTy/paamai+99FJ3r8Z5b/To0dp9993n/Ntut2vJycna4sWLu3Gtzm+PPfaYlpGR0d2r4XcAaB988IHzb4fDoSUmJmrPPfec87mamhrNbDZra9as6YY1pO7CMzrnmJycHAwfPhwJCQnO5yZOnIi6ujrs27evG9fs/PP0008jJiYGI0aMwHPPPcfLf51ktVqxc+dOTJgwwfmcXq/HhAkTkJOT041rdv47cuQIkpOT0adPH9xyyy0oLCzs7lXyO/n5+SgtLW1z/EZERCAzM5PH7wWGc12dY0pLS9sMcgA4//bWrLcXgvvvvx8jR45EdHQ0tm7diuzsbJSUlODFF1/s7lU7b1RWVsJut7d7PB48eLCb1ur8l5mZiZUrV2LgwIEoKSnBokWLMHbsWOzduxdhYWHdvXp+48z3ZXvHL79LLyw8o+MFjzzyiMvNhT9+8B8Gz3VmO8+bNw/jxo1Deno6fvWrX+GFF17Aq6++CovF0s3vgi50kydPxvTp05Geno6JEyfi448/Rk1NDd59993uXjUiv8QzOl7w0EMPYebMmcrX9OnTp0N9JSYmumS1lJWVOWMXMk+2c2ZmJlpbW1FQUICBAwd2wdr5n9jYWBgMBufxd0ZZWdkFfyx6U2RkJAYMGIC8vLzuXhW/cuYYLSsrQ1JSkvP5srIyXHTRRd20VtQdONDxgri4OMTFxXmlrzFjxuCpp55CeXk54uPjAQDr169HeHg4hgwZ4pVlnK882c65ubnQ6/XObUrumUwmjBo1Chs2bMC0adMAAA6HAxs2bMCcOXO6d+X8SENDA44ePYrbbrutu1fFr/Tu3RuJiYnYsGGDc2BTV1eHbdu2iVmv5J840PGxwsJCVFVVobCwEHa7Hbm5uQCAfv36ITQ0FNdccw2GDBmC2267Dc8++yxKS0sxf/583HfffZygroNycnKwbds2jB8/HmFhYcjJycGDDz6IW2+9FVFRUd29eueVefPmYcaMGbj44osxevRoLFmyBI2Njbjjjju6e9XOW7/97W8xdepUpKam4uTJk3jsscdgMBhw8803d/eqnXcaGhranAnLz89Hbm4uoqOj0atXLzzwwAN48skn0b9/f/Tu3RuPPvookpOTnQN3ukB0d9rXhWbGjBkaAJfHxo0bna8pKCjQJk+erAUFBWmxsbHaQw89pNlstu5b6fPMzp07tczMTC0iIkILDAzUBg8erP3pT3/SWlpaunvVzkuvvvqq1qtXL81kMmmjR4/Wvv766+5epfPaTTfdpCUlJWkmk0nr0aOHdtNNN2l5eXndvVrnpY0bN7b7fTpjxgxN006nmD/66KNaQkKCZjabtauuuko7dOhQ9640+RxnLyciIiK/xawrIiIi8lsc6BAREZHf4kCHiIiI/BYHOkREROS3ONAhIiIiv8WBDhEREfktDnSIiIjIb3GgQ0RERH6LAx0iQlpamnMG+Jqami5bTkFBgXM5nFiRiHyBAx0iP2G325GVlYUbbrihzfO1tbVISUnBH//4R2X7xx9/HCUlJYiIiOiydUxJSUFJSQkeeuihLlsGEdEPcaBD5CcMBgNWrlyJdevW4e9//7vz+blz5yI6OhqPPfaYsn1YWBgSExOh0+m6dB0TExMRGhraZcsgIvohDnSI/MiAAQPw9NNPY+7cuSgpKcGHH36It99+G6tWrYLJZOp0f1u2bMG4ceMQHByMqKgoTJw4EdXV1QCAcePGYe7cuXjggQcQFRWFhIQE/PnPf3bObh4WFoZ+/frhv//9r7ffJhFRh3GgQ+Rn5s6di4yMDNx22224++67sWDBAmRkZHS6n9zcXFx11VUYMmQIcnJy8NVXX2Hq1Kmw2+3O17z11luIjY3F9u3bMXfuXNx7772YPn06srKysGvXLlxzzTW47bbb0NTU5M23SETUYZy9nMgPHTx4EIMHD8bw4cOxa9cuGI1G5evT0tLwwAMP4IEHHnA+98tf/hKFhYX46quv2m0zbtw42O12fPnllwBO3yMUERGBG264AatWrQIAlJaWIikpCTk5Obj00kudbRcuXIi1a9ciNzfXszdKROQGz+gQ+aHly5cjODgY+fn5OHHixFn1ceaMjkp6errz/w0GA2JiYjB8+HDncwkJCQCA8vLys1oHIiJPcaBD5Ge2bt2Kl156Cf/5z38wevRozJo1C2dz4jYoKMjtawICAtr8rdPp2jx35sZmh8PR6eUTEXkDBzpEfqSpqQkzZ87Evffei/Hjx+Mvf/kLtm/fjmXLlnW6r/T0dGzYsKEL1pKIyHc40CHyI9nZ2dA0DU8//TSA0/fePP/88/jd736HgoKCTvf1zTff4Ne//jV2796NgwcP4vXXX0dlZWUXrDkRUdfgQIfIT3zxxRdYunQpVqxYgeDgYOfz99xzD7Kysjp9CWvAgAH49NNP8d1332H06NEYM2YMPvzwQ7c3NhMRnUv4jUXkJ6688kq0tra2G/vkk0/Ous8tW7a0G9u0aZPLc+2dNWJiJxF1J6aXExHS0tJQUlKCgIAAFBcXd9k0EIWFhRgyZAisViuGDBnC9HIi6nIc6BARjh8/DpvNBgDo06cP9Pquuard2trqPOtjNpuRkpLSJcshIjqDAx0iIiLyW7wZmYiIiPwWBzpERETktzjQISIiIr/FgQ4RERH5LQ50iIiIyG9xoENERER+iwMdIiIi8lsc6BAREZHf4kCHiIiI/Nb/B+5odiu+iVhGAAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"img = plt.imshow(mesh_flux * neutron_source / volume, origin='lower', extent=[-10.71, 10.71, -10.71, 10.71])\n",
"plt.xlabel('X [cm]')\n",
"plt.ylabel('Y [cm]')\n",
"plt.colorbar(img, label='Flux (1/cm$^2$/s)')"
]
},
{
"cell_type": "markdown",
"id": "b531d8b3-ad16-45c5-9b17-313b910f7908",
"metadata": {},
"source": [
"We can also plot the heating distribution. To normalize the volumetric heating, we now do\n",
"\n",
"$q \\left\\lbrack\\frac{\\text{eV}}{\\text{src}}\\right\\rbrack * \\frac{S}{V} \\left\\lbrack\\frac{\\text{src}}{\\text{s cm$^3$}}\\right\\rbrack * 1.602\\times10^{-19} \\left\\lbrack\\frac{\\text{J}}{\\text{eV}}\\right\\rbrack\\rightarrow \\left\\lbrack\\frac{\\text{W}}{\\text{cm$^3$}}\\right\\rbrack $"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "bbc5733e",
"metadata": {},
"outputs": [],
"source": [
"mesh_heat = mesh_tally.get_values(scores=['heating']) * neutron_source / volume"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "b64cb001-b864-4b80-b27d-abcfb2143a45",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(2500, 1, 1)"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mesh_heat.shape"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "99c98b2c-15ca-4e43-a1a8-19c1c3c088a3",
"metadata": {},
"outputs": [],
"source": [
"mesh_heat = mesh_heat.reshape(mesh.dimension)"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "9b759d34",
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.colorbar.Colorbar at 0x7fcc33e8dd90>"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"img = plt.imshow(mesh_heat * 1e-3, origin='lower', extent=[-10.71, 10.71, -10.71, 10.71])\n",
"plt.xlabel('X')\n",
"plt.ylabel('Y')\n",
"plt.colorbar(img, label='Heating (kW/cm$^3$)')"
]
},
{
"cell_type": "markdown",
"id": "5d357ce4-4122-4241-bfda-24b9fd628376",
"metadata": {},
"source": [
"### Writing to VTK\n",
"\n",
"OpenMC's built-in mesh tallies (for Cartesian, cylindrical, and spherical meshes) can also be written to VTK for easier viewing (this is especially helpful for 3-D meshes). Create a dictionary with the datasets you want to write. Note that the formatting is important - you can simply pass in the tally mean array without reshaping. Because we have two scores, we need to take a slice so that we obtain a tally object but which only has the one slice for the score we want to write."
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "04192ba9-3348-4791-becc-a7035fe9cc41",
"metadata": {},
"outputs": [],
"source": [
"t = mesh_tally.get_slice(scores=['heating'])"
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "6943375a-68c3-404a-9f27-292a2d674dc3",
"metadata": {},
"outputs": [],
"source": [
"data = {'heating' : t.mean, 'heating_std_dev': t.std_dev}"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "c8124d58-48f6-4541-9797-350ad523a714",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<StructuredGrid(0x55a4c881e690) at 0x7fcc23ca4e80>"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mesh.write_data_to_vtk(filename='tally.vtk', datasets=data)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "44e3e77d-45a5-40d8-8b09-9301b491ed52",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "d3af0d4e-efd2-4885-b1be-31550f1a68f6",
"metadata": {},
"outputs": [],
"source": [
"!ls"
]
},
{
"cell_type": "markdown",
"id": "32641c55-444d-48e7-a2c6-882d1b53a2af",
"metadata": {},
"source": [
"We can now open this file in Paraview, a free to download program for visualization: https://www.paraview.org/. Below are the steps you take in order to view the heating data volumetrically.\n",
"\n",
"<img src=\"paraview.png\" alt=\"drawing\" width=\"700\"/>"
]
},
{
"cell_type": "markdown",
"id": "b84820ac",
"metadata": {},
"source": [
"### Manipulating the tally arrays"
]
},
{
"cell_type": "markdown",
"id": "51d9dc28-fa2a-4efc-b7b4-add31985399d",
"metadata": {},
"source": [
"The `get_values()` method gives us an array with three dimensions: (filters, nuclides, scores). If you have multiple filters in a tally, the `get_reshaped_data()` method will give you a separate dimension for each filter. For our mesh case, this effectively gives the same thing as `get_values()` since there's only a single filter:"
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "a2f5ea04",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(2500, 1, 2)"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mesh_tally.shape"
]
},
{
"cell_type": "code",
"execution_count": 41,
"id": "50690e4b-5236-41b5-9352-156f282a36d3",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/plain": [
"array([[[1.52844021e-02, 4.89454916e+03],\n",
" [1.56203867e-02, 3.59432791e+04],\n",
" [1.63054868e-02, 4.39433441e+03],\n",
" ...,\n",
" [1.63714739e-02, 4.29881411e+03],\n",
" [1.61565750e-02, 3.77600322e+04],\n",
" [1.62742054e-02, 7.90482717e+03]],\n",
"\n",
" [[1.58492034e-02, 3.59248369e+04],\n",
" [1.58569852e-02, 8.90629425e+04],\n",
" [1.52522662e-02, 3.22224961e+04],\n",
" ...,\n",
" [1.69602289e-02, 4.08939917e+04],\n",
" [1.67761203e-02, 1.05437707e+05],\n",
" [1.62895080e-02, 4.60104977e+04]],\n",
"\n",
" [[1.56220837e-02, 4.70189109e+03],\n",
" [1.54188366e-02, 3.05964867e+04],\n",
" [1.51629593e-02, 3.12371533e+03],\n",
" ...,\n",
" [1.63289702e-02, 4.39975899e+03],\n",
" [1.69951156e-02, 3.74979437e+04],\n",
" [1.66590992e-02, 6.04154786e+03]],\n",
"\n",
" ...,\n",
"\n",
" [[1.61675098e-02, 4.72729934e+03],\n",
" [1.66359528e-02, 3.08771776e+04],\n",
" [1.65896398e-02, 3.41048484e+03],\n",
" ...,\n",
" [1.68343695e-02, 3.15054140e+03],\n",
" [1.71706745e-02, 3.95031296e+04],\n",
" [1.75413569e-02, 6.76296262e+03]],\n",
"\n",
" [[1.66594384e-02, 4.17680236e+04],\n",
" [1.64526912e-02, 9.04516198e+04],\n",
" [1.64175904e-02, 3.04830440e+04],\n",
" ...,\n",
" [1.67757231e-02, 3.59437550e+04],\n",
" [1.66334032e-02, 1.08108366e+05],\n",
" [1.71650265e-02, 4.80501616e+04]],\n",
"\n",
" [[1.51451826e-02, 6.01204185e+03],\n",
" [1.58215083e-02, 3.85481700e+04],\n",
" [1.63944894e-02, 5.21081450e+03],\n",
" ...,\n",
" [1.67754528e-02, 5.64894338e+03],\n",
" [1.67266185e-02, 4.70565986e+04],\n",
" [1.64694045e-02, 7.39700517e+03]]], shape=(50, 50, 2))"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mesh_tally.get_reshaped_data(expand_dims=True).squeeze()"
]
},
{
"cell_type": "markdown",
"id": "09bad70e-891d-4f3d-affa-5972eedef59f",
"metadata": {},
"source": [
"However, there is also an `expand_dims` argument that will expand a mesh filter into multiple dimensions:"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "24b9e0da-733b-4ff6-b581-cd1b2959d6d5",
"metadata": {
"tags": []
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "3315c925",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "6c5bbfc4-831a-4111-9fa1-efb6cc53e25f",
"metadata": {},
"source": [
"Now we can index the array if we want to pull out specific values. In this case, we see two values because we have two scores."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "92297eb7",
"metadata": {},
"outputs": [],
"source": [
"mesh_data[0, 0]"
]
},
{
"cell_type": "markdown",
"id": "07f3b6ca",
"metadata": {},
"source": [
"It would be easier to postprocess this data if we could extract out each score one at a time. To do so, we'll use the `get_slice` method. This method differs from the `get_values` method in that it returns an `openmc.Tally`, rather than a numpy data structure."
]
},
{
"cell_type": "code",
"execution_count": 44,
"id": "b3ec3b72",
"metadata": {},
"outputs": [],
"source": [
"flux_only = mesh_tally.get_slice(scores=['flux'])\n",
"type(flux_only)\n",
"fo = flux_only.get_reshaped_data(expand_dims=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "98586bf0",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "ae317671",
"metadata": {},
"outputs": [],
"source": [
"flux_reshaped[0, 0]"
]
},
{
"cell_type": "markdown",
"id": "947f2bfb-121c-4aac-95f8-b7bb663b99cb",
"metadata": {},
"source": [
"# Unstructured Mesh Tallies\n",
"\n",
"OpenMC can also use 3-D unstructured mesh tallies, if those meshes are generated in libMesh or MOAB format. This portion of the notebook you will only be able to run if you have configured OpenMC with the appropriate mesh library support for the mesh format you would like to use. For more information, see the optional prerequisites here: https://docs.openmc.org/en/stable/usersguide/install.html#prerequisites\n",
"\n",
"We will use a libMesh mesh tally here. We have generated a 3-D mesh of a pincell using meshing software (such as Cubit, Gmsh, or MOOSE's reactor module). For libMesh tallies, the estimator has to be a collision estimator because OpenMC does not yet presently collect the trackklength information passing through each cell."
]
},
{
"cell_type": "code",
"execution_count": 49,
"id": "bf19de7a-01b1-4787-a023-ab17ebe5d616",
"metadata": {},
"outputs": [],
"source": [
"um = openmc.UnstructuredMesh(filename='mesh_in.e', library='libmesh')\n",
"um_filter = openmc.MeshFilter(um)\n",
"\n",
"mesh_tally.filters = [um_filter]\n",
"mesh_tally.estimator = 'collision'"
]
},
{
"cell_type": "markdown",
"id": "db292776-390b-4434-aa23-2533ab56a0e3",
"metadata": {},
"source": [
"We will want to run with more particles to be sure that each bin in the mesh gets some hits (but we'll not use a tremendous amount since this is just intended for learning)."
]
},
{
"cell_type": "code",
"execution_count": 50,
"id": "b7d2fa70-75cf-4807-b891-b2a081a82135",
"metadata": {},
"outputs": [],
"source": [
"model.settings.particles = 1000\n",
"statepoint = model.run(output=False)"
]
},
{
"cell_type": "markdown",
"id": "af57996e-be85-4919-adaf-7eb4f4af5004",
"metadata": {},
"source": [
"When we run with a mesh tally, OpenMC will automatically write the tally results into a new output file named `tally_1.<batches>.e`, where we may have multiple output files if we have multiple separate mesh tallies. We can open this file in visualization software such as [Paraview](https://www.paraview.org/)."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "60eb6639-cb75-408e-9aa5-d08dfcdd6934",
"metadata": {},
"outputs": [],
"source": [
"!ls"
]
},
{
"cell_type": "markdown",
"id": "9590ff9f-f69a-49d0-a15f-ef6d3ee7957e",
"metadata": {},
"source": [
"## Distributed cells (distribcells)\n",
"\n",
"So this gives us a fairly good idea of what the flux and power distributions look like in this model, but we often want to know the per-pin power generation rate -- something that is hard to post-process with the tallies above (especially because the mesh tally is not conformal to the geometry). We can use a distribcell tally to produce this information easily.\n",
"\n",
"A distributed cell (distribcell) is how OpenMC stores cells in universes which are repeated in lattices. In short, each cell in OpenMC is associated with an *id* and an *instance*. If a cell is repeated multiple times throughout a geometry, that cell has the same id, but with unique instances.\n",
"\n",
"First, we'll want to create a distribcell tally for the cell containing our fuel material. Based on the list of materials we loaded with the pre-built model, our fuel material has the name \"Fuel\". We'll use that to identify the cell we want to setup a distribcell tally for."
]
},
{
"cell_type": "code",
"execution_count": 51,
"id": "20a53761-ad8b-40f4-b8d1-6785ed68c588",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[Material\n",
" \tID =\t1\n",
" \tName =\tFuel\n",
" \tTemperature =\tNone\n",
" \tDensity =\t10.29769 [g/cm3]\n",
" \tVolume =\tNone [cm^3]\n",
" \tDepletable =\tTrue\n",
" \tS(a,b) Tables \n",
" \tNuclides \n",
" \tU234 =\t4.4843e-06 [ao]\n",
" \tU235 =\t0.00055815 [ao]\n",
" \tU238 =\t0.022408 [ao]\n",
" \tO16 =\t0.045829 [ao],\n",
" Material\n",
" \tID =\t2\n",
" \tName =\tCladding\n",
" \tTemperature =\tNone\n",
" \tDensity =\t6.55 [g/cm3]\n",
" \tVolume =\tNone [cm^3]\n",
" \tDepletable =\tFalse\n",
" \tS(a,b) Tables \n",
" \tNuclides \n",
" \tZr90 =\t0.021827 [ao]\n",
" \tZr91 =\t0.00476 [ao]\n",
" \tZr92 =\t0.0072758 [ao]\n",
" \tZr94 =\t0.0073734 [ao]\n",
" \tZr96 =\t0.0011879 [ao],\n",
" Material\n",
" \tID =\t3\n",
" \tName =\tHot borated water\n",
" \tTemperature =\tNone\n",
" \tDensity =\t0.740582 [g/cm3]\n",
" \tVolume =\tNone [cm^3]\n",
" \tDepletable =\tFalse\n",
" \tS(a,b) Tables \n",
" \tS(a,b) =\t('c_H_in_H2O', 1.0)\n",
" \tNuclides \n",
" \tH1 =\t0.049457 [ao]\n",
" \tO16 =\t0.024672 [ao]\n",
" \tB10 =\t8.0042e-06 [ao]\n",
" \tB11 =\t3.2218e-05 [ao]]"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model.materials"
]
},
{
"cell_type": "code",
"execution_count": 52,
"id": "4552c773-8975-4784-844b-56ac04802b0f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Cell\n",
"\tID =\t1\n",
"\tName =\tfuel\n",
"\tFill =\tMaterial 1\n",
"\tRegion =\t-1\n",
"\tRotation =\tNone\n",
"\tTemperature =\tNone\n",
"\tDensity =\tNone\n",
"\tTranslation =\tNone\n",
"\tVolume =\tNone\n",
"\n"
]
}
],
"source": [
"fuel_cell = None\n",
"\n",
"for cell_id, cell in model.geometry.get_all_material_cells().items():\n",
" if cell.fill.name == 'Fuel':\n",
" fuel_cell = cell\n",
" \n",
"print(fuel_cell)"
]
},
{
"cell_type": "code",
"execution_count": 54,
"id": "4456c383-385e-4e89-bbbc-863d0885478d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"264"
]
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model.geometry.determine_paths()\n",
"fuel_cell.num_instances"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "92cd55db-6023-4557-bb96-595885e39ff9",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 55,
"id": "8f91be2d-8c5e-48b9-8755-c1ae31760128",
"metadata": {},
"outputs": [],
"source": [
"dcell_tally = openmc.Tally()\n",
"distribcell_filter = openmc.DistribcellFilter(fuel_cell)"
]
},
{
"cell_type": "code",
"execution_count": 56,
"id": "ba81dd16-1faf-4cda-a485-ce550a84598e",
"metadata": {},
"outputs": [],
"source": [
"dcell_tally.filters = [distribcell_filter]\n",
"dcell_tally.scores = ['heating']\n",
"model.tallies = [dcell_tally]"
]
},
{
"cell_type": "code",
"execution_count": 57,
"id": "0006719a-016d-49d9-94cf-d015ae2f4345",
"metadata": {},
"outputs": [],
"source": [
"statepoint = model.run(output=False, apply_tally_results=True)"
]
},
{
"cell_type": "code",
"execution_count": 61,
"id": "ed0fb8ab-d934-43d2-ac74-5ce45ebc22ec",
"metadata": {},
"outputs": [],
"source": [
"with openmc.StatePoint(statepoint) as sp:\n",
" heat = sp.get_tally(scores=['heating'])"
]
},
{
"cell_type": "code",
"execution_count": 62,
"id": "810272f1-498a-424c-bb3c-a3e454edb8c0",
"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 tr th {\n",
" text-align: left;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"2\" halign=\"left\">level 1</th>\n",
" <th colspan=\"3\" halign=\"left\">level 2</th>\n",
" <th colspan=\"2\" halign=\"left\">level 3</th>\n",
" <th>distribcell</th>\n",
" <th>nuclide</th>\n",
" <th>score</th>\n",
" <th>mean</th>\n",
" <th>std. dev.</th>\n",
" </tr>\n",
" <tr>\n",
" <th></th>\n",
" <th>univ</th>\n",
" <th>cell</th>\n",
" <th colspan=\"3\" halign=\"left\">lat</th>\n",
" <th>univ</th>\n",
" <th>cell</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" <tr>\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>id</th>\n",
" <th>id</th>\n",
" <th>x</th>\n",
" <th>y</th>\n",
" <th>id</th>\n",
" <th>id</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4</td>\n",
" <td>7</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>total</td>\n",
" <td>heating</td>\n",
" <td>280216.558548</td>\n",
" <td>22513.534428</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>4</td>\n",
" <td>7</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>total</td>\n",
" <td>heating</td>\n",
" <td>290056.671908</td>\n",
" <td>25661.786905</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>4</td>\n",
" <td>7</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>total</td>\n",
" <td>heating</td>\n",
" <td>266761.210373</td>\n",
" <td>22778.165705</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4</td>\n",
" <td>7</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>total</td>\n",
" <td>heating</td>\n",
" <td>267484.410283</td>\n",
" <td>24777.912874</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4</td>\n",
" <td>7</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>total</td>\n",
" <td>heating</td>\n",
" <td>248802.056764</td>\n",
" <td>17712.017249</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>259</th>\n",
" <td>4</td>\n",
" <td>7</td>\n",
" <td>3</td>\n",
" <td>12</td>\n",
" <td>16</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>259</td>\n",
" <td>total</td>\n",
" <td>heating</td>\n",
" <td>281608.127786</td>\n",
" <td>24077.840613</td>\n",
" </tr>\n",
" <tr>\n",
" <th>260</th>\n",
" <td>4</td>\n",
" <td>7</td>\n",
" <td>3</td>\n",
" <td>13</td>\n",
" <td>16</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>260</td>\n",
" <td>total</td>\n",
" <td>heating</td>\n",
" <td>281844.284093</td>\n",
" <td>27525.225790</td>\n",
" </tr>\n",
" <tr>\n",
" <th>261</th>\n",
" <td>4</td>\n",
" <td>7</td>\n",
" <td>3</td>\n",
" <td>14</td>\n",
" <td>16</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>261</td>\n",
" <td>total</td>\n",
" <td>heating</td>\n",
" <td>267419.093367</td>\n",
" <td>21505.799900</td>\n",
" </tr>\n",
" <tr>\n",
" <th>262</th>\n",
" <td>4</td>\n",
" <td>7</td>\n",
" <td>3</td>\n",
" <td>15</td>\n",
" <td>16</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>262</td>\n",
" <td>total</td>\n",
" <td>heating</td>\n",
" <td>270103.593361</td>\n",
" <td>26462.822326</td>\n",
" </tr>\n",
" <tr>\n",
" <th>263</th>\n",
" <td>4</td>\n",
" <td>7</td>\n",
" <td>3</td>\n",
" <td>16</td>\n",
" <td>16</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>263</td>\n",
" <td>total</td>\n",
" <td>heating</td>\n",
" <td>240290.933159</td>\n",
" <td>23044.744748</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>264 rows × 12 columns</p>\n",
"</div>"
],
"text/plain": [
" level 1 level 2 level 3 distribcell nuclide score \\\n",
" univ cell lat univ cell \n",
" id id id x y id id \n",
"0 4 7 3 0 0 1 1 0 total heating \n",
"1 4 7 3 1 0 1 1 1 total heating \n",
"2 4 7 3 2 0 1 1 2 total heating \n",
"3 4 7 3 3 0 1 1 3 total heating \n",
"4 4 7 3 4 0 1 1 4 total heating \n",
".. ... ... ... .. .. ... ... ... ... ... \n",
"259 4 7 3 12 16 1 1 259 total heating \n",
"260 4 7 3 13 16 1 1 260 total heating \n",
"261 4 7 3 14 16 1 1 261 total heating \n",
"262 4 7 3 15 16 1 1 262 total heating \n",
"263 4 7 3 16 16 1 1 263 total heating \n",
"\n",
" mean std. dev. \n",
" \n",
" \n",
"0 2.80e+05 2.25e+04 \n",
"1 2.90e+05 2.57e+04 \n",
"2 2.67e+05 2.28e+04 \n",
"3 2.67e+05 2.48e+04 \n",
"4 2.49e+05 1.77e+04 \n",
".. ... ... \n",
"259 2.82e+05 2.41e+04 \n",
"260 2.82e+05 2.75e+04 \n",
"261 2.67e+05 2.15e+04 \n",
"262 2.70e+05 2.65e+04 \n",
"263 2.40e+05 2.30e+04 \n",
"\n",
"[264 rows x 12 columns]"
]
},
"execution_count": 62,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"heat_df = heat.get_pandas_dataframe()\n",
"heat_df"
]
},
{
"cell_type": "markdown",
"id": "097db0f2-8362-4411-9f47-3759a30dde42",
"metadata": {},
"source": [
"It's easier to visualize this tally with the `openmc-plotter`. To view,\n",
"\n",
"- `openmc-plotter model.xml`\n",
"- Load in the statepoint we just generated\n",
"- Click to view the tally in the bottom of the right toolbar (\"Apply Changes\" to view)"
]
},
{
"cell_type": "markdown",
"id": "813e18ab-f82e-4002-ba8e-ec183bc43c0e",
"metadata": {},
"source": [
"## Functional Expansion Tallies\n",
"\n",
"For our last advanced form of tally, we'll create a functional expansion tally (FET). A FET is an expansion of some quantity (such as a tally) in terms of an infinite sum of orthogonal polynomials. Examples of orthogonal polynomials include the\n",
"\n",
"- Legendre basis (Cartesian)\n",
"- Fourier basis ($0\\leq\\theta\\leq 2\\pi$)\n",
"- Zernike basis (the unit disc)\n",
"- Bessel functions (radial coordinate in cylindrical coordinates)\n",
"- spherical harmonics basis (the surface of a unit sphere)\n",
"- ...\n",
"\n",
"For example, suppose we have some quantity $f(x)$. We can write this function as an infinite series sum of coefficients multiplying the Legendre polynomials,\n",
"\n",
"$f(x)=\\sum_{n\\ =\\ 0}^\\infty C_nP_n(x)$\n",
"\n",
"If we operate both sides by an integral with the orthogonal polynomial, we find that an FET in OpenMC is tallying the coefficients $C_n$, and that the \"score\" we specify is being multiplied by the evaluation of the polynomial at the collision location. FETs have to be used with collision estimators.\n",
"\n",
"$\\int f(x)P_m(x)dx=\\int\\sum_{n\\ =\\ 0}^\\infty C_nP_n(x)P_m(x)\\rightarrow \\int f(x)P_m(x)dx=C_n\\underbrace{\\int P_n(x)P_n(x)}_\\text{unity if orthonormal}$"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c9d1ba9a-3f0c-45ef-9987-1f1c9ffa32ec",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "d8d678aa-a094-4600-a320-7b4c916c0e12",
"metadata": {},
"outputs": [],
"source": [
"fet = openmc.Tally()\n",
"\n",
"model.tallies = [fet]"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "28b8f469-719e-41f5-8e36-5c9b5a248cf8",
"metadata": {},
"outputs": [],
"source": [
"model.settings.particles = 2000\n",
"statepoint = model.run(output=False)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "083f88d8-9c39-4d62-a178-602196100ac9",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "a89b7247-c292-4719-b924-2a92f431eb11",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "1fc28a2c-5ea3-45f1-ba44-c89a758ed681",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "cb461836-7432-4bc6-85b9-b5da09023b69",
"metadata": {},
"outputs": [],
"source": [
"\n",
"plt.plot(xvals, polyvals)"
]
},
{
"cell_type": "markdown",
"id": "3f0199bf-7412-43ec-9ad1-34434b517d36",
"metadata": {},
"source": [
"Even better, we could explore the impact of truncating the infinite series at a finite number of points. When we choose an order $N$ polynomial, we could be missing spatial detail for orders greater than $N$.\n",
"\n",
"For the Legendre series, the first few polynomials are:\n",
"\n",
"- $P_0(x)=1$\n",
"- $P_1(x)=x$\n",
"- $P_2(x)=\\frac{1}{2}(3x^2-1)$\n",
"- $P_3(x)=\\frac{1}{2}(5x^3-3x)$\n",
"- ..."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "0dd50daa-dc33-4202-9cb1-59c209170862",
"metadata": {},
"outputs": [],
"source": [
"for o in range(1, legendre.order):\n",
" poly = openmc.legendre_from_expcoef(coeffs[:o], domain=(0.0, height))\n",
" polyvals = [poly(x) for x in xvals]\n",
"\n",
" plt.plot(xvals, polyvals, label='$N={}$'.format(o))\n",
"plt.legend()"
]
},
{
"cell_type": "markdown",
"id": "93249163-244f-4e27-a866-7c174a7e7f51",
"metadata": {},
"source": [
"In the axial direction, the solution to the 1-group homogeneous diffusion equation gives a sine function - we therefore expect that choosing order 0 (a constant) or order 1 (a constant plus a line) will be a very poor approximation to this shape. Second order does quite a good job - we have an infinitely smooth solution (as opposed to piecewise constant cell/mesh tallies)! However, downsides of the FET are that it is not trivial to construct an orthogonal polynomial over an arbitrary domain.\n",
"\n",
"To make things a little bit more interesting, we could make one of the vertical boundaries an albedo boundary. Albedos are ratios of partial currents,\n",
"\n",
"$\\text{albedo}=\\frac{J_{in}}{J_{out}}$\n",
"\n",
"In other words, by setting an albedo of 97%, a particle's importance is reduced by 3% upon re-entering."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "ea35ddf9-0944-4613-a048-adf252fc28ea",
"metadata": {},
"outputs": [],
"source": [
"top.boundary_type='reflective'\n",
"top.albedo = 0.97\n",
"\n",
"model.settings.particles = 2000\n",
"statepoint = model.run(output=False)\n",
"\n",
"fig, ax = plt.subplots(2, 1, figsize=(8,8))\n",
"\n",
"with openmc.StatePoint(statepoint) as sp:\n",
" tally = sp.get_tally(scores=['heating'])\n",
"\n",
"coeffs = tally.get_values().squeeze()\n",
"\n",
"for o in range(1, legendre.order):\n",
" poly = openmc.legendre_from_expcoef(coeffs[:o], domain=(0.0, height))\n",
" polyvals = [poly(x) for x in xvals]\n",
"\n",
" ax[0].plot(xvals, polyvals, label='$N={}$'.format(o))\n",
"\n",
" if (o > 2):\n",
" ax[1].plot(xvals, polyvals, label='$N={}$'.format(o))\n",
" ax[1].set_xlim([80, 100])\n",
" ax[1].set_ylim([1e6, 1.2e6])\n",
"\n",
"ax[0].grid()\n",
"ax[1].grid()\n",
"plt.legend(ncol=3)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e203b74c-6044-4305-87da-1f97b6d5c4bb",
"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
}