Skip to content

Instantly share code, notes, and snippets.

@paulromano
Created September 21, 2021 12:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save paulromano/4b8fcc6bc88b186cfe562e7d4a00ee1b to your computer and use it in GitHub Desktop.
Save paulromano/4b8fcc6bc88b186cfe562e7d4a00ee1b to your computer and use it in GitHub Desktop.
Example of modeling a lattice with large rods overlapping multiple lattice positions
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import openmc\n",
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"fuel = openmc.Material()\n",
"fuel.add_nuclide('U235', 1.0)\n",
"fuel.set_density('g/cm3', 4.5)\n",
"\n",
"water = openmc.Material()\n",
"water.add_nuclide('H1', 2.0)\n",
"water.add_nuclide('O16', 1.0)\n",
"water.add_s_alpha_beta('c_H_in_H2O')\n",
"water.set_density('g/cm3', 1.0)\n",
"\n",
"metal = openmc.Material()\n",
"metal.add_element('Zr', 1.0)\n",
"metal.set_density('g/cm3', 3.0)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x147893955e50>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fuel_cyl = openmc.ZCylinder(r=0.35)\n",
"pin = openmc.model.pin([fuel_cyl], [fuel, water])\n",
"\n",
"pitch = 1.0\n",
"water_box1 = openmc.model.rectangular_prism(2*pitch, 2*pitch, origin=(pitch, pitch, 0.))\n",
"metal_cyl1 = openmc.ZCylinder(x0=pitch, y0=pitch, r=0.85)\n",
"metal_cell1 = openmc.Cell(fill=metal, region=-metal_cyl1)\n",
"water_near_metal1 = openmc.Cell(fill=water, region=+metal_cyl1 & water_box1)\n",
"\n",
"water_box2 = openmc.model.rectangular_prism(2*pitch, 2*pitch, origin=(-pitch, -pitch, 0.))\n",
"metal_cyl2 = openmc.ZCylinder(x0=-pitch, y0=-pitch, r=0.85)\n",
"metal_cell2 = openmc.Cell(fill=metal, region=-metal_cyl2)\n",
"water_near_metal2 = openmc.Cell(fill=water, region=+metal_cyl2 & water_box2)\n",
"\n",
"lattice = openmc.RectLattice()\n",
"lattice.lower_left = (-5*pitch, -5*pitch)\n",
"lattice.pitch = (pitch, pitch)\n",
"lattice.universes = np.full((10, 10), pin)\n",
"\n",
"outer_box = openmc.model.rectangular_prism(10*pitch, 10*pitch, boundary_type='reflective')\n",
"main_cell = openmc.Cell()\n",
"main_cell.region = outer_box & ~water_box1 & ~water_box2\n",
"main_cell.fill = lattice\n",
"\n",
"main_universe = openmc.Universe(cells=[main_cell, metal_cell1, water_near_metal1, metal_cell2, water_near_metal2])\n",
"main_universe.plot(width=(10*pitch, 10*pitch))"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x147891811130>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"cyl_top_right = openmc.ZCylinder(x0=-pitch/2, y0=-pitch/2, r=0.85)\n",
"pin_top_right = openmc.model.pin([cyl_top_right], [metal, water])\n",
"cyl_top_left = openmc.ZCylinder(x0=pitch/2, y0=-pitch/2, r=0.85)\n",
"pin_top_left = openmc.model.pin([cyl_top_left], [metal, water])\n",
"cyl_bottom_left = openmc.ZCylinder(x0=pitch/2, y0=pitch/2, r=0.85)\n",
"pin_bottom_left = openmc.model.pin([cyl_bottom_left], [metal, water])\n",
"cyl_bottom_right = openmc.ZCylinder(x0=-pitch/2, y0=pitch/2, r=0.85)\n",
"pin_bottom_right = openmc.model.pin([cyl_bottom_right], [metal, water])\n",
"\n",
"lattice = openmc.RectLattice()\n",
"lattice.lower_left = (-5*pitch, -5*pitch)\n",
"lattice.pitch = (pitch, pitch)\n",
"p = pin\n",
"p1 = pin_top_right\n",
"p2 = pin_top_left\n",
"p3 = pin_bottom_left\n",
"p4 = pin_bottom_right\n",
"lattice.universes = [\n",
" [p, p, p, p, p, p, p, p, p, p],\n",
" [p, p, p, p, p, p, p, p, p, p],\n",
" [p, p, p, p, p, p, p, p, p, p],\n",
" [p, p, p, p, p, p2, p1, p, p, p],\n",
" [p, p, p, p, p, p3, p4, p, p, p],\n",
" [p, p, p, p2, p1, p, p, p, p, p],\n",
" [p, p, p, p3, p4, p, p, p, p, p],\n",
" [p, p, p, p, p, p, p, p, p, p],\n",
" [p, p, p, p, p, p, p, p, p, p],\n",
" [p, p, p, p, p, p, p, p, p, p],\n",
"]\n",
"\n",
"outer_box = openmc.model.rectangular_prism(10*pitch, 10*pitch, boundary_type='reflective')\n",
"main_cell = openmc.Cell(fill=lattice, region=outer_box)\n",
"\n",
"main_universe = openmc.Universe(cells=[main_cell, metal_cell1, water_near_metal1, metal_cell2, water_near_metal2])\n",
"main_universe.plot(width=(10*pitch, 10*pitch))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3.8.3 64-bit ('3.8.3': pyenv)",
"language": "python",
"name": "python38364bit383pyenva1b8e386f2164b5281dd9a75c7eb3845"
},
"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.8.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment