diff --git a/tasks/task_01_cross_sections/3_material_xs_plot.ipynb b/tasks/task_01_cross_sections/3_material_xs_plot.ipynb index a704792e..5f511701 100644 --- a/tasks/task_01_cross_sections/3_material_xs_plot.ipynb +++ b/tasks/task_01_cross_sections/3_material_xs_plot.ipynb @@ -1,6 +1,7 @@ { "cells": [ { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -32,6 +33,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -40,7 +42,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -48,6 +50,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -56,18 +59,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "steel_mat = openmc.Material()\n", - "steel_mat.add_element('Fe', 0.975)\n", - "steel_mat.add_element('C', 0.025)\n", - "steel_mat.set_density('g/cm3', 7.7)\n", - "steel_mat.name = 'Steel'" + "steel_mat.add_element('Au',1)\n", + "steel_mat.set_density('g/cm3', 1930)\n", + "steel_mat.name = 'Gold 1930g/cm3'\n", + "\n", + "\n", + "nic_rev4_pusher_material = openmc.Material(name='DT 300g/cm3')\n", + "nic_rev4_pusher_material.add_nuclide(\"H2\", 0.5, percent_type=\"ao\")\n", + "nic_rev4_pusher_material.add_nuclide(\"H3\", 0.5, percent_type=\"ao\")\n", + "nic_rev4_pusher_material.set_density(\"g/cm3\", 300)" ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -76,22 +85,38 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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OznQYQTMnj17uPbaa2nYsCEdO3bk7LPP5ocffsjzNdOnT6dfv345Ple/fn32799/xvannnqKOnXqUL581pVKt2zZQu/evWnbti09e/Zk+/btmds7duxIfHw8rVq1YuTIkZmv2bRpE2eddRZNmjTh6quv5tQpzxL7HXfcwZw5czzaNzcjR46kTZs2xMfH061bN1atWnXGPocPH+bdd9/N91ibN2/myy+/9Gi/1q1b57ufp0pkYjDG31LSSu5A0KJQVS699FK6d+/Oxo0bWbhwIV999VXmh7M39e/fn7/++uuM7Q8//DBDhgxh2bJlPPPMMzzxxBMA1KxZkz/++IMlS5Ywb948XnzxRXbu3AnAY489xj/+8Q/WrVtHpUqV+PDDDz2KYd68eXTp0qVI13HttdeyfPlylixZwqOPPsqDDz54xj7eTgzeZonBGJOrqVOnEhYWxrBhwzK31atXj3vvdRaVS0pK4qabbqJNmza0b9+eadOmnXGMAwcOcOGFF9K+fXvuuOMOcpttoUuXLtSsWfOM7atWraJ3794A9OrVi59++gmAsLAwwsPDAUhOTiY9PR1wktnUqVO54oorALjxxhv58ccfAdi3bx8XXHABHTp04I477qBevXqZpZfVq1fTtGlTgoODWb9+Peeffz7t2rWjQ4cObNiwgenTp9OjRw+uuuoqmjZtyuOPP84XX3xB586dadOmDRs2bACgQoUKmbGfOHEix+qcxx9/nA0bNhAfH88jjzyCqvLII4/QunVr2rRpw9dff52536xZs4iPj+e1115j8+bNnHvuuXTo0IEOHTrwxx9/nHFsb7BeScaUEM+NX8mqnUe9esyWtSrwz/6tcn1+5cqVdOjQIdfn33nnHQCWL1/O33//zYUXXsjatWuz7PPcc8/RrVs3nnnmGX755RdGjRpVoBjbtWvHd999x/33388PP/zAsWPHOHDgAJUrV2bbtm307duX9evX88orr1CrVi32799PxYoVCQlxPt7i4uLYsWNHZiznnXceTzzxBL/99luWWCZMmECfPn0AuO6663j88ce57LLLSEpKIj09nW3btrF06VJWr15NbGwsDRs25NZbb+Wvv/7ijTfe4K233uL111/P/L2MGDGCU6dOMXXq1DOu6cUXX2TFihUsWbIEgO+++44lS5awdOlS9u/fT6dOnejevTsvvvgiw4cP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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "openmc.plotter.plot_xs(\n", " reactions = {\n", " steel_mat: ['total'],\n", + " nic_rev4_pusher_material: ['total'],\n", + "\n", " }\n", ")\n", - "\n", - "plt.show()" + "plt.title = 'Total cross section'\n", + "plt.savefig('total_cross_section_pushers.png', dpi=400)" ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -128,6 +153,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -151,6 +177,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -158,6 +185,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ diff --git a/tasks/task_03_making_CSG_geometry/1_simple_csg_geometry.ipynb b/tasks/task_03_making_CSG_geometry/1_simple_csg_geometry.ipynb index 2416949b..21b43b0d 100644 --- a/tasks/task_03_making_CSG_geometry/1_simple_csg_geometry.ipynb +++ b/tasks/task_03_making_CSG_geometry/1_simple_csg_geometry.ipynb @@ -1,6 +1,7 @@ { "cells": [ { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -22,6 +23,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -37,7 +39,6 @@ "outputs": [], "source": [ "import openmc\n", - "import matplotlib.pyplot as plt\n", "\n", "# example surfaces\n", "inner_sphere_surface = openmc.Sphere(r=500)\n", @@ -50,16 +51,23 @@ "blanket_cell = openmc.Cell(region=blanket_region)\n", "\n", "# makes a universe to cotain all the cells\n", - "universe = openmc.Universe(cells=[blanket_cell]) \n", + "geometry = openmc.Geometry([blanket_cell]) \n", "\n", "# shows the plots, as the geometry is symmetrical the plots look the same\n", "color_assignment = {blanket_cell: 'blue'}\n", - "plt.show(universe.plot(basis='xz', color_by='material', colors=color_assignment))\n", - "plt.show(universe.plot(basis='xy', color_by='material', colors=color_assignment))\n", - "plt.show(universe.plot(basis='yz', color_by='material', colors=color_assignment))" + "\n", + "plot = geometry.plot(basis='xz', colors=color_assignment)\n", + "plot.figure.savefig('xz-cell.png')\n", + "\n", + "plot = geometry.plot(basis='xy', colors=color_assignment)\n", + "plot.figure.savefig('xy-cell.png')\n", + "\n", + "plot = geometry.plot(basis='yz', colors=color_assignment)\n", + "plot.figure.savefig('yz-cell.png')" ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -73,7 +81,7 @@ "outputs": [], "source": [ "# example surfaces\n", - "inner_sphere_surface = openmc.Sphere(r=480)\n", + "inner_sphere_surface = openmc.Sphere(r=400)\n", "middle_sphere_surface = openmc.Sphere(r=500) # note the extra surface\n", "outer_sphere_surface = openmc.Sphere(r=600)\n", "\n", @@ -87,16 +95,23 @@ "firstwall_cell = openmc.Cell(region=firstwall_region)\n", "\n", "# there are now two cells in the list\n", - "universe = openmc.Universe(cells=[blanket_cell, firstwall_cell]) \n", + "geometry = openmc.Geometry([blanket_cell, firstwall_cell]) \n", "\n", "# shows the plots, which still look the same for all directions\n", "color_assignment = {blanket_cell: 'blue', firstwall_cell: 'red'}\n", - "plt.show(universe.plot(basis='xz', color_by='material', colors=color_assignment))\n", - "plt.show(universe.plot(basis='xy', color_by='material', colors=color_assignment))\n", - "plt.show(universe.plot(basis='yz', color_by='material', colors=color_assignment))" + "\n", + "plot = geometry.plot(basis='xz', colors=color_assignment)\n", + "plot.figure.savefig('xz-cell.png')\n", + "\n", + "plot = geometry.plot(basis='xy', colors=color_assignment)\n", + "plot.figure.savefig('xy-cell.png')\n", + "\n", + "plot = geometry.plot(basis='yz', colors=color_assignment)\n", + "plot.figure.savefig('yz-cell.png')" ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -108,6 +123,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -121,9 +137,9 @@ "outputs": [], "source": [ "# surfaces\n", - "inner_sphere_surface = openmc.Sphere(r=480)\n", + "inner_sphere_surface = openmc.Sphere(r=400)\n", "middle_sphere_surface = openmc.Sphere(r=500)\n", - "outer_sphere_surface = openmc.Sphere(r=600, boundary_type='vacuum') # note the extra keyword\n", + "outer_sphere_surface = openmc.Sphere(r=600, boundary_type='vacuum') # note the extra keyword, last surface of the geometry\n", "\n", "# regions\n", "blanket_region = +middle_sphere_surface & -outer_sphere_surface\n", @@ -133,17 +149,24 @@ "# cells\n", "blanket_cell = openmc.Cell(region=blanket_region)\n", "firstwall_cell = openmc.Cell(region=firstwall_region)\n", - "inner_vessel_cell = openmc.Cell(region=inner_vessel_region) # here as the cell is th new void cell\n", + "inner_vessel_cell = openmc.Cell(region=inner_vessel_region) # here as the cell is th new void cell, the other cells will be assigned materials in the next step\n", "\n", - "universe = openmc.Universe(cells=[blanket_cell, firstwall_cell, inner_vessel_cell]) \n", + "geometry = openmc.Geometry([blanket_cell, firstwall_cell, inner_vessel_cell])\n", "\n", "color_assignment = {blanket_cell: 'blue', firstwall_cell: 'red', inner_vessel_cell:'grey'}\n", - "plt.show(universe.plot(basis='xz', color_by='material', colors=color_assignment))\n", - "plt.show(universe.plot(basis='xy', color_by='material', colors=color_assignment))\n", - "plt.show(universe.plot(basis='yz', color_by='material', colors=color_assignment))" + "\n", + "plot = geometry.plot(basis='xz', colors=color_assignment)\n", + "plot.figure.savefig('xz-cell.png')\n", + "\n", + "plot = geometry.plot(basis='xy', colors=color_assignment)\n", + "plot.figure.savefig('xy-cell.png')\n", + "\n", + "plot = geometry.plot(basis='yz', colors=color_assignment)\n", + "plot.figure.savefig('yz-cell.png')" ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -160,7 +183,7 @@ "metadata": {}, "outputs": [], "source": [ - "inner_sphere_surface = openmc.Sphere(r=480)\n", + "inner_sphere_surface = openmc.Sphere(r=400)\n", "middle_sphere_surface = openmc.Sphere(r=500)\n", "outer_sphere_surface = openmc.Sphere(r=600)\n", "\n", @@ -187,18 +210,25 @@ "inner_vessel_cell = openmc.Cell(region=inner_vessel_region)\n", "# note there is no material assignment here as the cell a void cell\n", "\n", - "universe = openmc.Universe(cells=[blanket_cell, firstwall_cell, inner_vessel_cell]) \n", + "geometry = openmc.Geometry([blanket_cell, firstwall_cell, inner_vessel_cell]) \n", "\n", - "# note the new color scheme is based on materials not cells\n", + "# note the new color scheme is uses material objects as dictionary keys and not not cell objects\n", "color_assignment = {lithium_mat: 'green', tungsten_mat: 'yellow'}\n", "\n", "# note the additional argument color_by, normally this defaults to 'cell'\n", - "plt.show(universe.plot(basis='xz', color_by='material', colors=color_assignment))\n", - "plt.show(universe.plot(basis='xy', color_by='material', colors=color_assignment))\n", - "plt.show(universe.plot(basis='yz', color_by='material', colors=color_assignment))" + "\n", + "plot = geometry.plot(basis='xz', color_by='material', colors=color_assignment)\n", + "plot.figure.savefig('xz-material.png')\n", + "\n", + "plot = geometry.plot(basis='xy', color_by='material', colors=color_assignment)\n", + "plot.figure.savefig('xy-material.png')\n", + "\n", + "plot = geometry.plot(basis='yz', color_by='material', colors=color_assignment)\n", + "plot.figure.savefig('yz-material.png')" ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -209,8 +239,24 @@ "- Assigining materials to cells.\n", "- Defining the complete geometry including void cells.\n", "- Defining the edge of the model with the boundary keyword.\n", - "- Coloring models by cell or by material." + "- Coloring models by cell or by material.\n", + "\n", + "Additonal notes.\n", + "\n", + "The geometry.plot method has lots of useful arguments that can be passed in.\n", + "\n", + "Try adding ```outline=True``` to the geometry.plot() method and spot the difference.\n", + "\n", + "Take a look at the documentation for more information\n", + "\n", + "https://docs.openmc.org/en/latest/pythonapi/generated/openmc.Geometry.html#openmc.Geometry.plot" ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [] } ], "metadata": { @@ -229,7 +275,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.5" + "version": "3.8.13" } }, "nbformat": 4, diff --git a/tasks/task_03_making_CSG_geometry/2_intermediate_csg_geometry.ipynb b/tasks/task_03_making_CSG_geometry/2_intermediate_csg_geometry.ipynb index 45e942d4..715bcb53 100644 --- a/tasks/task_03_making_CSG_geometry/2_intermediate_csg_geometry.ipynb +++ b/tasks/task_03_making_CSG_geometry/2_intermediate_csg_geometry.ipynb @@ -1,6 +1,7 @@ { "cells": [ { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -17,12 +18,48 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAARAAAAD5CAYAAADvNmrrAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAAa3UlEQVR4nO3dfbBddX3v8fcnsQYuFiE10JDESbgNUNIHhWOKYx8Q9JJShvBP2/zRC622mXqpD2MphjI1D1NmVGZaday2GR9AxUlTtBIdrYVUO/fOlYcTBEOIlAhWIimEtk7pg5GQb/9Ya+ess8/e5+yzz1rrt9ben9fMztl77afv2Vn7c76/31p7bUUEZmbDWJS6ADNrLweImQ3NAWJmQ3OAmNnQHCBmNjQHiJkNLWmASDpD0p2SviXpoKTXSloq6W5Jj+c/zyzc/iZJhyQ9JumKlLWbWfoO5APA30TEBcDPAgeBLcDeiFgL7M0vI+lCYBOwDtgAfFjS4iRVmxmQMEAknQ78IvAxgIj4YUR8H9gI3J7f7Hbgmvz8RmBXRByLiCeBQ8D6Oms2s+lSdiDnAkeBT0j6hqSPSjoNODsijgDkP8/Kb78CeKpw/8P5MjNL5CWJn/si4K0RcZ+kD5APV/pQj2U998OXtBnYDHDaaaddfMEFFyy0VpvD0/ueLvXxzrn4nFIfz3rbt2/fcxGxbNj7pwyQw8DhiLgvv3wnWYA8I2l5RByRtBx4tnD7VYX7rwR6rrURsRPYCTAxMRGTk5NV1D/SZn5EKtixaEd9Bezrf9W7T2ydsUy9/rzYnCT940Lun2wIExH/BDwl6fx80eXAo8Ae4Lp82XXAXfn5PcAmSUskrQHWAvfXWPJIi5h+WrRo5qkJgt61dddv9UjZgQC8FbhD0kuBJ4DfIgu13ZLeDHwX+FWAiDggaTdZyBwHro+IF9OU3X7db7KmBMSwuus/cWL6ZXco1UgaIBHxEDDR46rL+9z+FuCWKmsaZcXQaHtgzGW2QHGYlCd1B2I16ATHqIfGbIq/eydMHCQL5wAZUePUbcxX5/VwV7JwDpAR425jcO5KFs4BMgLcbSycu5LhOEBazN1G+dyVzI8DpIUcHPXo7kocJDM5QFqms5OX1acYJA6R6bwqtkRxD1FLo7jHq2XcgTSchyvN4mHNdA6QBnPH0Vwe1mS8ejaQhyvtMe7DGncgDeLhSjuN87DGAdIQ7jjabxyHNQ6QBmhmeDS5J+9VW3PesYsWjU+ING61HSfNm+uIk6dg0bTTiYasKupbWxRO6Y3L3Ig7kESaExxRONeIguZNTNUewCJOdF2bxjgMaRwgCaQPj8FDo4l/QIs1db8vmxgmozykcYDULG14RP7v4KGxY9u2qYXbKylqnlSoKXj39u2Fa7pv2S9M6n8nj2qIOEBqknYT7dzB0TM0mk7zD5OUQdIJERidIHGA1CBd1zF7cLQyNPoZMExSB8mozYs4QCqWJjz6B8dIhUY/A4RJE4JkFELEAVKh+sNj7uAY2dDop0+YNCFIRiFEHCAVqTc8HBwD6YRJg4Kk7SHiAKlA3eHh4JineQWJQ2Q2DpCS1RcevbsOB8c8zBEkJ1hUWzfS1hBJHiCSFgOTwPci4ipJS4G/BFYD3wF+LSL+Nb/tTcCbgReBt0XEV5IU3Ued4dGv63BwDKErSFJ1I20MkSbsu/x24GDh8hZgb0SsBfbml5F0IbAJWAdsAD6ch08j1BMeU59TmbnU4bFgEju2bp3xiZpON1LHZ206n6Fpi6QdiKSVwK+Qfd/tO/PFG4FL8/O3A18D3pUv3xURx4AnJR0C1gNfr7HknuoKD3cdNWhAN9KmTiR1B/J+4EaY9oGFsyPiCED+86x8+QrgqcLtDufLZpC0WdKkpMmjR4+WXnRR9eHhriOJxN1IWzqRZB2IpKuAZyNin6RLB7lLj2U9X+KI2AnsBJiYmKjsv6GO8HDXkVDibqQNIZKyA3kdcLWk7wC7gMskfRp4RtJygPzns/ntDwOrCvdfCTxdX7l1c9fRGAN1I9VoeoAoGlBh3oHckG+FuRX454h4j6QtwNKIuFHSOuAzZPMe55BNsK6NiBdne+yJiYmYnJwsveZqu4/e4ZE0OBrzaVxgW8Ln7upGgMo7kSrnQyTti4iJYe+feg6kl/cAb5T0OPDG/DIRcQDYDTwK/A1w/VzhUZWxCw+bUuhGTi6i2k6kyUOZRgRIRHwtIq7Kz/9zRFweEWvzn/9SuN0tEfE/I+L8iPhymlodHmPPIXJSIwKkLRwedlKiEGmaBpY0jqaHhydLW6LH5GrVIdK0LiT5ruxtUV33MTM8HBwt0mNT7/TP0ZQ7+9m0nczcgQzA4WFz6hrSVNmJNGk+xAEyB4eHDazmEGmChpQxbhweI6vGEGlCF+IAmUU13YfDY+TlIXLyItWESBO6kAaUME56f7bFRlMdm3hTdyFem/sov/vwfh5jpab9RFJPqDpAenB4WClmDZHypBzKOEAScHiMkR4hkhmNoYwDpEvV3YfDYwzVsGUmVRfiAKmUw8NyfbfMlCdFF+IAKUj3HbY2LqocyqSYUPXbJeehi1VuBIcyDpBKODysjxEbyjhA8NDF6lf1UKYuftuUzt2HzaGGoUxdXcjYB0i53YfDwwZU8VCmri5k7APELKWqdzCrmgOkNO4+bJ76DmXKUccwZqwDpKrJU4eHDaxrKJMp551fxzBmrAOkPP6Yvi1MW7uQsV3r3X1YY7S4C0kWIJJWSfqqpIOSDkh6e758qaS7JT2e/zyzcJ+bJB2S9JikK1LVPp27DytHVV1IlVJWeRz4/Yj4SeAS4HpJFwJbgL0RsZbs+2+3AOTXbQLWARuAD0tanKTyPtx92NAq7EKqHMYkC5CIOBIRD+bnnwcOAiuAjcDt+c1uB67Jz28EdkXEsYh4EjhE9kXbQzx3Wa2duw8rVxVdSJXDmEas/ZJWA68G7gPOjogjkIUMcFZ+sxXAU4W7Hc6X9Xq8zZImJU0ePXq0srqL3H3YgrWwC0keIJJeBnwWeEdE/NtsN+2xrOfLEhE7I2IiIiaWLVvWdZ27D2u2NnUhSd8Bkn6ELDzuiIjP5YufkbQ8v3458Gy+/DCwqnD3lcDTddU6G3cfVpoKu5AqpNwKI+BjwMGI+JPCVXuA6/Lz1wF3FZZvkrRE0hpgLXB/XfVO5+7D6lFmF1LFMCbll2u/DvjfwH5JD+XL/hB4D7Bb0puB7wK/ChARByTtBh4l24JzfUS8OJ8n9Mf2rS2Csr+Wu5ojlilSfzNNxSYmJmJychKoZv5jbIYvAWxPXURuW+oCahDB1u3ZCx7AIk5QRqR0v90l7YuIiWEfz3+P583DF6tXk3csa2ZVZlbJ1GnZA46xCZAq5j/GZvhi9atoa0zZ74GxCZByePhiaTR1GNO8iszspKZv4nCADMnDF6tcRcOYMudBxiJAypn/8PDF0iprGFPmPIjfEWYN1+RhjANkCB6+WG16DmOawwFiZkNzgJi1TnMmUsciQDyBaqOiaROpfleYtUBTJ1IdIPPkCVSrXYMnUmc9Hoikdw7wGP8REX9RUj1m1iJzdSB/ALwM+NFZTr9fZYFm1kszBjVzHZHsUxGxY7YbSDqtxHoayBOo1iydidRFDQiRWd8ZEXHjXA8wyG3MrHnK2JQ70DFRJZ0BXAusLt4nIt628BKqtW9f6grMylH2cVLL2JQ76EN8iSw89gP7Cqex4i0wlkxDt8QMelT2UyJikC0yZjZGBu1APiXpdyQtl7S0c6q0MjNrvEE7kB8CtwI3M7X9KIBzqyjKzNph0AB5J/ATEfFclcWYWbsMOoQ5APxnlYUMStIGSY9JOiRpS+p6zMbZoB3Ii8BDkr4KHOssrHszrqTFwJ8BbyT7su0HJO2JiEfrrMPMMoMGyOfzU2rrgUMR8QSApF3ARrLvyzWzmg0aIHcCP+h8mXXeCSyprKr+VgBPFS4fBn4uQR1mxuBzIHuBUwuXTwXuKb+cOfXaEW/GDrmSNkualDQJR2soy2w8DRogp0TEv3cu5Of/RzUlzeowsKpweSXwdPeNImJnRExk3zq+rLbizMbNoAHyH5Iu6lyQdDHwX9WUNKsHgLWS1kh6KbAJ2JOgDjNj8DmQdwB/Janz13458OuVVDSLiDgu6feArwCLgY9HxIG66zCzzEABEhEPSLoAOJ9sHuJbEfFCpZX1r+VLZB/uM7PEZh3CFIctEfFCRDwSEfuL4VG8jZmNl7k6kE9IupTZD0PwMeDVZRVkZu0xV4C8nOy4H7MFiLeTmo2pWQMkIlbXVEd7RIDKPC6UWXv5aMHzIODd27enLsPGUQRbG7jujXyAXHxx6grMmqmMgyqPfICUIf3B882aaaAAkbRX0pVdy3ZWU1LTiEWcSF2E2UkBjfhOGBi8A1kDvEtS8bDQExXUY2YtMmiAfB+4HDhb0hckvby6klqgjMGj2QgYNEAUEccj4v8AnwX+H3BWdWU1l7fEWO0augUGBv8w3Z93zkTEbZL2A9dXU1Izlf2tYGajYKAOJCL+ouvyvoh4UzUlle/EgudAPZFqzVDWBGpZo3BvxjWzoTlAhuWJVDMHyDA8kWq1afAEKjhA5sU9h9l0YxEgUkUTqR7GWI2aNoEKYxIgVfAwxirX8OELOEDmzT2H2RQHyLx4GGNpNOkDdEVjEyDlzIN0PSYexlhFKhq+lP33bmwCpEzN+ztgloYDZN48jLF6NXX4Ag6QBfMwxkrXgq0vHUkCRNKtkr4l6ZuS/lrSGYXrbpJ0SNJjkq4oLL9Y0v78ug9K8z80epnzIM38e2DWXxWNcqoO5G7gpyLiZ4B/AG4CkHQh2RdmrwM2AB+WtDi/z0eAzcDa/LSh7qKneBhj9Wjy8AUSBUhE/G1EHM8v3guszM9vBHZFxLGIeBI4BKyXtBw4PSK+HhEBfBK4pu66u3X+Wz2MsdK0aPgCzZgDeRPw5fz8CuCpwnWH82Ur8vPdy3uStFnSpKTJo0ePdl1X1jDGXYhVq8zuo6pVs7IAkXSPpEd6nDYWbnMzcBy4o7Oox0P1OxhY35ckInZGxERETCxbtmwhv8ac3IVYaVrWfcDghzSct4h4w2zXS7oOuAq4PB+WQNZZrCrcbCXwdL58ZY/lQ+l0IYsWHJ9ZFxLFHPZXX1oJ2tB9QLqtMBuAdwFXR8R/Fq7aA2yStETSGrLJ0vsj4gjwvKRL8q0v1wJ31V54H+5CbMFa2H1AhR3IHD4ELAHuzrfG3hsRvxsRByTtBh4lG9pcHxEv5vd5C3AbcCrZnMmXZzxqEu5CrFxN3/JSpBjxib+JiYmYnJzseV1EGcMYgOAEi05O1ASwY9u2Mh64OQJoyh/IbakLKFlX91Hn8EXSvogY+kvimrAVZgR4i4yVo03dB4x5gJT9Cd0ZcyEOEZtLhXMfdax+Yx0g5ZrehXhC1eZU4dClLg6Qks3473cXYiNs7AOk3GFMZ4tM55KHMtZHxd1HXavc2AdI+TyUsTmMwNClwwFCNYc79FDGUqlzVXOAVMJDGetjhLoPcICcVH4X4qGMdakhPOr+G+UAKfBQxtosxarlAKmUhzKWG7GhS4cDpEttQxmHyPgYwaFLhwOkJsX/X4fIGGnpx/QH5QDpoaouxCEyZnqExyh1H+AA6avWELHRMwbhAQ6Qms0MESD9WmCVG5VJ024OkFlUsVnXW2bGQE1bXJqwyjhAknCIjKwR3VzbjwNkDtV0IeAQGUE1hkdTVhMHyACShEhT1hCbW/7/NW7hAemOyt465X2XzIxHZhEnTh6UWcDW7duzAzNv3eqjuzddTVtbCk/XKO5AGsH7ibRSzeHRRA6QeahuKAMOkZZJEB5NXA0cIPPkEDGHx5SkASLpBkkh6RWFZTdJOiTpMUlXFJZfLGl/ft0H86+4TCJpiDR1TRoHPSZLYXzDAxJOokpaBbwR+G5h2YXAJmAdcA5wj6Tz8q+3/AiwGbgX+BKwgYRfb1ndpCp0T6xmSzy5mlSfD8WNc3hA2g7kT4Ebmf5B1Y3Arog4FhFPAoeA9ZKWA6dHxNcj+y7OTwLX1F1wvaY6EXcjCc3SdYzbhGkvSToQSVcD34uIh7tGIivIOoyOw/myF/Lz3cv7Pf5msm6FV77ylSVV3et5quxCIAuRbFV1N5JAoq6j8PSNV92qL90j6ZEep43AzcC7e92tx7KYZXlPEbEzIiYiYmLZsmXD/QIDqnY+5OSzuBupUwO6jrb8d1bWgUTEG3otl/TTwBqg032sBB6UtJ6ss1hVuPlK4Ol8+coeyxuh+k4E3I3UJHHXkZfQGrXPgUTE/og4KyJWR8RqsnC4KCL+CdgDbJK0RNIaYC1wf0QcAZ6XdEm+9eVa4K66a59NPZ0IuBupSAO6jk4ZbdKoXdkj4oCk3cCjwHHg+nwLDMBbgNuAU8m2viTbAtNPPZ0IDNyNdIqy/vJ3bOquo1BKqyjaWPU8TExMxOTkZK3PGVFHiJx8Nk7kjWR3VJQaJAE05eBp20p4jDmCA8YjPCTti4iJYe/fqA5kVNTXiUB3N5It4eRPdyRdGhYc0M7Oo8MBUpF6QwTmHSSdIsdB4R3apOCAdocHOEAqVX+IwCBBAox+mMwRGpA2OKD94QEOkMqlCRGYLUg650cuTAYIDUgfHDAa4QEOkFpIU1tXmxYkncutDZMBQwMcHFVwgNQoXTcCvYIkW9p9q1nCpOcOwQkMERqQ/nMroxYe4M24SaTpRHqZPUym3xJ2lLL9dKGCrXNsT25SaHQ09W3mzbgtlLYTmVZJ4Q02eJg0URNDo6Op4VEGB0giaedFeukfJk3T6/3YtNCA0Q6OjuauJWOivs/QzEcWJtNPzSgyetbWvHfqOIQHOEAaoZkhYsMal/AAB0hjdIY0DpL2GscPQjtAGsZB0j7jGBwdDpCG8rCmHcY1ODocIA3mbqS5xrnrKHKAtICDpDkcHNM5QFrEw5q0HBwzOUBaxt1I/dx19OcAaSkHSfUcHHPzruwt1wkSaNJu8e3lwJgfr24jxF3J8NxtDMcdyAhyVzIYB8bCedUace5KZnK3UR53IGNi3LsSB0Y1kq1Gkt4q6TFJByS9r7D8JkmH8uuuKCy/WNL+/LoP5l9xaUMoHotkVLuT4u/n8KhOkg5E0uuBjcDPRMQxSWflyy8ENgHrgHOAeySdl3+95UeAzcC9wJeADTTw6y3bqNidQDs7FIdEGqlWk7cA74mIYwAR8Wy+fCOwKyKORcSTwCFgvaTlwOkR8fXIDuL6SeCaBHWPhe4OpUldiphZm8MjnVRzIOcBvyDpFuAHwA0R8QCwgqzD6DicL3shP9+93Goiia2xted1EcGORTtKfb5+z2XNUlmASLoH+PEeV92cP++ZwCXAa4Ddks6l97F8Y5bl/Z57M9lwB+CYpEfmUXoVXgE85xqAAevYpm3Ja6hYE2oAOH8hd64sQCLiDf2uk/QW4HP5cOR+SSfIXtDDwKrCTVcCT+fLV/ZY3u+5dwI78+eaXMhh68vgGppVh2uYXsdC7p9qDuTzwGUAks4DXkqWxnuATZKWSFoDrAXuj4gjwPOSLsm3vlwL3JWkcjM7KdUcyMeBj+dDix8C1+XdyAFJu4FHgePA9fkWGMgmXm8DTiXb+uItMGaJJQmQiPgh8Bt9rrsFuKXH8kngp4Z4up1D3KdsrmFKE+pwDVMWVMfIf7WlmVWnZbsLmVmTjFSANGX3eEk3SApJr0hRg6RbJX1L0jcl/bWkM1LU0VXThvw5D0naUuZjdz3PKklflXQwXw/eni9fKuluSY/nP88s3Kfna1JCLYslfUPSFxPWcIakO/P14aCk15ZaR0SMxAl4PXAPsCS/fFb+80LgYWAJsAb4NrA4v+5+4LVk+5l8GfjlEupYBXwF+EfgFYlq+F/AS/Lz7wXem6KOQj2L8+c6l2yL28PAhRWtB8uBi/LzPwr8Q/57vw/Yki/fMshrUkIt7wQ+A3wxv5yihtuB387PvxQ4o8w6RqkDacru8X8K3Mj0Hd1qrSEi/jYijucX72VqH5pUHxVYDxyKiCcim0DflddSuog4EhEP5uefBw6S7bW8kezNRP7zmvx8z9dkoXVIWgn8CvDRwuK6azgd+EXgY5BtvIiI75dZxygFSGf3+Psk/b2k1+TLVwBPFW7X2Q1+BSXvHi/pauB7EfFw11W11dDDm5ja5J2qjn7PWylJq4FXA/cBZ0e2PxH5z7Mqru39ZH9Iip8iqruGc4GjwCfyodRHJZ1WZh2tOh5Iyt3jB6zhD8mGDzPuVmYNc9UREXflt7mZbH+aO6qqY0BVP/7MJ5ReBnwWeEdE/NssUzql1ybpKuDZiNgn6dJB7lJ2DbmXABcBb42I+yR9gGzIUlodrQqQSLh7/Fw1SPppsnHjw/nKuhJ4UNL6smuYrY5CPdcBVwGX568JVdQxoH7PWwlJP0IWHndExOfyxc9IWh4RR/IhW2eIW0VtrwOulnQlcApwuqRP11xD53EPR8R9+eU7yQKkvDqqmMhKcQJ+F9iRnz+PrBUT2bFFihNDTzA1cfgAWcfSmTi8ssR6vsPUJGqtNZAdK+VRYFnX8lSvxUvy51rD1CTquorWA5HN4by/a/mtTJ84fN9cr0lJ9VzK1CRq7TUA/xc4Pz+/La+htDpK/w9MdcpXzE8DjwAPApcVrruZbEb5MQpbF4CJ/PbfBj5EvmNdSfWcDJC6ayCb/HoKeCg//XnK1yJ//CvJtoh8m2yYVdV68PNkbfc3C7//lcCPAXuBx/OfS+d6TUqqpxggtdcAvAqYzF+Pz5MN80urw3uimtnQRmkrjJnVzAFiZkNzgJjZ0BwgZjY0B4iZDc0BYmZDc4BY6SStlvRfkh4q6fG+KunfJSU/CLFN5wCxqnw7Il5VxgNFxOvJdoayhnGA2LxIek1+oKJTJJ2WH7RnzmPVSro2v9/Dkj6VL7tN0kfyDuMJSb8k6eP5gW9uq/yXsQVr1YfpLL2IeEDSHuCPyY6Q/+mImPWLuyStI9tF+nUR8ZykpYWrzyT7io+rgS+QfRDtt4EHJL0qIh6q4NewkjhAbBg7yD589wPgbQPc/jLgzoh4DiAi/qVw3RciIiTtB56JiP0Akg4Aq8k+y2IN5SGMDWMp8DKyQwaeMsDtRf/jShzLf54onO9c9h+4hnOA2DB2An9EdqCi9w5w+73Ar0n6McgOLlxhbVYjJ7zNi6RrgeMR8RlJi4H/L+myiPi7fveJiAOSbgH+XtKLwDeA36ynYquSP85vpcuPRfrFiBjmmwT7PebXgBsi+4ZCawgPYawKLwIvL3NHMrIDBL9QxuNZedyBmNnQ3IGY2dAcIGY2NAeImQ3NAWJmQ3OAmNnQ/htA5Rub+AufhQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "import openmc\n", - "import matplotlib.pyplot as plt\n", "\n", "# surfaces\n", "central_column_surface = openmc.ZCylinder(r=100) # note the new surface type\n", @@ -43,18 +80,24 @@ "blanket_cell = openmc.Cell(region=blanket_region)\n", "inner_vessel_cell = openmc.Cell(region=inner_vessel_region)\n", "\n", - "universe = openmc.Universe(cells=[central_column_cell, firstwall_cell,\n", - " blanket_cell, inner_vessel_cell])\n", + "geometry = openmc.Geometry([central_column_cell, firstwall_cell, blanket_cell, inner_vessel_cell])\n", "\n", - "# VISULISATION\n", + "# visualization\n", "color_assignment = {blanket_cell: 'blue', firstwall_cell: 'red',\n", " inner_vessel_cell:'grey', central_column_cell:'purple'}\n", - "plt.show(universe.plot(basis='xz', color_by='material', colors=color_assignment))\n", - "plt.show(universe.plot(basis='xy', color_by='material', colors=color_assignment))\n", - "plt.show(universe.plot(basis='yz', color_by='material', colors=color_assignment))" + "\n", + "plot = geometry.plot(basis='xz', color_by='cell', colors=color_assignment)\n", + "plot.figure.savefig('xz-cell.png')\n", + "\n", + "plot = geometry.plot(basis='xy', color_by='cell', colors=color_assignment)\n", + "plot.figure.savefig('xy-cell.png')\n", + "\n", + "plot = geometry.plot(basis='yz', color_by='cell', colors=color_assignment)\n", + "plot.figure.savefig('yz-cell.png')" ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -63,9 +106,46 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAARAAAAD5CAYAAADvNmrrAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAAa3klEQVR4nO2dfbBc9XnfP1+kgF1eDMKCKpI8EokMBSc1cK3ioaa2hYuKNRIzthP9kUJrp5q6BNvj2ASFmbaTjqbYnklsT4odDWCwTYYqYBsRjB1QSYZMzcsVLxbiJYiXGBkFhKkTyItA4ukf56x07tXu3r17zzm/c3a/H2Zn9/zOyz532f3oeZ7zpojAGGOG4YjUARhj2osFYowZGgvEGDM0FogxZmgsEGPM0FggxpihSSoQScdLulnSE5Iel/ReSQsk3Snpqfz5hMLyGyXtkvSkpAtSxm6MSZ+BfAX4QUScBvxL4HHgCmBbRKwAtuXTSDodWA+cAawGrpY0L0nUxhggoUAkHQecB1wLEBGvR8TPgXXADfliNwAX5a/XATdFxL6IeBbYBaysM2ZjzFRSZiCnAHuBb0h6SNI1ko4GTo6IPQD580n58ouB5wvr787HjDGJmJ/4vc8CLouI+yR9hbxc6YG6jHU9Dl/SBmADwNFHH332aaedNtdYzQz89KF9pW5v8ZlHlbo9053t27e/HBELh10/pUB2A7sj4r58+mYygbwoaVFE7JG0CHipsPzSwvpLgBe6bTgiNgObASYmJmJycrKK+EeabudIbTz2md4rvLXkAJ7oPet/vnrKYWNSt39fzExI+uu5rJ9MIBHxN5Kel3RqRDwJrAIeyx+XAFflz7fmq2wF/ljS7wO/CKwA7q8/8tFkujDm3z6tug34PLtqjKg7QRweG7D/w29OmbZQ6iFlBgJwGXCjpCOBZ4D/SNaX2SLpE8BPgI8BRMROSVvIBLMfuDQiDqQJu/3MKIyWMT1+C6UekgokIh4GJrrMWtVj+U3ApipjGmWK0mi7MGain1Ask/JInYGYGuiIY9Sl0Y/i396RiUUydyyQEWWcso3Z0vk8nJXMHQtkxHC2MTjOSuaOBTICONuYO85KhsMCaTHONsrHWcnssEBaiMVRD9OzEovkcCyQlhHR/UAqUx1FkVgiU/E3sSVEhOWRmPm3H3Hw/4PJcAbScFyuNAuXNVOxQBqMM47m4rImw9/OBuJypT2Me1njDKRBuFxpJ+Nc1lggDcEZR/sZx7LG39gGYHmMFp2yZhxwBpKQJpcstx370SnTEXBPoliKiG6xBWtfuyVNQD2Yf/sRY1HSWCCJaGLWMf2H2RYkHYy9STIZh5LGAklAk+QxkzTi4HWrm/MDiMK1tDUtribKpJONjKJELJCaaYI8BpcGbDvxns4gR1YZ1IAEU2Na9cr7Ds5rskxGVSIWSE00od/RTxxdpdF0NHuZpBTJKPZFLJAaSJ119BJHK6XRiwFlkloko9YXsUAqJqU8uoljpKTRiwFk0gSRjIJELJAKSSWPfuIYWWn0oodMmiCSUZCIBVIRKeRhccxARyYNEknbJWKBVEDd8rA4ZknDRNJmiTTjYIQRIrU8Iv9v24n3WB4zkYtk24J7Dn5uB2dJbD3mI7WF0tbD35NnIJLmAZPATyNijaQFwP8GlgHPAb8WEf8vX3Yj8AngAPCpiPhhkqB7UKc8emUdlsYQTMtIUmUjbcxEmpCBfBp4vDB9BbAtIlYA2/JpJJ0OrAfOAFYDV+fyaQQp5VHMOswcEMmzkbZlIkkFImkJ8GHgmsLwOuCG/PUNwEWF8ZsiYl9EPAvsAlbWFGpf6pLHbcd+tKs8XK6UyLSy5uBwno3UIZI2SSR1BvJl4HKgeCv1kyNiD0D+fFI+vhh4vrDc7nzsMCRtkDQpaXLv3r2lB12kTnlMeV9nHdWSOBtpi0SS9UAkrQFeiojtkt4/yCpdxrp+whGxGdgMMDExUdn/hTrk4V5HQhL3RubffgQH1jRbIikzkHOBtZKeA24CPijp28CLkhYB5M8v5cvvBpYW1l8CvFBfuPXjrKMhJMxGmp6FJBNIRGyMiCURsYysOfp/IuI3gK3AJflilwC35q+3AuslHSVpObACuL/msA9SdfbhXkfD6NMbqVIiTS9lUvdAunEV8CFJTwEfyqeJiJ3AFuAx4AfApRFxIEWAqeRhGkAhGzk4NMYSaYRAIuLPI2JN/vpnEbEqIlbkz68UltsUEb8UEadGxB2JYrU8xh1L5CCNEEhbsDzMQRJJpGk0L6IxpSgPN0tbQpfmatUSaVoWYoEMSJXZx3R5uFnaIro0V6uUSNNKGQtkAOqWh2kh00qacZGIBTIDlocZmJol0gSaEcUYYnmMKDVKpAlZiAXSh6qyD8tjxMklcnCyIok0IQtJH8GY0da7v5nZU8cu3tRZiAXSgyqyDx/nMUbUdJxI6oaqBdIFy8OUQo0SSYUFkgDLY4zoIpEqSJWFWCDTqDr7sDzGkBr2zKTKQiyQirE8DFDLnpkUWYgFUiD1PWzN6FNlKZOioepfS45LF1M5I1jKWCAVYXmYroxYKWOB4NLF1E/VpUxd+FdTAc4+TF9qKGXqykLGXiBlZx+WhxmIikuZurKQsReIMSmp+gCzqrFASsTZh5kVFZcydZQxYy2QqpqnlocZmGmlTJnUUcaMtUDKxKfpm7nQ1ixkbAXi7MM0hhZnIckEImmppLslPS5pp6RP5+MLJN0p6an8+YTCOhsl7ZL0pKQLUsU+HWcfpgzqujVEmaTMQPYDvx0R/wI4B7hU0unAFcC2iFgBbMunyeetB84AVgNXS5qXJPIeOPswQ1NhFlJlGZPy5tp7IuLB/PWrwOPAYmAdcEO+2A3ARfnrdcBNEbEvIp4FdgErh3zv0lI7Zx+mTKrIQqosYxrRA5G0DDgTuA84OSL2QCYZ4KR8scXA84XVdudj3ba3QdKkpMm9e/dWFncRZx9mzrQwC0kuEEnHALcAn4mIv+u3aJexrp9KRGyOiImImFi4cOH0ec4+TKNpUxaSVCCSfoFMHjdGxHfy4RclLcrnLwJeysd3A0sLqy8BXqgr1n44+zClUWEWUgUp98IIuBZ4PCJ+vzBrK3BJ/voS4NbC+HpJR0laDqwA7q8r3uk4+zB1UGYWUkUZM7/0LQ7OucC/B3ZIejgf+13gKmCLpE8APwE+BhAROyVtAR4j24NzaUQcmM0b+rR90xaCQF2r9uGZf/sRHFhTrkSSCSQi/pLufQ2AVT3W2QRsqiyoIXD5YkonL2POf+W81JHMiP85HgKXL6ZOmnxgmQViTEOp4lT/svsgYyOQKvofLl9MZVS0N6bs38DYCKQsXL6YFDS1jLFAjGkwTb9imQUyJC5fTOVUVMaU2QcZC4GU1f9w+WJSUlYZU2YfZCwEYkybaXIZY4EMgcsXUxsNPzfGAjHGDI0FYswYUlYjdSwE4gaqGRWa1kgdC4EY03aa2ki1QGaJG6imdhrcSO17Or+kzw6wjb+PiD8qKR5jTIuYKQP5PHAMcGyfx29XGaAxprnMdEGhb0XE7/VbQNLRJcbTSNxANU2i00hd+9otqUPpn4FExOUzbWCQZYwxzaOMXbkDXdJQ0vHAxcCy4joR8ak5R1Ax2/92uzvFZiQo+zqpZezKHXQL3yeTxw5ge+ExVngPjElGQ/fEDHpR5bdExCB7ZIwxY8SgGci3JP0nSYskLeg8Ko3MGNN4Bs1AXge+BFzJodtJBnBKFUEZY9rBoAL5LPDLEfFylcEYY9rFoCXMTuAfqgxkUCStlvSkpF2SrkgdjzHjzKAZyAHgYUl3A/s6g3XvxpU0D/hfwIfIbrb9gKStEfFYnXEYYzIGFcj38kdqVgK7IuIZAEk3AevI7pdrjKmZQQVyM/BPnZtZ55nAUZVF1ZvFwPOF6d3Av0oQhzGGwXsg24C3FqbfCtxVfjgz0u0wvMOOx5W0QdKkpEn+toaojBlTBhXIWyLitc5E/vqfVRNSX3YDSwvTS4AXpi8UEZsjYiIiJnhbbbEZM3YMKpC/l3RWZ0LS2cA/VhNSXx4AVkhaLulIYD2wNUEcxhgG74F8BvgTSZ1/7RcBv15JRH2IiP2Sfgv4ITAPuC4idtYdhzEmYyCBRMQDkk4DTiXrQzwREW9UGlnvWL5PdnKfMSYxfUuYYtkSEW9ExKMRsaMoj+IyxpjxYqYM5BuS3k/3vR8drgXOLCsgY0x7mEkgbyO77kc/gewtLxxjTJvoK5CIWFZTHO0h6K9TY8YIX+1vFgix6pX3pQ7DjCMB579yXuooDmPkBXL2285OHYIxjeTAmrlfVHnkBVIGZd2I2JhRYyCBSNom6cJpY5urCal5NOH+G8Z0iIjGfCcHzUCWA78j6b8VxiYqiMcY0yIGFcjPgVXAyZJukzTep6i5ojEGGFwgioj9EfFfgFuAvwROqi6s5uI9MaZ2GroHBgY/me7rnRcRcb2kHcCl1YTUTCICyQeAGFNkoAwkIv5o2vT2iPh4NSGVz/4PvznnbTSlaWXGm7IaqGXswgXvxjXGzAELZFjcSDXGAhkGN1JNbTS4gQoWyKzwEanGTGUsBCKpmkaqfWJqpGkNVBgTgVSByxhTOQ0vX8ACmTUuY4w5hAUyS1zGmBQ06QS6ImMjkLL6IFO26TLGVEVF5UuZ/Q8YI4GUicsYYzIskCFwGWPqpKnlC1ggc8ZljCmdFux96ZBEIJK+JOkJST+W9F1JxxfmbZS0S9KTki4ojJ8taUc+76sa4tTYMvsgLmNM2yi7/wHpMpA7gXdFxK8CfwVsBJB0OtkNs88AVgNXS5qXr/M1YAOwIn+srjvoIi5jTB00uXyBRAKJiD+LiP355L3Akvz1OuCmiNgXEc8Cu4CVkhYBx0XEjyL7p/+bwEV1xz2dThbiMsaURovKF2hGD+TjwB3568XA84V5u/Oxxfnr6eNdkbRB0qSkyb17906fV1oZ4yzEVEmZ2UcV5QtUKBBJd0l6tMtjXWGZK4H9wI2doS6b6nUvuJ6fSERsjoiJiJhYuHDhXP6MGXEWYkqjZdkHDH5Jw1kTEef3my/pEmANsCoOdSR3A0sLiy0BXsjHl3QZH4pOFjL/9rn7c+1rt3DbsR89NOBbX5oSaEP2Aen2wqwGfgdYGxH/UJi1FVgv6ShJy8mapfdHxB7gVUnn5HtfLgZurT3wHjgLMXOmhdkHpOuB/CFwLHCnpIclfR0gInYCW4DHgB8Al0bEgXydTwLXkDVWn+ZQ3yQ57oWYMmn6npcilZUw/YiIX+4zbxOwqcv4JPCusmIos4yBQ1dt72Qh2068p5TtmjGgwuyjyvIFmrEXZiRwFmLKoE3ZB4y5QMo+Q/ewXoglYmaixdkHjLlAyqb4L4cbqmZGpsmjbdkHWCClc9g5Ms5CzAgz9gIpu4xZ+9otLmXMzFScfdRRvoAFUgkuZUxfRqB06WCBUM3lDl3KmFTUlX2ABVIZLmVMV0Yo+wAL5CBVZCEuZcwUapBHndkHWCBTcClj2kzd8gALpHJcyhhg5EqXDhbINGorZSyR8WEES5cOFkhNFEsZS2SMaOlp+oNigXShqizEEhkzushjlLIPsEB6UqtEzOgxBvIAC6R2pksEcBYyBoxK03Q6FkgfqshCwHtmRp6a9rikzj7AAkmGJTKijOju2l5YIDNQVRYClsjIUaM8mpB9gAUyEEkk0ozvhxmE/P/XuMkDLJCBqVMi579ynrORtpCLYxzlARZIY/BxIi2kpl21TcYCmQVVZiFgibSKBPJoWvYBFsissUSM5XGIpAKR9DlJIenthbGNknZJelLSBYXxsyXtyOd9Nb/FZRKSSqSZ36PxoEuzFMZXHpBQIJKWAh8CflIYOx1YD5wBrAauljQvn/01YAPZ/XJX5POTkUIibq4mpEuzFMZbHpA2A/kD4HKm/hzWATdFxL6IeJbsPrgrJS0CjouIH0X2q/omcFHdAddNRyLORhLSJ+sYt4ZpN5LcG1fSWuCnEfHItEpkMXBvYXp3PvZG/nr6eK/tbyDLVnjHO95RUtRd36fU++t2o/MF3XrMR+h8Vp1sJAi2LbgHkhVzI06PU/HrEkfTsw+oMAORdJekR7s81gFXAv+122pdxqLPeFciYnNETETExMKFC4f7Awak6lKmg7ORGmlA1tEGeUCFGUhEnN9tXNKvAMuBTvaxBHhQ0kqyzGJpYfElwAv5+JIu442gjkwEnI3UQuKsA9ojD0jQA4mIHRFxUkQsi4hlZHI4KyL+BtgKrJd0lKTlZM3S+yNiD/CqpHPyvS8XA7fWHXs/6spEwNlIJTQg64B2yQMS9UB6ERE7JW0BHgP2A5dGxIF89ieB64G3Anfkj0ZRVyYCA2Yj2aDpR/57TZ11QPvkAaDDLm4zYkxMTMTk5GSt7xkRtUikw9ZjPgLAtIZ0uSIJOPK9/3eOG5k7QfDGveeWsSGgtziAsZCHpO0RMTHs+o3KQEaFOjMRmJqNdN4fnJF0pWHigHZmHh0skIqoWyIwS5FkM8aDwu+zSeKAdssDLJBKSSERmFkkwOjLZAZpQFpxQPvlARZI5aSSCPQWCYyoTAaQBqQXB4yGPMACqQVJHFgTtTdXO/QTCbRcJgNKAyyOKrBAaiRlNgKHi6QTU5G+MmkKQ0gD0ooDRk8eYIHUTmqJwNQf0sAyCWiCSkS7pNFhFOUBFkgSmiCRDoPKpOk0URodRlUeYIEkI3VfpBu9ZJLRHKF0O/ixadKA0RZHBwskMU3KRooc9oMM+DxXpQlmahiNlMV0xkEe4GuiNoI6T8Qz1TMu8gBnII2hiSWNmR3jJI4OFkjDsEjaxziKo4O/oQ3FZU07GGd5gDOQRuNspLmMuzg6WCAtwCJpDhbHVPxtbBEua9JieRyOM5CW4WykfiyO3lggLcUiqR6LY2YskJbTEQnUfy3WUcTSmB0WyAjhrGR4LI7hsEBGEGclg2FpzB0LZMRxVnI4Fkd5WCBjwrhnJZZGNSQTiKTLgN8iuwPd7RFxeT6+EfgEcAD4VET8MB8/m0N3pvs+8OkY9btiVURRJjCaQrEw6iGJQCR9AFgH/GpE7JN0Uj5+OrAeOAP4ReAuSe/Mb2/5NWADcC+ZQFbTwNtbtpFREIqFkYZUGcgngasiYh9ARLyUj68DbsrHn5W0C1gp6TnguIj4EYCkbwIXYYFUwnShQCaVjTyTKKJDiMNjM+lIJZB3Au+TtAn4J+BzEfEAsJgsw+iwOx97I389fdzUhCSueu2Xus6LCDYeW65cer2XaRaVCUTSXcA/7zLryvx9TwDOAd4DbJF0Ct0vvBl9xnu99waycgdgn6RHZxF6FbwdeNkxAAPG8YVqL8HahM+iCTEAnDqXlSsTSESc32uepE8C38mboPdLepPsA90NLC0sugR4IR9f0mW813tvBjbn7zU5l7uPl4FjaFYcjmFqHHNZP1Wn7HvABwEkvRM4kszGW4H1ko6StBxYAdwfEXuAVyWdo+x+AxcDtyaJ3BhzkFQ9kOuA6/LS4nXgkjwb2SlpC/AY2e7dS/M9MJA1Xq8n2417B26gGpOcJAKJiNeB3+gxbxOwqcv4JPCuId5u8xDrlI1jOEQT4nAMh5hTHPKxWMaYYWnX0ULGmEYxUgKRdJmkJyXtlPTFwvhGSbvyeRcUxs+WtCOf91WVdENYSZ+TFJLeniIGSV+S9ISkH0v6rqTjU8QxLabV+XvuknRFmdue9j5LJd0t6fH8e/DpfHyBpDslPZU/n1BYp+tnUkIs8yQ9JOlPE8ZwvKSb8+/D45LeW2ocETESD+ADwF3AUfn0Sfnz6cAjwFHAcuBpYF4+737gvWTHmdwB/LsS4lgK/BD4a+DtiWL4t8D8/PUXgC+kiKMQz7z8vU4h2+P2CHB6Rd+DRcBZ+etjgb/K/+4vAlfk41cM8pmUEMtngT8G/jSfThHDDcBv5q+PBI4vM45RykBmPDw+Ip4FOofHLyI/PD6yT69zePxc+QPgcqYe6FZrDBHxZxGxP5+8l0PH0NT9WXRYCeyKiGcia6DflMdSOhGxJyIezF+/CjxOdtTyOrIfE/nzRfnrrp/JXOOQtAT4MHBNYbjuGI4DzgOuhWznRUT8vMw4RkkgncPj75P0F5Lek48vBp4vLNc5DH4xJR8eL2kt8NOIeGTarNpi6MLHObTLO1Ucvd63UiQtA84E7gNOjux4IvLnkyqO7ctk/5AUL6NfdwynAHuBb+Sl1DWSji4zjlZdDyTl4fEDxvC7ZOXDYauVGcNMcUTErfkyV5IdT3NjVXEMSNXbP/wNpWOAW4DPRMTf9WnplB6bpDXASxGxXdL7B1ml7Bhy5gNnAZdFxH2SvkJWspQWR6sEEgkPj58pBkm/QlY3PpJ/WZcAD0paWXYM/eIoxHMJsAZYlX8mVBHHgPR630qQ9Atk8rgxIr6TD78oaVFE7MlLtk6JW0Vs5wJrJV0IvAU4TtK3a46hs93dEXFfPn0zmUDKi6OKRlaKB/Cfgd/LX7+TLBUT2bVFio2hZzjUOHyALGPpNA4vLDGe5zjURK01BrJrpTwGLJw2nuqzmJ+/13IONVHPqOh7ILIezpenjX+JqY3DL870mZQUz/s51EStPQbgHuDU/PV/z2MoLY7S/wemeuRfzG8DjwIPAh8szLuSrKP8JIW9C8BEvvzTwB+SH1hXUjwHBVJ3DGTNr+eBh/PH11N+Fvn2LyTbI/I0WZlV1ffgX5Ol3T8u/P0XAicC24Cn8ucFM30mJcVTFEjtMQDvBibzz+N7ZGV+aXH4SFRjzNCM0l4YY0zNWCDGmKGxQIwxQ2OBGGOGxgIxxgyNBWJKR9IySf8o6eGStne3pNckJb+GqJmKBWKq4umIeHcZG4qID5Ady2AahgViZoWk/9G5xkY+vUnSpwZY7+L8+iSPSPpWPna9pK/lGcYzkv6NpOvy61ZcX+GfYUqiVefCmEZwLfAd4CuSjiC7FWnfU74lnUF2hOO5EfGypAWF2SeQXaF/LXAb2Xkkvwk8IOndEfFw+X+CKQtnIGZWRMRzwM8knUl25vFDEfGzGVb7IHBzRLycb+OVwrzbIjscegfwYkTsiIg3gZ3AsrLjN+XiDMQMwzXAfyC7nMB1Aywvep8Wvi9/frPwujPt72fDcQZihuG7ZGf8vofs8o0zsQ34NUknQnZt0ApjMzViw5tZExGvS7ob+HkcuvFXv+V3KruR+l9IOgA8RJbBmJbjs3HNrMmbpw8CH4uIp7rMX0Z2CvswNwLr9Z5/DnwushuMmYbgEsbMCkmnk11vZFs3eeQcAN5W5oFkZNf3fKOM7ZnycAZijBkaZyDGmKGxQIwxQ2OBGGOGxgIxxgyNBWKMGRoLxBgzNP8fJvGbSuscJ8sAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "# surfaces\n", "central_column_surface = openmc.ZCylinder(r=100) # note the new surface type\n", @@ -74,7 +154,11 @@ "outer_sphere_surface = openmc.Sphere(r=600, boundary_type='vacuum')\n", "\n", "# regions, this time defined using boolean operators\n", - "# There are 3 opperators | OR, & AND, ~ NOT\n", + "# There are 3 operators to choose from\n", + "# | OR\n", + "# & AND\n", + "# ~ NOT\n", + "# This examples uses the ~ NOT operators\n", "\n", "central_column_region = -central_column_surface & -outer_sphere_surface\n", "\n", @@ -94,18 +178,25 @@ "blanket_cell = openmc.Cell(region=blanket_region)\n", "inner_vessel_cell = openmc.Cell(region=inner_vessel_region)\n", "\n", - "universe = openmc.Universe(cells=[central_column_cell, firstwall_cell,\n", + "geometry = openmc.Geometry(cells=[central_column_cell, firstwall_cell,\n", " blanket_cell, inner_vessel_cell])\n", "\n", "# VISULISATION\n", "color_assignment = {blanket_cell: 'blue', firstwall_cell: 'red',\n", " inner_vessel_cell:'grey', central_column_cell:'purple'}\n", - "plt.show(universe.plot(basis='xz', color_by='material', colors=color_assignment))\n", - "plt.show(universe.plot(basis='xy', color_by='material', colors=color_assignment))\n", - "plt.show(universe.plot(basis='yz', color_by='material', colors=color_assignment))" + "\n", + "plot = geometry.plot(basis='xz', color_by='cell', colors=color_assignment)\n", + "plot.figure.savefig('xz-cell.png')\n", + "\n", + "plot = geometry.plot(basis='xy', color_by='cell', colors=color_assignment)\n", + "plot.figure.savefig('xy-cell.png')\n", + "\n", + "plot = geometry.plot(basis='yz', color_by='cell', colors=color_assignment)\n", + "plot.figure.savefig('yz-cell.png')" ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -116,6 +207,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -126,6 +218,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -152,7 +245,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.5" + "version": "3.8.13" } }, "nbformat": 4, diff --git a/tasks/task_03_making_CSG_geometry/3_viewing_the_geometry_as_vtk.ipynb b/tasks/task_03_making_CSG_geometry/3_viewing_the_geometry_as_vtk.ipynb index 35de0a1e..81d37015 100644 --- a/tasks/task_03_making_CSG_geometry/3_viewing_the_geometry_as_vtk.ipynb +++ b/tasks/task_03_making_CSG_geometry/3_viewing_the_geometry_as_vtk.ipynb @@ -32,25 +32,19 @@ "source": [ "import openmc\n", "\n", - "mats = openmc.Materials()\n", - "\n", "copper = openmc.Material()\n", "copper.set_density('g/cm3', 8.5)\n", "copper.add_element('Cu', 1.0) # Note, percent_type does not have to be specified as material is 100% copper\n", - "mats.append(copper)\n", - "\n", - "eurofer = openmc.Material()\n", - "eurofer.set_density('g/cm3', 7.75)\n", - "eurofer.add_element('Fe', 99.9, percent_type='wo')\n", - "eurofer.add_element('C', 0.1, percent_type='wo')\n", "\n", - "mats.append(eurofer)\n", + "iron = openmc.Material()\n", + "iron.set_density('g/cm3', 7.75)\n", + "iron.add_element('Fe', 1.0, percent_type='wo')\n", "\n", "breeder_material = openmc.Material()\n", - "breeder_material.set_density('g/cm3', 9.1)\n", - "breeder_material.add_element('Pb', 84.2, percent_type='ao')\n", - "breeder_material.add_element('Li', 15.8, percent_type='ao')\n", - "mats.append(breeder_material)\n", + "breeder_material.set_density('g/cm3', 0.5)\n", + "breeder_material.add_element('Li', 1, percent_type='ao')\n", + "\n", + "mats = openmc.Materials([copper, iron, breeder_material])\n", "\n", "mats.export_to_xml()\n", "\n", @@ -69,19 +63,17 @@ "\n", "central_shield_region = +central_sol_surface & -central_shield_outer_surface & -breeder_blanket_outer_surface\n", "central_shield_cell = openmc.Cell(region=central_shield_region)\n", - "central_shield_cell.fill = eurofer\n", + "central_shield_cell.fill = iron\n", "\n", "first_wall_region = -first_wall_outer_surface & +vessel_inner & +central_shield_outer_surface\n", "first_wall_cell = openmc.Cell(region=first_wall_region)\n", - "first_wall_cell.fill = eurofer\n", + "first_wall_cell.fill = iron\n", "\n", "breeder_blanket_region = +first_wall_outer_surface & -breeder_blanket_outer_surface & +central_shield_outer_surface\n", "breeder_blanket_cell = openmc.Cell(region=breeder_blanket_region)\n", "breeder_blanket_cell.fill = breeder_material\n", "\n", - "universe = openmc.Universe(cells=[central_sol_cell,central_shield_cell,first_wall_cell, breeder_blanket_cell])\n", - "\n", - "my_geometry = openmc.Geometry(universe)\n", + "my_geometry = openmc.Geometry([central_sol_cell,central_shield_cell,first_wall_cell, breeder_blanket_cell])\n", "\n", "my_geometry.export_to_xml()\n" ] @@ -118,8 +110,6 @@ "vox_plot.pixels = [int(w* 0.1) for w in my_geometry.bounding_box.width]\n", "\n", "vox_plot.color_by = 'material'\n", - "# materials can be coloured using this command and the available openmc colors\n", - "# vox_plot.colors = {copper: 'blue'}\n", "\n", "vox_plot.to_vtk(output='voxel_plot.vti')" ] diff --git a/tasks/task_17_detectors_examples/4_icf_fuel_capsule_time_of_flight.py b/tasks/task_17_detectors_examples/4_icf_fuel_capsule_time_of_flight.py new file mode 100644 index 00000000..a6208c28 --- /dev/null +++ b/tasks/task_17_detectors_examples/4_icf_fuel_capsule_time_of_flight.py @@ -0,0 +1,118 @@ +# This simulation produces neutrons inside a ICF fusion fuel cavity and +# transports them through a pusher material then tallies the neutrons arriving +# at a surface. Two examples are made, one for Revolver and one for NIC Rev 5 +# https://www.lle.rochester.edu/media/publications/presentations/documents/APS17/McKenty_APS17.pdf +# https://nap.nationalacademies.org/read/18288/chapter/6#46 + + +import openmc +import numpy as np +import matplotlib.pyplot as plt + +# this function will be called 4 times for the different combinations of +# pusher material and detector distance +def simulate_icf_neutrons( + pusher_material: openmc.Material, + pusher_inner_radius: float, + pusher_outer_radius: float, + detector_distance: float +): + + # surfaces + surface_inner_shell = openmc.Sphere(r=pusher_inner_radius) + surface_outer_shell = openmc.Sphere(r=pusher_outer_radius) + sphere_surface_detector_1 = openmc.Sphere(r=detector_distance, boundary_type="vacuum") + + # regions + fuel_region = -surface_inner_shell + shell_region = +surface_inner_shell & -surface_outer_shell + void_region_1 = +surface_outer_shell & -sphere_surface_detector_1 + + # cells + fuel_cell = openmc.Cell(region=fuel_region) + shell_cell = openmc.Cell(region=shell_region, fill=pusher_material) + void_cell_1 = openmc.Cell(region=void_region_1) + + geometry = openmc.Geometry([fuel_cell, shell_cell, void_cell_1]) + + # Create a neutron point source + source = openmc.Source() + source.space = openmc.stats.Point((0, 0, 0)) + source.angle = openmc.stats.Isotropic() + # DT neutron energy distribution is a Muir distribution + source.energy = openmc.stats.muir(e0=14.08e6, m_rat=5.0, kt=2e3) + + # Instantiate a Settings object + settings = openmc.Settings() + settings.batches = 90 + settings.particles = 80000 + settings.run_mode = "fixed source" + settings.source = source + settings.photon_transport = False + + # time is in units of seconds, this might need changing if detector distance changes + time_steps = np.linspace(start=300e-9, stop=1500e-9, num=1000) + time_filter = openmc.TimeFilter(time_steps) + surface_filter_1 = openmc.SurfaceFilter(sphere_surface_detector_1) + + time_tally_1 = openmc.Tally(name="time_tally_detector") + time_tally_1.scores = ["current"] + time_tally_1.filters = [time_filter, surface_filter_1] + + tallies = openmc.Tallies([time_tally_1]) + + materials = openmc.Materials([pusher_material]) + + model = openmc.model.Model(geometry, materials, settings, tallies) + + sp_filename = model.run() + + # open the results file for post processing + with openmc.StatePoint(sp_filename) as sp: + tally_detector_1 = sp.get_tally(name="time_tally_detector") + tally_1_values = tally_detector_1.mean.squeeze() + + plt.plot(time_steps[:-1], tally_1_values, label=f"{detector_distance}cm detector, {pusher_material.name} pusher material") + + +revolver_pusher_material = openmc.Material(name='Revolver') +revolver_pusher_material.add_element("Au", 1.0, percent_type="ao") +revolver_pusher_material.set_density("g/cm3", 1930) + +simulate_icf_neutrons( + pusher_material= revolver_pusher_material, + pusher_inner_radius= 0.0035, + pusher_outer_radius=0.0095, + detector_distance=2000 +) +simulate_icf_neutrons( + pusher_material= revolver_pusher_material, + pusher_inner_radius= 0.0035, + pusher_outer_radius=0.0095, + detector_distance=3000 +) + +nic_rev4_pusher_material = openmc.Material(name='NIC Rev 5') +nic_rev4_pusher_material.add_nuclide("H2", 0.5, percent_type="ao") +nic_rev4_pusher_material.add_nuclide("H3", 0.5, percent_type="ao") +nic_rev4_pusher_material.set_density("g/cm3", 300) + +simulate_icf_neutrons( + pusher_material= nic_rev4_pusher_material, + pusher_inner_radius= 0.0035, + pusher_outer_radius=0.0065, + detector_distance=2000 +) +simulate_icf_neutrons( + pusher_material= nic_rev4_pusher_material, + pusher_inner_radius= 0.0035, + pusher_outer_radius=0.0065, + detector_distance=3000 +) + +plt.yscale("log") +plt.legend(loc="upper right") +plt.xlabel("Time [s]") +plt.ylabel("Neutron current on surface") +plt.tight_layout() +plt.savefig("icf_fuel_tof.png", dpi=400)