Skip to content

Instantly share code, notes, and snippets.

@paulromano
Created June 7, 2022 11:47
Show Gist options
  • Save paulromano/574916754aa30393028e26af30809fe3 to your computer and use it in GitHub Desktop.
Save paulromano/574916754aa30393028e26af30809fe3 to your computer and use it in GitHub Desktop.
Demonstration of rotating a parallelepiped
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "6345ddf0",
"metadata": {},
"outputs": [],
"source": [
"import openmc"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "f79e1ca1",
"metadata": {},
"outputs": [],
"source": [
"# Create material to add to cell\n",
"m1 = openmc.Material()\n",
"m1.add_nuclide('U235', 0.01)\n",
"\n",
"# Create a non-rotated parallelepiped\n",
"rpp = openmc.model.RectangularParallelepiped(\n",
" 0., 10.,\n",
" -5., 5.,\n",
" 0., 10.,\n",
")\n",
"\n",
"# Take the interior of the parallelepiped and rotate it 45 degrees about the y axis\n",
"rotated_region = (-rpp).rotate((0., -45., 0.))\n",
"\n",
"# Now create two cells (inside/outside parallelepiped) and put them in a universe\n",
"cell1 = openmc.Cell(fill=m1, region=rotated_region)\n",
"cell2 = openmc.Cell(region=~rotated_region)\n",
"univ = openmc.Universe(cells=[cell1, cell2])"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "ca4c94b3",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x149aaeca2400>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAALoAAACvCAYAAABKFcTZAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAANKUlEQVR4nO3d/Y9c1X3H8fdnduMFkwDrBrmO98FL6lQCVbUaC6kKiYyatsAv9pLGz0/EFakU/gAqIHFFSBqClZ/StERF4ScoaYRBDcH2LhDbUaTEUal317uLDSWxLT8BtdcGs/bsfvvD3IWJM+vdnbln7p0535e02tmZ8TnH44/PnnvnfufIzHCu2RWyHoBz9eBBd1HwoLsoeNBdFDzoLgoedBeF1qwHUG6+FtgNhcVZD8M1qJOTg2+b2U2VHstV0G8oLGbLtTuv+hwDlEJf3k7ztfOd9/7kt9M91nBLlzReNG8nvnYaLujOVcOD7qLgQXdRSCXokp6UdFrSYNl92yUdl/Ra8nV3Gn05V420ZvQfAXdWuP97ZrYs+Xoxpb6cm7NUgm5me4F302jLuRBCr9Hvl3QwWdq0B+7LuWmFDPoPgE8Dy4ATwI5KT5J0n6QDkg68b/5LwYURLOhmdsrMJsxsEvghcNs0z3vCzJab2fL5WhBqOC5ywYIuaVHZj73A4HTPdS60VK51kfQ0sAL4pKRjwDeAFZKWUbpM4S3gq2n05Vw1Ugm6ma2rcPe/p9G2AzAWr9wPiOPPf470riCJR66uXnR/SK1FOr60l+61LwNQmHeZY899Hiv6P91c+KuVa0bHl/bSs3n3h/f0bN0FwNEfr8Bn9tnza13yqjBJxz0fzeTlutb3s7h3PxQmMxhYY/IZPYfUMkHn6lfoXtePWv7wA6Za5hW5+d4XaWm7xO+eXQGTLfUfZINpuBk9rc8Vy3M7i1ftp3t95ZBPUYvRvaGPjpW/CD6eZmin4Wb0vFSshGhHrUU6evfRta4fFWb+p1XB6N60G7VMcmzn7VixNZd/rzy003BBb15G59/9nO6Ne9Ac/lVb2oos2foSFIyjz67AD1Ara7ilS1OS0XHPPrrWvjynkH/4xwXd6/pKB6jyD42txGf0jJUOPF+la20/hdbqz6IU5k3Qs/VntLRd4uiPV2ATfoBazmf0jHX07qN7w56aQj6l0DpJ98Y9ybuorpzP6BlRy0TpwHN9X1XLlWnbFXRv3AOC4ztv95k94UHPgozO1a/SvWFuB56z1dJWpOfen6HWCY4+eweYH6CGLI5eIGmPpMPJd68wAsBKM/na/iAhnyJB9/q+ZBnjB6ghi6MfAPrNbCnQn/wcNbUW6Vr7Mks270plTT6TQuskPVtfonP1K6hlInh/eRayOHol8FRy+ylgVRp9NbKO3n10b9xD4WP1C13hYxMs2bybjt59deszj0Ku0Rea2Ynk9klgYcC+ck2FCRb37i+945nBclmCrvV92GSBYzs/F+W1MXU5GDUzkyq/kyHpPuA+gOv1qXoMp74Kk3SueYXu9X0ow5O5UweohXmX+d1/3AEW15nlkH/bU1N1o8n305We1NzF0UbHqn2lqxBzkCsVrHSAuiq+A9SQL/8LwJbk9hbg+YB95Y5ai3SueYUlm/Zc9SrEelOL0bN5N51ffhW1FrMeTt2kdXrxaeCXwJ9KOiZpG/DPwF9LOgx8Mfk5Eh9VBhXm5S9MhXlFerbuSg5Q8/OfMKSQxdEAf5VG+w2lMFlarlSoDMqbrvX9TBZbSwXXkzlYWwXk74ymaKbKoLyJqVKp4f4b56VipVI7s6kMyptYKpUabkbPS8VKeTtzrQzKmxgqlRou6PlTXWVQ3jR7pVLDLV1ypcbKoLxp5koln9GrlFZlUN40a6WSz+hVSrMyKG+asVLJg16l9s+OZj2EoCbeu4azAzdnPYzUeNCrNPTNzYwd6s56GEFcPNnO4PatXDjckfVQUuNBr9LEe9cysmMN54a6sSY6biteuIbRx9cwNryEZjrz4kGvwfipBQxu38r515tj5ht/5xMMPLSNseHm+03lQa/RxPvXcuibmzl7sCfrodTkgzM3MPLYOs4f7qSZZvIpwYMu6S1JA8nu0QdC95eFS+9ez8iONYyNdDbkMqb4fhvD39rAucHmOfi8Ur1m9DuS3aOX16m/urv09o0N+Wv/4sl2Bh7+Cudf78x6KEH50iVFExevYeS7azg3uKQhZvbLY/MZ3bGG8yPdNONypVw9gm7Abkm/SepDf0+zbag7fnoBQ49szv0MeensdQx8/d6mPUV6pXoE/XYz+wvgLuBrkr5Q/mAz1owWL8xn6J+2cHYgnweoH5y6kUPf2siFJj3wrCR40M3sePL9NPAc0+wg3Wwun/s4oztWMzbclatlTPH9Noa/s56xoXz+JwwlaNAlXSfpE1O3gb8hoh2kx8+0M/DQNs6PdGU9FKA0kw88tI3zo/leVoUQekZfCOyX9D/Ar4CfmtlLtTSYl4qV2bYz8UEbw4+ty3wZc+nsdYzuWM350S5ms1xptNd5JkGDbmZvmtmfJ1+3mtmjtbaZl4qVubQzfrqd4W9vYGw0m/Psl8fmM7h9K+eGZn+evBFf56vx04t1cvncxxn8xr2MDS2pa78XT7Yz9MimprpAqxoe9Doqnp/PyI7VnDtUnwPU4nttjHx3LWOHeojl7Mp0POh1Nn56AYNfD39A+MGZGxh46O9zcyCcNQ96BiYutjH87Q3BLgQbf+d6Rh9fk7xpFfdMPsWDnpHxt29k5LF1qR+gFi9cw9Ajm5r6Aq1qeNAzdOn/rmfg4a+k9jZ8M1YGpcWDnrG0KpWatTIoLR70HKi1UqmZK4PS4kHPiWorlZq9MigtHvQcmWulUgyVQWnxoOfMbCuVYqkMSks9akbvlDQq6Yik6PcanY2ZKpViqgxKS+jLdFuA71MqurgFWCfplpB9NovpKpViqwxKS+gZ/TbgSHIV4yXgGUob7bpZuLJSKcbKoLSEDvpi4GjZz8eS+9wsTVUqnT3YE2VlUFoy/9jopt9QNwXjZ9oZeHgbVmyOj3DOQugZ/ThQvsjsSO770FyLo/NSsVLvdqzYSoyVQWm1EzrovwaWSuqRNA9YS2mj3arlpWLF22msdoIuXcysKOl+YBfQAjxpZkMh+3SukuBrdDN7EXgxdD/OXY2/M+qi4EF3UfCguyh40F0UPOguCh50FwUPuouCB91FwYPuouBBd1HwoLsoeNBdFIIFXdJ2SceTjXRfk3R3qL6cm0noqxe/Z2aPB+7DuRk13NIlLxUr3k5jtRM66PdLOijpSUntlZ4w1w1181Kx4u00Vjs1BV1Sn6TBCl8rgR8AnwaWASeAHZXaaMYNdV3+1LRGN7MvzuZ5kn4I/FctfTlXi5BnXRaV/dhLRBvpuvwJedblMUnLKB1HvAV8NWBfzl1VsKCb2aZQbTs3Vw13etG5anjQXRQ86C4KHnQXBQ+6i4IH3UXBg+6i4EF3UfCguyh40F0UPOguCrVej/5lSUOSJiUtv+Kxf0w20R2V9Le1DfMjealY8XYaq51aL+oaBO4B/q38zmTT3LXArcCngD5JnzGziRr7y03FirfTWO3UNKOb2bCZjVZ4aCXwjJmNm9n/Akcoba7rXCZCrdF9I12XKzMuXST1AX9c4aEHzez5WgfgG+q6epgx6LOtC73CjBvplrX/BPAEwKKWP0vr2MW53xNq6fICsFZSm6QeYCnwq0B9OTejWk8v9ko6Bvwl8FNJuwCSTXOfBQ4BLwFfS+OMi3PVqvXjLp4DnpvmsUeBR2tp37m0+DujLgoedBcFD7qLggfdRcGD7qLgQXdR8KC7KHjQXRQ86C4KDRf0vFSseDuN1U7DBT0vFSveTmO103BBd64aQYqjJS2RdLFsM91/rX2ozlUvSHF04g0zW1Zj+86lotbLdIcBpLRWYs6FEXKN3iPpvyX9XNLnA/bj3IxCFUefALrM7B1JnwV2SrrVzMYqtO/F0S64IMXRZjYOjCe3fyPpDeAzwIEKz/XiaBdckKWLpJsktSS3b6ZUHP1miL6cm40gxdHAF4CDkl4D/hP4BzN7t6aROleDIMXRZvYT4Ce1tO1cmvydURcFD7qLggfdRcGD7qLgQXdRkFl+3qORdAb4bUbdfxJ4O6O+Z8vHeHXdZnZTpQdyFfQsSTpgZstnfmZ2fIzV86WLi4IH3UXBg/6RJ7IewCz4GKvka3QXBZ/RXRSiD3oWu19XQ9KdyTiOSHogy7FMkfSkpNOSBsvuWyBpj6TDyff2LMc4Jfqg81GB997yO6/Y/fpO4F+mrrGvt6Tf7wN3AbcA65LxZe1HlF6bcg8A/Wa2FOhPfs5c9EFvkN2vbwOOmNmbZnYJeCYZX6bMbC9wZZ3BSuCp5PZTwKp6jmk60Qf9KvK0+3WexjKThWZ2Irl9EliY5WCm1Pq5Lg0h9O7XrjIzM0m5OK0XRdBD735dB3kay0xOSVpkZickLQJOZz0g8KXL1eRp9+tfA0sl9UiaR+kg+YWMxjKTF4Atye0tQD5+Y5pZ1F9AL6U17zhwCthV9tiDwBvAKHBXxuO8G3g9Gc+DWb9uyZiepvQZPpeT13Ab8EeUzrYcBvqABVmP08z8nVEXB1+6uCh40F0UPOguCh50FwUPuouCB91FwYPuouBBd1H4fyJErv9DD6pLAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 185.806x190.728 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"univ.plot(width=(35, 35), basis='xz')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "ecab2990",
"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.9.7"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment