openmc-designs/SFR/SFR.ipynb

741 lines
61 KiB
Text

{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "q9Vo6HOQUQbS",
"outputId": "020190f0-fec4-4a85-a716-2a98b03b3340"
},
"source": [
"# A Sodium Fast Reactor geometry \n",
"This notebook can be used as a template for modeling Sodium fast reactors.\n",
"\n",
"SOURCES:\n",
"A. Facchini, V. Giusti, R. Ciolini, K. Tucek, D. Thomas, E. D'Agata, \"Detailed Neutornics Study of the Power Evolution for the European Sodium Fast Reactor During a Positive Insertion of Reactivity,\" Nuc. Eng. Design 313 1-9 (2017)\n",
"A. Ponomarev, A. Bednarova, K. Mikityuk, \"New Sodium Fast Reactor Neutronics Benchmark,\" PHYSOR 2018"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"id": "EChOeJ7qVUB7"
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import openmc"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"id": "jlu98MGXV9MP"
},
"outputs": [],
"source": [
"# Materials definitions\n",
"\n",
"u235 = openmc.Material(name='U235')\n",
"u235.add_nuclide('U235', 1.0)\n",
"u235.set_density('g/cm3', 10.0)\n",
"\n",
"u238 = openmc.Material(name='U238')\n",
"u238.add_nuclide('U238', 1.0)\n",
"u238.set_density('g/cm3', 10.0)\n",
"\n",
"pu238 = openmc.Material(name='Pu238')\n",
"pu238.add_nuclide('Pu238', 1.0)\n",
"pu238.set_density('g/cm3', 10.0)\n",
"\n",
"pu239 = openmc.Material(name='U235')\n",
"pu239.add_nuclide('Pu239', 1.0)\n",
"pu239.set_density('g/cm3', 10.0)\n",
"\n",
"pu240 = openmc.Material(name='Pu240')\n",
"pu240.add_nuclide('Pu240', 1.0)\n",
"pu240.set_density('g/cm3', 10.0)\n",
"\n",
"pu241 = openmc.Material(name='Pu241')\n",
"pu241.add_nuclide('Pu241', 1.0)\n",
"pu241.set_density('g/cm3', 10.0)\n",
"\n",
"pu242 = openmc.Material(name='Pu242')\n",
"pu242.add_nuclide('Pu242', 1.0)\n",
"pu242.set_density('g/cm3', 10.0)\n",
"\n",
"am241 = openmc.Material(name='Am241')\n",
"am241.add_nuclide('Am241', 1.0)\n",
"am241.set_density('g/cm3', 10.0)\n",
"\n",
"o16 = openmc.Material(name='O16')\n",
"o16.add_nuclide('O16', 1.0)\n",
"o16.set_density('g/cm3', 10.0)\n",
"\n",
"sodium = openmc.Material(name='Na')\n",
"sodium.add_nuclide('Na23', 1.0)\n",
"sodium.set_density('g/cm3', 0.96)\n",
"\n",
"cu63 = openmc.Material(name='Cu63')\n",
"cu63.set_density('g/cm3', 10.0)\n",
"cu63.add_nuclide('Cu63', 1.0)\n",
"\n",
"Al2O3 = openmc.Material(name='Al2O3')\n",
"Al2O3.set_density('g/cm3', 10.0)\n",
"Al2O3.add_element('O', 3.0)\n",
"Al2O3.add_element('Al', 2.0)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"id": "_ltK5VzGZ8kk"
},
"outputs": [],
"source": [
"# Material mixtures\n",
"inner = openmc.Material.mix_materials(\n",
" [u235, u238, pu238, pu239, pu240, pu241, pu242, am241, o16],\n",
" [0.0019, 0.7509, 0.0046, 0.0612, 0.0383, 0.0106, 0.0134, 0.001, 0.1181],\n",
" 'wo')\n",
"outer = openmc.Material.mix_materials(\n",
" [u235, u238, pu238, pu239, pu240, pu241, pu242, am241, o16],\n",
" [0.0018, 0.73, 0.0053, 0.0711, 0.0445, 0.0124, 0.0156, 0.0017, 0.1176],\n",
" 'wo')\n",
"clad = openmc.Material.mix_materials(\n",
" [cu63,Al2O3], [0.997,0.003], 'wo')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"id": "A2kNKaErZ7JR"
},
"outputs": [],
"source": [
"# Instantiate a Materials collection and export to xml\n",
"materials_file = openmc.Materials([inner, outer, sodium, clad])\n",
"materials_file.export_to_xml()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"id": "OrML6oju4spK"
},
"outputs": [],
"source": [
"# Geometry definitions\n",
"\n",
"fuel_or = openmc.ZCylinder(surface_id=1, r=0.943/2)\n",
"clad_ir = openmc.ZCylinder(surface_id=2, r=0.973/2)\n",
"clad_or = openmc.ZCylinder(surface_id=3, r=1.073/2)\n",
"\n",
"top = openmc.ZPlane(surface_id=4, z0=+50, boundary_type='vacuum')\n",
"bottom = openmc.ZPlane(surface_id=5, z0=-50, boundary_type='vacuum')\n",
"\n",
"fuel_region = -fuel_or & -top & +bottom\n",
"gap_region = +fuel_or & -clad_ir & -top & +bottom\n",
"clad_region = +clad_ir & -clad_or & -top & +bottom\n",
"moderator_region = +clad_or & -top & +bottom\n",
"\n",
"gap_cell = openmc.Cell(cell_id=1, fill=inner, region=gap_region)\n",
"clad_cell = openmc.Cell(cell_id=2, fill=clad, region=clad_region)\n",
"sodium_cell = openmc.Cell(cell_id=3, fill=sodium, region=moderator_region)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"id": "8L0zqqhZfxKh"
},
"outputs": [],
"source": [
"inner_fuel_cell = openmc.Cell(cell_id=4, fill=inner, region=fuel_region)\n",
"inner_u = openmc.Universe(universe_id=1, cells=(inner_fuel_cell, gap_cell, clad_cell, sodium_cell))"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"id": "iAHLhKZYh6y5"
},
"outputs": [],
"source": [
"outer_fuel_cell = openmc.Cell(cell_id=5, fill=outer, region=fuel_region)\n",
"outer_u = openmc.Universe(universe_id=2, cells=(outer_fuel_cell, gap_cell, clad_cell, sodium_cell))"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"# Creating filling for emtpy space in the core\n",
"\n",
"sodium_mod_cell = openmc.Cell(cell_id=6, fill=sodium)\n",
"sodium_mod_u = openmc.Universe(universe_id=3, cells=(sodium_mod_cell,))"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"id": "cWTxCkwKRwYj"
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/aparler/.conda/envs/openmc-env/lib/python3.11/site-packages/openmc/mixin.py:70: IDWarning: Another Lattice instance already exists with id=1.\n",
" warn(msg, IDWarning)\n"
]
}
],
"source": [
"# Define a lattice for inner assemblies\n",
"in_lat = openmc.HexLattice(lattice_id=1, name='inner assembly')\n",
"in_lat.center = (0., 0.)\n",
"in_lat.pitch = (21.08/17,)\n",
"in_lat.orientation = 'x'\n",
"in_lat.outer = sodium_mod_u\n",
"\n",
"# Create rings of fuel universes that will fill the lattice\n",
"inone = [inner_u]*48\n",
"intwo = [inner_u]*42\n",
"inthree = [inner_u]*36\n",
"infour = [inner_u]*30\n",
"infive = [inner_u]*24\n",
"insix = [inner_u]*18\n",
"inseven = [inner_u]*12\n",
"ineight = [inner_u]*6\n",
"innine = [inner_u]*1\n",
"in_lat.universes = [inone,intwo,inthree,infour,infive,insix,inseven,ineight,innine]\n",
"\n",
"# Create the prism that will contain the lattice\n",
"outer_in_surface = openmc.model.hexagonal_prism(edge_length=12.1705, orientation='x')\n",
"\n",
"# Fill a cell with the lattice. This cell is filled with the lattice and contained within the prism.\n",
"main_in_assembly = openmc.Cell(cell_id=7, fill=in_lat, region=outer_in_surface & -top & +bottom)\n",
"\n",
"# Fill a cell with a material that will surround the lattice\n",
"out_in_assembly = openmc.Cell(cell_id=8, fill=sodium, region=~outer_in_surface & -top & +bottom)\n",
"\n",
"# Create a universe that contains both\n",
"main_in_u = openmc.Universe(universe_id=4, cells=[main_in_assembly, out_in_assembly])"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7f53cd4e1750>"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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sSJuvvnmmDlzZnzxi1+MW265Jc46a/h3zCqVSlQqlcHbfX19ERHx9tuHz8isAMDIO/rveFEUp72tqsfNN7/5zfj0pz8dEydOjJ/+9Kdx++23x/79++NrX/vasI9ft27d4Bmhd+tYunG0RwUARtmBAwdO+/KUUnGKidTZ2TlsXLzb1q1b48orrxy8/eijj8bKlSvjjTfeeN/tf+c734m1a9cOnpF5r/eeuXnjjTeitbU1enp6XKtzmvr7+6OlpSX27NkTU6ZMqfY4Nc/+HDn25cixL0eW/Tly+vr6Yvr06fH6668f90NIJ+uUz9ysWLEili1bdsLHzJgx44POE3Pnzo3+/v547bXXYtq0acfcXy6Xo1wuH7O+vr7egTVCpkyZYl+OIPtz5NiXI8e+HFn258g53mUpp+KU46ahoSEaGhpO+4WPZ8eOHTFhwoTTrjYA4MNpVK+56enpiYMHD0ZPT08cOXIkdu7cGRERF198cUyePDmefvrp6O3tjba2tpg4cWJs3rw51qxZE7fccsuwZ2cAAN7PqMbNN77xjXjssccGb3/yk5+MiIjNmzfHggULYty4cfHQQw/FqlWr4p133onf+73fi7Vr18bf/M3fnPRrlMvluPvuu8XQCLAvR5b9OXLsy5FjX44s+3PkjOS+POULigEAxjK/LQUApCJuAIBUxA0AkIq4AQBSqem46erqinnz5kVdXd1xvxenVCods2zYsOHMDloDTmZf9vT0xJIlS2LSpEnR0NAQX/7yl2NgYODMDlqjZsyYccxxeNddd1V7rJrx0EMPxcyZM2PChAkxe/bs+PnPf17tkWpOZ2fnMcegHyw+Oc8//3wsWbIkmpubo1QqxVNPPTXk/qIoorOzM5qbm2PixImxYMGCeOWVV6ozbA14v/150003HXOszp0795Reo6bjZmBgIJYuXRp//dd/fcLHPfLII7F3797BpaOj4wxNWDveb18eOXIkFi9eHIcOHYpf/OIX8cQTT8S///u/x+23336GJ61da9euHXIcHu/30xjqySefjJUrV8aaNWtix44dcdVVV0V7e3v09PRUe7Sa8/GPf3zIMfjyyy9Xe6SacOjQobjsssti/fr1w97/7W9/Ox544IFYv359bN26NRobG+Mzn/lMvPnmm2d40trwfvszIuLqq68ecqxu3HiKvx9ZJPDII48U9fX1w94XEcUPf/jDMzpPLTvevty4cWNx1llnFb/97W8H1/3rv/5rUS6Xi76+vjM4YW1qbW0t/uEf/qHaY9SkP/mTPyluvfXWIev+8A//sLjrrruqNFFtuvvuu4vLLrus2mPUvPf+m/LOO+8UjY2Nxd/93d8Nrvvd735X1NfXFxs2bKjChLVluH+jOzo6imuuuea0tlvTZ25O1ooVK6KhoSH++I//ODZs2BDvvPNOtUeqOS+++GLMmjUrmpubB9d99rOfjUqlEtu3b6/iZLXjvvvuiwsuuCAuv/zy6Orq8pbeSRgYGIjt27fHokWLhqxftGhRvPDCC1Waqnbt2rUrmpubY+bMmbFs2bL49a9/Xe2Ral53d3f09vYOOUbL5XLMnz/fMXoafvazn8VFF10UH/3oR2P58uWxb9++U3r+qH5D8VjwzW9+Mz796U/HxIkT46c//WncfvvtsX//fm8JnKLe3t5jfsj0/PPPj/Hjx0dvb2+VpqodX/nKV+KKK66I888/P375y1/G6tWro7u7O77//e9Xe7Qxbf/+/XHkyJFjjr1p06Y57k7RnDlz4vHHH4+PfvSj8dprr8W3vvWtmDdvXrzyyitxwQUXVHu8mnX0OBzuGH311VerMVLNa29vj6VLl0Zra2t0d3fH17/+9fjUpz4V27dvP+lvLx5zZ26Gu+jtvcu2bdtOentf+9rXoq2tLS6//PK4/fbbY+3atXH//feP4p9g7BjpfVkqlY5ZVxTFsOs/DE5l/952220xf/78+MQnPhE333xzbNiwIR5++OE4cOBAlf8UteG9x9iH+bj7oNrb2+O6666LSy+9NP78z/88nnnmmYiIIT+RwwfnGB05119/fSxevDhmzZoVS5YsiR//+MfxX//1X4PH7MkYc2duVqxYEcuWLTvhY2bMmPGBtz937tzo7++P11577ZjSzmYk92VjY2O89NJLQ9a9/vrrcfjw4fT78XhOZ/8evfJ/9+7d/q/5BBoaGuLss88+5izNvn37PrTH3UiZNGlSXHrppbFr165qj1LTjn7irLe3N5qamgbXO0ZHTlNTU7S2tp7SsTrm4qahoSEaGhpGbfs7duyICRMmHPfjzpmM5L5sa2uLrq6u2Lt37+B/wM8++2yUy+WYPXv2iLxGrTmd/btjx46IiCF/GXKs8ePHx+zZs2PTpk3x+c9/fnD9pk2b4pprrqniZLWvUqnEr371q7jqqquqPUpNmzlzZjQ2NsamTZsGfxx6YGAgnnvuubjvvvuqPF0OBw4ciD179pzS35djLm5ORU9PTxw8eDB6enriyJEjsXPnzoiIuPjii2Py5Mnx9NNPR29vb7S1tcXEiRNj8+bNsWbNmrjlllv8gut7vN++XLRoUXzsYx+LG2+8Me6///44ePBg3HHHHbF8+fKYMmVKdYcf41588cXYsmVLLFy4MOrr62Pr1q1x2223xec+97mYPn16tccb81atWhU33nhjXHnlldHW1hbf+973oqenJ2699dZqj1ZT7rjjjliyZElMnz499u3bF9/61reiv7/fV2OchLfeeit27949eLu7uzt27twZU6dOjenTp8fKlSvj3nvvjUsuuSQuueSSuPfee6Ouri5uuOGGKk49dp1of06dOjU6Ozvjuuuui6ampvjNb34TX/3qV6OhoWHI/+C8r9P6rFWVdXR0FBFxzLJ58+aiKIrixz/+cXH55ZcXkydPLurq6opZs2YVDz74YHH48OHqDj4Gvd++LIqiePXVV4vFixcXEydOLKZOnVqsWLGi+N3vfle9oWvE9u3bizlz5hT19fXFhAkTij/4gz8o7r777uLQoUPVHq1m/NM//VPR2tpajB8/vrjiiiuK5557rtoj1Zzrr7++aGpqKsaNG1c0NzcX1157bfHKK69Ue6yasHnz5mH/fuzo6CiK4n8/Dn733XcXjY2NRblcLv7sz/6sePnll6s79Bh2ov359ttvF4sWLSouvPDCYty4ccX06dOLjo6Ooqen55Reo1QURXGaEQYAMGaMuU9LAQCcDnEDAKQibgCAVMQNAJCKuAEAUhE3AEAq4gYASEXcAACpiBsAIBVxAwCkIm4AgFTEDQCQyv8FX5giw/yPStcAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 645.161x649.351 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"main_in_u.plot(origin = (0,0,0), pixels=(500, 500), width = (30.,30.), color_by = 'material')"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"id": "1SIgRmjLTuPJ"
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/aparler/.conda/envs/openmc-env/lib/python3.11/site-packages/openmc/mixin.py:70: IDWarning: Another Lattice instance already exists with id=2.\n",
" warn(msg, IDWarning)\n"
]
}
],
"source": [
"# Define a lattice for outer assemblies\n",
"out_lat = openmc.HexLattice(lattice_id=2, name='outer assembly')\n",
"out_lat.center = (0., 0.)\n",
"out_lat.pitch = (21.08/17,)\n",
"out_lat.orientation = 'x'\n",
"out_lat.outer = sodium_mod_u\n",
"\n",
"# Create rings of fuel universes that will fill the lattice\n",
"outone = [outer_u]*48\n",
"outtwo = [outer_u]*42\n",
"outthree = [outer_u]*36\n",
"outfour = [outer_u]*30\n",
"outfive = [outer_u]*24\n",
"outsix = [outer_u]*18\n",
"outseven = [outer_u]*12\n",
"outeight = [outer_u]*6\n",
"outnine = [outer_u]*1\n",
"out_lat.universes = [outone,outtwo,outthree,outfour,outfive,outsix,outseven,outeight,outnine]\n",
"\n",
"# Create the prism that will contain the lattice\n",
"outer_out_surface = openmc.model.hexagonal_prism(edge_length=12.1705)\n",
"\n",
"# Fill a cell with the lattice. This cell is filled with the lattice and contained within the prism.\n",
"main_out_assembly = openmc.Cell(cell_id=9, fill=out_lat, region=outer_out_surface & -top & +bottom)\n",
"\n",
"# Fill a cell with a material that will surround the lattice\n",
"out_out_assembly = openmc.Cell(cell_id=10, fill=sodium, region=~outer_out_surface & -top & +bottom)\n",
"\n",
"# Create a universe that contains both\n",
"main_out_u = openmc.Universe(universe_id=5, cells=[main_out_assembly, out_out_assembly])"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 283
},
"id": "pDf5K0t-eYRM",
"outputId": "97396467-3a79-41bb-e9bd-8d4ff43369cf"
},
"outputs": [],
"source": [
"# Create a hexagonal water cell\n",
"\n",
"reflector_assembly = openmc.model.hexagonal_prism(edge_length=12.1705, orientation='x')\n",
"ref_cell = openmc.Cell(cell_id=11, fill=sodium, region=reflector_assembly & -top & +bottom)\n",
"out_ref_cell = openmc.Cell(cell_id=12, fill=sodium, region=~reflector_assembly & -top & +bottom)\n",
"ref_u = openmc.Universe(universe_id=6, cells=[ref_cell, out_ref_cell])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We have 3 types of assemblies created. We can now make the entire reactor core by creating a lattice that is filled with the assemblies. "
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"id": "6lDqg4lLWD7v"
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/aparler/.conda/envs/openmc-env/lib/python3.11/site-packages/openmc/mixin.py:70: IDWarning: Another Lattice instance already exists with id=3.\n",
" warn(msg, IDWarning)\n"
]
}
],
"source": [
"# Define the core lattice\n",
"\n",
"core_lat = openmc.HexLattice(lattice_id=3, name='core')\n",
"core_lat.center = (0., 0.)\n",
"core_lat.pitch = (21.08,)\n",
"core_lat.outer = sodium_mod_u"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"id": "M1FcPGAbjH3J"
},
"outputs": [],
"source": [
"# Create rings of fuel universes that will fill the lattice\n",
"ref_one = [ref_u] * 96\n",
"ref_two = [ref_u] * 90\n",
"ref_three = [ref_u] * 84\n",
"ref_four = ([ref_u] * 5 + [main_out_u] * 4 + [ref_u] * 4) * 6\n",
"ref_five = ([ref_u] + [main_out_u] * 11) * 6\n",
"out_one = [main_out_u]*66\n",
"out_two = [main_out_u]*60\n",
"out_three = ([main_out_u]*2 + [main_in_u]*6 + [main_out_u] * 1)*6\n",
"in_one = [main_in_u]*48\n",
"in_two = [main_in_u]*42\n",
"in_three = [main_in_u]*36\n",
"in_four = [main_in_u]*30\n",
"in_five = [main_in_u]*24\n",
"in_six = [main_in_u]*18\n",
"in_seven = [main_in_u]*12\n",
"in_eight = [main_in_u]*6\n",
"in_nine = [main_in_u]*1\n",
"core_lat.universes = [ref_one,ref_two,ref_three,ref_four,ref_five,out_one,out_two,out_three,in_one,in_two,in_three,in_four,in_five,in_six,in_seven,in_eight,in_nine]"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 283
},
"id": "nzVEvJgpjyY2",
"outputId": "3f678f02-4a6c-4768-dc46-419ad37019a0",
"scrolled": true
},
"outputs": [],
"source": [
"# Create the prism that will contain the lattice\n",
"outer_core_surface = openmc.model.hexagonal_prism(edge_length=347.82, boundary_type='vacuum')\n",
"\n",
"# Fill a cell with the lattice. This cell is filled with the lattice and contained within the prism.\n",
"core = openmc.Cell(cell_id=13, fill=core_lat, region=outer_core_surface & -top & +bottom)\n",
"\n",
"# Fill a cell with a material that will surround the lattice\n",
"out_core = openmc.Cell(cell_id=14, fill=outer, region=~outer_core_surface & -top & +bottom)\n",
"\n",
"# Create a universe that contains both\n",
"main_u = openmc.Universe(universe_id=7, cells=[core, out_core])"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7f53cd351750>"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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UsQKAAAAICliBQAAAJAUsQIAAABIilgBAAAAJEWsAAAAAJIiVgAAAABJESsAAACApIgVAAAAQFLECgAAACApYgUAAACQFLECAAAASIpYAQAAACRFrAAAAACSIlYAAAAASRErAAAAgKSIFQAAAEBSxAoAAAAgKWIFAAAAkBSxAgAAAEiKWAEAAAAkRawAAAAAkiJWAAAAAEkRKwAAAICkiBUAAABAUsQKAAAAICliBQAAAJAUsQIAAABIilgBAAAAJEWsAAAAAJIiVgAAAABJESsAAACApIgVAAAAQFLECgAAACApYgUAAACQFLECAAAASIpYAQAAACRFrAAAAACSIlYAAAAASRErAAAAgKSIFQAAAEBSxAoAAAAgKWIFAAAAkBSxAgAAAEiKWAEAAAAkRawAAAAAkiJWAAAAAEkRKwAAAICkiBUAAABAUsQKAAAAICliBQAAAJAUsQIAAABIilgBAAAAJEWsAAAAAJIiVgAAAABJESsAAACApIgVAAAAQFLECgAAACApYgUAAACQFLECAAAASIpYAQAAACRFrAAAAACSIlYAAAAASRErAAAAgKSIFQAAAEBSxAoAAAAgKWIFAAAAkBSxAgAAAEiKWAEAAAAkRawAAAAAkiJWAAAAAEkRKwAAAICkiBUAAABAUsQKAAAAICliBQAAAJAUsQIAAABIilgBAAAAJEWsAAAAAJIiVgAAAABJESsAAACApIgVAAAAQFLECgAAACApYgUAAACQFLECAAAASIpYAQAAACRFrAAAAACSIlYAAAAASRErAAAAgKRUNFY89NBDMXfu3Ojo6IiGhob44Q9/2O/rWZbF0qVLo6OjI5qamuLUU0+Np556qt+a3t7euOKKK6K1tTXGjRsX55xzTmzbtq2Smw0AAADUUEVjxZ49e+Ld73533H777QN+/eabb47ly5fH7bffHuvWrYv29vaYPXt27N69u7Rm4cKFce+998bKlStj7dq18cILL8TZZ58de/fureSmAwAAADVyZCW/+ZlnnhlnnnnmgF/Lsiy+/OUvxxe+8IX4l3/5l4iI+Na3vhVtbW3x3e9+Nz7zmc9Ed3d3fPOb34xvf/vb8eEPfzgiIv7rv/4rOjs742c/+1mcccYZldx8AAAAoAZqds+KZ555Jrq6umLOnDmlxxobG2PmzJnx8MMPR0TEhg0b4uWXX+63pqOj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qXH//ffHm9/85lpvGgAAAFBmuYgVERGXXXZZXHbZZbXeDAAAAKDCkr9nBQAAAFAsYgUAAACQFLECAAAASIpYAQAAACRFrAAAAACSIlYAAAAASRErAAAAgKSIFQAAAEBSxAoAAAAgKWIFAAAAkBSxAgAAAEiKWAEAAAAkRawAAAAAkiJWAAAAAEkRKwAAAICkiBUAAABAUsQKAAAAICliBQAAAJAUsQIAAABIilgBAAAAJEWsAAAAAJIiVgAAAABJESsAAACApIgVAAAAQFLECgAAACApYgUAAACQFLECAAAASIpYAQAAACRFrAAAAACSIlYAAAAASRErAAAAgKSIFQAAAEBSxAoAAAAgKWIFAAAAkBSxAgAAAEiKWAEAAAAkRawAAAAAkiJWAAAAAEkRKwAAAICkiBUAAABAUsQKAAAAICliBQAAAJAUsQIAAABIilgBAAAAJEWsAAAAAJIiVgAAAABJESsAAACApIgVAAAAQFLECgAAACApYgUAAACQFLECAAAASIpYAQAAACRFrAAAAACSIlYAAAAASRErAAAAgKSIFQAAAEBSxAoAAAAgKWIFAAAAkBSxAgAAAEiKWAEAAAAkRawAAAAAkiJWAAAAAEkRKwAAAICkiBUAAABAUsQKAAAAICliBQAAAJAUsQIAAABIilgBAAAAJEWsAAAAAJIiVgAAAABJESsAAACApIgVAAAAQFLECgAAACApYgUAAACQFLECAAAASIpYAQAAACRFrAAAAACSIlYAAAAASRErAAAAgKSIFQAAAEBSxAoAAAAgKWIFAAAAkBSxAgAAAEiKWAEAAAAkRawAAAAAkiJWAAAAAEkRKwAAAICkiBUAAABAUsQKAAAAICliBQAAAJAUsQIAAABIilgBAAAAJEWsAAAAAJIiVgAAAABJESsAAACApIgVAAAAQFLECgAAACApYgUAAACQFLECAAAASIpYAQAAACRFrAAAAACSIlYAAAAASRErAAAAgKSIFQAAAEBSxAoAAAAgKWIFAAAAkBSxAgAAAEiKWAEAAAAkRawAAAAAkiJWAAAAAEkRKwAAAICkiBUAAABAUsQKAAAAICliBQAAAJAUsQIAAABIilgBAAAAJEWsAAAAAJIiVgAAAABJESsAAACApIgVAAAAQFLECgAAACApYgUAAACQFLECAAAASIpYAQAAACRFrAAAAACSIlYAAAAASRErAAAAgKSIFQAAAEBSxAoAAAAgKWIFAAAAkBSxAgAAAEiKWAEAAAAkRawAAAAAkiJWAAAAAEkRKwAAAICkiBUAAABAUsQKAAAAICliBQAAAJAUsQIAAABIilgBAAAAJKWiseKGG26IGTNmxNixY+ONb3zjgGu2bNkSc+fOjXHjxkVra2tceeWV0dfX12/Npk2bYubMmdHU1BTHHntsXH/99ZFlWSU3HQAAAKiRIyv5zfv6+uL888+P6dOnxze/+c0Dvr53794466yz4phjjom1a9fGc889F/PmzYssy2LFihUREdHT0xOzZ8+OWbNmxbp16+Lpp5+O+fPnx7hx4+Kqq66q5OYDAAAANVDRWPHFL34xIiLuuuuuAb++atWq+M1vfhNbt26Njo6OiIj4t3/7t5g/f37ccMMN0dzcHN/5znfi73//e9x1113R2NgYU6dOjaeffjqWL18eixYtioaGhkr+CAAAAECV1fSeFY888khMnTq1FCoiIs4444zo7e2NDRs2lNbMnDkzGhsb+63Zvn17bN68ecDv29vbGz09Pf0+AAAAgHyoaazo6uqKtra2fo9NmDAhxowZE11dXYOu2ff5vjX7W7ZsWbS0tJQ+Ojs7K7D1AAAAQCUMO1YsXbo0GhoaDvqxfv36IX+/gS7jyLKs3+P7r9l3c83BLgFZvHhxdHd3lz62bt065O0BAAAAamvY96xYsGBBXHjhhQddc/zxxw/pe7W3t8djjz3W77Fdu3bFyy+/XJqeaG9vP2CCYufOnRERB0xc7NPY2NjvshEAAAAgP4YdK1pbW6O1tbUsf/n06dPjhhtuiB07dsSkSZMi4rWbbjY2Nsa0adNKa5YsWRJ9fX0xZsyY0pqOjo4hRxEAAAAgPyp6z4otW7bE448/Hlu2bIm9e/fG448/Ho8//ni88MILERExZ86ceMc73hEXX3xxbNy4Mf7nf/4nrr766vj0pz8dzc3NERFx0UUXRWNjY8yfPz+efPLJuPfee+PGG2/0TiAAAABQpyr61qXXXnttfOtb3yp9/k//9E8REfHggw/GqaeeGqNGjYqf/OQncdlll8UHPvCBaGpqiosuuihuvfXW0p9paWmJ1atXx+WXXx4nn3xyTJgwIRYtWhSLFi2q5KYDAAAANdKQ7btbZR3r6emJlpaWaLg7omFsrbdmaH48/rxabwIAAAA5MHf392u9CUOWvRiRXRDR3d1duqJiIDV961IAAACA/YkVAAAAQFLECgAAACApYgUAAACQFLECAAAASIpYAQAAACRFrAAAAACSIlYAAAAASRErAAAAgKSIFQAAAEBSxAoAAAAgKWIFAAAAkBSxAgAAAEiKWAEAAAAkRawAAAAAkiJWAAAAAEkRKwAAAICkiBUAAABAUsQKAAAAICliBQAAAJAUsQIAAABIilgBAAAAJEWsAAAAAJIiVgAAAABJESsAAACApIgVAAAAQFLECgAAACApYgUAAACQFLECAAAASIpYAQAAACRFrAAAAACSIlYAAAAASRErAAAAgKSIFQAAAEBSxAoAAAAgKWIFAAAAkBSxAgAAAEiKWAEAAAAkRawAAAAAkiJWAAAAAEkRKwAAAICkiBUAAABAUsQKAAAAICliBQAAAJAUsQIAAABIilgBAAAAJEWsAAAAAJIiVgAAAABJESsAAACApIgVAAAAQFLECgAAACApYgUAAACQFLECAAAASIpYAQAAACRFrAAAAACSIlYAAAAASRErAAAAgKSIFQAAAEBSxAoAAAAgKWIFAAAAkBSxAgAAAEiKWAEAAAAkRawAAAAAkiJWAAAAAEkRKwAAAICkiBUAAABAUsQKAAAAICliBQAAAJAUsQIAAABIilgBAAAAJEWsAAAAAJIiVgAAAABJESsAAACApIgVAAAAQFLECgAAACApYgUAAACQFLECAAAASIpYAQAAACRFrAAAAACSIlYAAAAASRErAAAAgKSIFQAAAEBSxAoAAAAgKWIFAAAAkBSxAgAAAEiKWAEAAAAkRawAAAAAkiJWAAAAAEkRKwAAAICkiBUAAABAUsQKAAAAICliBQAAAJAUsQIAAABIilgBAAAAJEWsAAAAAJIiVgAAAABJESsAAACApIgVAAAAQFLECgAAACApYgUAAACQFLECAAAASIpYAQAAACRFrAAAAACSIlYAAAAASRErAAAAgKSIFYmau/v7td4EAAAAElev545H1noDGNy+ne7H48+r8ZYAAACQknqNFPuIFTkgWgAAABBR/5FiH7EiR0QLAACAYipKpNjHPStyqGg7KQAAQJEV8RzQZEVOmbIAAACob0WMFPuIFTknWgAAANSXIkeKfVwGUifszAAAAPnn3O41JivqiCkLAACAfBIp+hMr6pBoAQAA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",
"text/plain": [
"<Figure size 1290.32x1298.7 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"main_u.plot(origin = (0,0,0), pixels=(1000, 1000), width = (660.,660.), color_by = 'material')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We now have an entire reactor core defined! We can export the geometry and run the code. "
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"geom = openmc.Geometry(main_u)\n",
"geom.export_to_xml()"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "5mPhUg7QWVw4",
"outputId": "f110f4ab-94b5-477b-8c55-cab8ed7c3116"
},
"outputs": [],
"source": [
"# OpenMC simulation parameters\n",
"\n",
"lower_left = [-300, -300, -50]\n",
"upper_right = [300, 300, 50]\n",
"uniform_dist = openmc.stats.Box(lower_left, upper_right, only_fissionable=True)\n",
"src = openmc.IndependentSource(space=uniform_dist)\n",
"\n",
"settings = openmc.Settings()\n",
"settings.source = src\n",
"settings.batches = 100\n",
"settings.inactive = 10\n",
"settings.particles = 1000\n",
"\n",
"settings.export_to_xml()"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"id": "A_f292ebWZFM",
"outputId": "d6710d6c-aea6-43c9-e63c-b2e62ea7ea08"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" %%%%%%%%%%%%%%%\n",
" %%%%%%%%%%%%%%%%%%%%%%%%\n",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n",
" %%%%%%%%%%%%%%%%%%%%%%%%\n",
" %%%%%%%%%%%%%%%%%%%%%%%%\n",
" ############### %%%%%%%%%%%%%%%%%%%%%%%%\n",
" ################## %%%%%%%%%%%%%%%%%%%%%%%\n",
" ################### %%%%%%%%%%%%%%%%%%%%%%%\n",
" #################### %%%%%%%%%%%%%%%%%%%%%%\n",
" ##################### %%%%%%%%%%%%%%%%%%%%%\n",
" ###################### %%%%%%%%%%%%%%%%%%%%\n",
" ####################### %%%%%%%%%%%%%%%%%%\n",
" ####################### %%%%%%%%%%%%%%%%%\n",
" ###################### %%%%%%%%%%%%%%%%%\n",
" #################### %%%%%%%%%%%%%%%%%\n",
" ################# %%%%%%%%%%%%%%%%%\n",
" ############### %%%%%%%%%%%%%%%%\n",
" ############ %%%%%%%%%%%%%%%\n",
" ######## %%%%%%%%%%%%%%\n",
" %%%%%%%%%%%\n",
"\n",
" | The OpenMC Monte Carlo Code\n",
" Copyright | 2011-2023 MIT, UChicago Argonne LLC, and contributors\n",
" License | https://docs.openmc.org/en/latest/license.html\n",
" Version | 0.13.3\n",
" Git SHA1 | 50e39a4e20dc9e0f3d7ccf07333f6a5e6c797c8c\n",
" Date/Time | 2023-10-31 23:03:13\n",
" OpenMP Threads | 4\n",
"\n",
" Reading settings XML file...\n",
" Reading cross sections XML file...\n",
" Reading materials XML file...\n",
" Reading geometry XML file...\n",
" Reading Na23 from /opt/xdata/endfb-vii.1-hdf5/neutron/Na23.h5\n",
" Reading U235 from /opt/xdata/endfb-vii.1-hdf5/neutron/U235.h5\n",
" Reading U238 from /opt/xdata/endfb-vii.1-hdf5/neutron/U238.h5\n",
" Reading Pu238 from /opt/xdata/endfb-vii.1-hdf5/neutron/Pu238.h5\n",
" Reading Pu239 from /opt/xdata/endfb-vii.1-hdf5/neutron/Pu239.h5\n",
" Reading Pu240 from /opt/xdata/endfb-vii.1-hdf5/neutron/Pu240.h5\n",
" Reading Pu241 from /opt/xdata/endfb-vii.1-hdf5/neutron/Pu241.h5\n",
" Reading Pu242 from /opt/xdata/endfb-vii.1-hdf5/neutron/Pu242.h5\n",
" Reading Am241 from /opt/xdata/endfb-vii.1-hdf5/neutron/Am241.h5\n",
" Reading O16 from /opt/xdata/endfb-vii.1-hdf5/neutron/O16.h5\n",
" Reading Cu63 from /opt/xdata/endfb-vii.1-hdf5/neutron/Cu63.h5\n",
" Reading O17 from /opt/xdata/endfb-vii.1-hdf5/neutron/O17.h5\n",
" Reading Al27 from /opt/xdata/endfb-vii.1-hdf5/neutron/Al27.h5\n",
" Minimum neutron data temperature: 294 K\n",
" Maximum neutron data temperature: 294 K\n",
" Preparing distributed cell instances...\n",
" Reading plot XML file...\n",
" Writing summary.h5 file...\n",
" Maximum neutron transport energy: 20000000 eV for Na23\n",
" Initializing source particles...\n",
"\n",
" ====================> K EIGENVALUE SIMULATION <====================\n",
"\n",
" Bat./Gen. k Average k\n",
" ========= ======== ====================\n",
" 1/1 1.04699\n",
" 2/1 1.12523\n",
" 3/1 1.17382\n",
" 4/1 1.16683\n",
" 5/1 1.18119\n",
" 6/1 1.13185\n",
" 7/1 1.24435\n",
" 8/1 1.23315\n",
" 9/1 1.24378\n",
" 10/1 1.20888\n",
" 11/1 1.22414\n",
" 12/1 1.32255 1.27335 +/- 0.04921\n",
" 13/1 1.24438 1.26369 +/- 0.03000\n",
" 14/1 1.25849 1.26239 +/- 0.02126\n",
" 15/1 1.28094 1.26610 +/- 0.01688\n",
" 16/1 1.28031 1.26847 +/- 0.01398\n",
" 17/1 1.23444 1.26361 +/- 0.01278\n",
" 18/1 1.29480 1.26751 +/- 0.01173\n",
" 19/1 1.26095 1.26678 +/- 0.01037\n",
" 20/1 1.26231 1.26633 +/- 0.00929\n",
" 21/1 1.26926 1.26660 +/- 0.00841\n",
" 22/1 1.20316 1.26131 +/- 0.00932\n",
" 23/1 1.22121 1.25823 +/- 0.00911\n",
" 24/1 1.20218 1.25423 +/- 0.00934\n",
" 25/1 1.22391 1.25220 +/- 0.00892\n",
" 26/1 1.25396 1.25231 +/- 0.00835\n",
" 27/1 1.28043 1.25397 +/- 0.00801\n",
" 28/1 1.22878 1.25257 +/- 0.00768\n",
" 29/1 1.22032 1.25087 +/- 0.00746\n",
" 30/1 1.24110 1.25038 +/- 0.00710\n",
" 31/1 1.29465 1.25249 +/- 0.00707\n",
" 32/1 1.28911 1.25416 +/- 0.00695\n",
" 33/1 1.24766 1.25387 +/- 0.00664\n",
" 34/1 1.26931 1.25452 +/- 0.00639\n",
" 35/1 1.23518 1.25374 +/- 0.00618\n",
" 36/1 1.22691 1.25271 +/- 0.00603\n",
" 37/1 1.27089 1.25338 +/- 0.00584\n",
" 38/1 1.26381 1.25376 +/- 0.00564\n",
" 39/1 1.26946 1.25430 +/- 0.00547\n",
" 40/1 1.29565 1.25568 +/- 0.00546\n",
" 41/1 1.30199 1.25717 +/- 0.00549\n",
" 42/1 1.29832 1.25846 +/- 0.00547\n",
" 43/1 1.30429 1.25985 +/- 0.00548\n",
" 44/1 1.23412 1.25909 +/- 0.00537\n",
" 45/1 1.19238 1.25718 +/- 0.00555\n",
" 46/1 1.26488 1.25740 +/- 0.00540\n",
" 47/1 1.20769 1.25605 +/- 0.00542\n",
" 48/1 1.27040 1.25643 +/- 0.00529\n",
" 49/1 1.26829 1.25673 +/- 0.00516\n",
" 50/1 1.26095 1.25684 +/- 0.00503\n",
" 51/1 1.26016 1.25692 +/- 0.00491\n",
" 52/1 1.29856 1.25791 +/- 0.00489\n",
" 53/1 1.22021 1.25704 +/- 0.00485\n",
" 54/1 1.24146 1.25668 +/- 0.00476\n",
" 55/1 1.31027 1.25787 +/- 0.00480\n",
" 56/1 1.33790 1.25961 +/- 0.00501\n",
" 57/1 1.32021 1.26090 +/- 0.00506\n",
" 58/1 1.27750 1.26125 +/- 0.00497\n",
" 59/1 1.25761 1.26117 +/- 0.00487\n",
" 60/1 1.22570 1.26046 +/- 0.00482\n",
" 61/1 1.19148 1.25911 +/- 0.00492\n",
" 62/1 1.22782 1.25851 +/- 0.00486\n",
" 63/1 1.28075 1.25893 +/- 0.00478\n",
" 64/1 1.26974 1.25913 +/- 0.00470\n",
" 65/1 1.24164 1.25881 +/- 0.00462\n",
" 66/1 1.21168 1.25797 +/- 0.00462\n",
" 67/1 1.34108 1.25943 +/- 0.00476\n",
" 68/1 1.28362 1.25984 +/- 0.00470\n",
" 69/1 1.24096 1.25952 +/- 0.00463\n",
" 70/1 1.19983 1.25853 +/- 0.00466\n",
" 71/1 1.19210 1.25744 +/- 0.00471\n",
" 72/1 1.29086 1.25798 +/- 0.00467\n",
" 73/1 1.22653 1.25748 +/- 0.00462\n",
" 74/1 1.28594 1.25793 +/- 0.00457\n",
" 75/1 1.26671 1.25806 +/- 0.00450\n",
" 76/1 1.22778 1.25760 +/- 0.00445\n",
" 77/1 1.29830 1.25821 +/- 0.00443\n",
" 78/1 1.26676 1.25833 +/- 0.00436\n",
" 79/1 1.34382 1.25957 +/- 0.00448\n",
" 80/1 1.34639 1.26081 +/- 0.00458\n",
" 81/1 1.24390 1.26058 +/- 0.00452\n",
" 82/1 1.23100 1.26016 +/- 0.00448\n",
" 83/1 1.25639 1.26011 +/- 0.00442\n",
" 84/1 1.27107 1.26026 +/- 0.00436\n",
" 85/1 1.23460 1.25992 +/- 0.00432\n",
" 86/1 1.25413 1.25984 +/- 0.00426\n",
" 87/1 1.26993 1.25997 +/- 0.00421\n",
" 88/1 1.30799 1.26059 +/- 0.00420\n",
" 89/1 1.29570 1.26103 +/- 0.00417\n",
" 90/1 1.23098 1.26066 +/- 0.00413\n",
" 91/1 1.24434 1.26046 +/- 0.00408\n",
" 92/1 1.21353 1.25988 +/- 0.00408\n",
" 93/1 1.23516 1.25959 +/- 0.00404\n",
" 94/1 1.26028 1.25959 +/- 0.00399\n",
" 95/1 1.24533 1.25943 +/- 0.00394\n",
" 96/1 1.24886 1.25930 +/- 0.00390\n",
" 97/1 1.22476 1.25891 +/- 0.00388\n",
" 98/1 1.24816 1.25878 +/- 0.00383\n",
" 99/1 1.29129 1.25915 +/- 0.00381\n",
" 100/1 1.18933 1.25837 +/- 0.00384\n",
" Creating state point statepoint.100.h5...\n",
"\n",
" =======================> TIMING STATISTICS <=======================\n",
"\n",
" Total time for initialization = 1.3231e+00 seconds\n",
" Reading cross sections = 1.2915e+00 seconds\n",
" Total time in simulation = 1.9764e+00 seconds\n",
" Time in transport only = 1.9524e+00 seconds\n",
" Time in inactive batches = 1.8251e-01 seconds\n",
" Time in active batches = 1.7939e+00 seconds\n",
" Time synchronizing fission bank = 8.0367e-03 seconds\n",
" Sampling source sites = 7.1113e-03 seconds\n",
" SEND/RECV source sites = 8.7842e-04 seconds\n",
" Time accumulating tallies = 4.3793e-05 seconds\n",
" Time writing statepoints = 3.8865e-03 seconds\n",
" Total time for finalization = 5.4700e-07 seconds\n",
" Total time elapsed = 3.3079e+00 seconds\n",
" Calculation Rate (inactive) = 54792.6 particles/second\n",
" Calculation Rate (active) = 50169.6 particles/second\n",
"\n",
" ============================> RESULTS <============================\n",
"\n",
" k-effective (Collision) = 1.26011 +/- 0.00343\n",
" k-effective (Track-length) = 1.25837 +/- 0.00384\n",
" k-effective (Absorption) = 1.26192 +/- 0.00372\n",
" Combined k-effective = 1.26163 +/- 0.00219\n",
" Leakage Fraction = 0.11733 +/- 0.00149\n",
"\n"
]
}
],
"source": [
"openmc.run()"
]
}
],
"metadata": {
"colab": {
"collapsed_sections": [],
"name": "FastReactor_3layers.ipynb",
"provenance": []
},
"kernelspec": {
"display_name": "openmc-env",
"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.11.6"
}
},
"nbformat": 4,
"nbformat_minor": 1
}