Skip to content

Instantly share code, notes, and snippets.

@paulromano
Created June 20, 2023 01:10
Show Gist options
  • Save paulromano/9d29030a5772988f93bdf61441c24b7f to your computer and use it in GitHub Desktop.
Save paulromano/9d29030a5772988f93bdf61441c24b7f to your computer and use it in GitHub Desktop.
Creating a triangle region
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "ab78aecd",
"metadata": {},
"outputs": [],
"source": [
"import openmc"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "ebffc0b0",
"metadata": {},
"outputs": [],
"source": [
"p1 = (-1, 0)\n",
"p2 = (1, 0)\n",
"p3 = (0, 2)\n",
"\n",
"plane1 = openmc.Plane.from_points(p1 + (0,), p2 + (0,), p1 + (1,))\n",
"plane2 = openmc.Plane.from_points(p2 + (0,), p3 + (0,), p2 + (1,))\n",
"plane3 = openmc.Plane.from_points(p3 + (0,), p1 + (0,), p3 + (1,))\n",
"triangle = -plane1 & -plane2 & -plane3"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "d34b1363",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x14fcf4aa49d0>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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Eo1Gx52SERg7d+5USUmJpk+frhUrVujo0aO27xPA11x1u7+9e/eqvr5ejY2Neu+997R48WLdcsstOnv2rNOlpTS6DHO8ZuMzDo2f//znevLJJ0fN//3vf6+6urpE1DSu3/3ud9q4caM2bNigq6++Wk899ZRmzJih3bt327pfAF8zDo2XXnpJK1euHDW/vLxcL774YkKKGsvQ0JCOHTumqqqq2LysrCxVVVXp8OHDY64TiUQUDodHTJmGI+bk8dqNzfjTk88++2zMu3jl5eXp3LlzCSlqLOfOndPw8PCoO4IVFhaqq6trzHWampr02GOP2VaTG2TigB7sZdxplJWV6Y033hg1//XXX9eCBQsSUlSiNDQ0KBQKxSYutAOmzrjTqK+vVyAQUDAY1I033ihJam9v129/+1s1Nzcnur6YOXPmaNq0aTpz5syI+WfOnNHcuXPHXMfr9crr9dpWE5CJJnXtSSQS0eOPP66tW7dKkkpKSrRr1y7dfffdCS/wguzsbC1dulTt7e1as2aNpK8+/m1vb1cgELBtvwBGmtKNhYPBoHJycjRz5sxE1jSuvXv3qqamRi0tLVq+fLmam5v1wgsvqKurK667n2fyP3cBF5OUGwv7/f6prG5s7dq1CgaDeuSRR3T69GktWbJEb7zxBl+XACRRXAOh3/3ud/Wf//wn7o3+4Ac/UF9f36SLmkggENDHH3+sSCSid955RytWrLBlPwDGFlen0dnZqePHj8f9NYudnZ2KRCJTKgxAaor79OSmm25SvMMf3JgHSF9xhcapU6eMNzxv3jzjdQCkvrhCY/78+XbXAcAlXHWVKwDnERoAjBAaAIwQGgCMGIdGTU2NDh06ZEctAFzAODRCoZCqqqp01VVX6YknnrDtPz8BpCbj0Hj55ZfV19enzZs3a+/evSopKdGqVav04osv6vz583bUCCCFTGpMw+/3q76+XsePH9c777yjsrIyrVu3TkVFRXrggQf00UcfJbpOACliSgOhn376qdra2tTW1qZp06bptttu04kTJ3T11Vdr+/btiaoRQAoxDo3z58/rpZde0urVqzV//nzt27dPdXV16u/v19NPP60333xTL7zwgn71q1/ZUS8AhxnfT+Pyyy9XNBrVj3/8Yx09elRLliwZtUxlZaVmzZqVgPIApBrj0Ni+fbuqq6s1ffr0cZeZNWvWpC5y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\n",
"text/plain": [
"<Figure size 258.065x259.74 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mat = openmc.Material()\n",
"mat.add_nuclide('H1', 1.)\n",
"\n",
"cell = openmc.Cell(fill=mat, region=triangle)\n",
"univ = openmc.Universe(cells=[cell])\n",
"univ.plot(width=(5., 5.))"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e4a0b692",
"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.10.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment