summaryrefslogtreecommitdiff
path: root/pin.py
diff options
context:
space:
mode:
authorconnorhhmoore <connor.moore@ontariotechu.net>2026-09-02 16:20:19 +0200
committerconnorhhmoore <connor.moore@ontariotechu.net>2026-09-02 16:20:19 +0200
commit9f54396f3bcf20170f5bc402e4585ce0f4fbfc86 (patch)
treedbae1585610b7a984f31be8a4e840732993d8d7f /pin.py
parent70474c06b8b08485153b96b28b25cd2be1b2d16f (diff)
Added support for dynamic enrichment
Diffstat (limited to 'pin.py')
-rwxr-xr-xpin.py32
1 files changed, 22 insertions, 10 deletions
diff --git a/pin.py b/pin.py
index 0455ee7..6303fdb 100755
--- a/pin.py
+++ b/pin.py
@@ -15,7 +15,8 @@ cli_parser = argparse.ArgumentParser(
cli_parser.add_argument("-t","--technique",default="none",choices=["none","vwh","rpt","rrpt"],help="What homogenization technique to use (if any) [none/vwh/rpt/rrpt], default none")
cli_parser.add_argument("-r","--radius",default="0.5",type=float,help="Radius for RPT or RRPT homogenization [cm], default 0.5 cm. In the case of RRPT, this is the inner radius.")
cli_parser.add_argument("-p","--packing-factor",default=0.29,type=float,help="Packing factor for TRISO packing (0.0, 1.0), default 0.29")
-cli_parser.add_argument("-f","--fuel",default="uo2",choices=["uo2","uco5","uco10","uco15","uco20","un"],help="What type of fuel to use [uo2/uco10/uco15/uco20/un], default uo2.")
+cli_parser.add_argument("-f","--fuel",default="uo2",choices=["uo2","uco5","uco10","uco15","uco20","ucodyn","un"],help="What type of fuel to use [uo2/uco10/uco15/uco20/ucodyn/un], default uo2.")
+cli_parser.add_argument("-en","--enrichment",default=5.0,type=float,help="Enrichment of fuel (if using dynamic)")
cli_parser.add_argument("-e","--execute",default=False,action="store_true",help="Whether or not to automatically run OpenMC, default false.")
cli_args = cli_parser.parse_args()
@@ -56,7 +57,17 @@ mat_triso_uo2.add_s_alpha_beta("c_U_in_UO2")
mat_triso_uo2.add_s_alpha_beta("c_O_in_UO2")
mat_list.append(mat_triso_uo2)
-mat_triso_uco_5wo = openmc.Material(201,name="TRISO Pin 5% UCO Kernel")
+mat_triso_uco_dyn = openmc.Material(201,name=f"TRISO Pin {cli_args.enrichment}% UCO Kernel")
+mat_triso_uco_dyn.add_element("U",0.5,enrichment=cli_args.enrichment)
+mat_triso_uco_dyn.add_nuclide("C12",0.13793)
+mat_triso_uco_dyn.add_nuclide("O16",0.51724)
+mat_triso_uco_dyn.set_density("g/cc",10.744)
+mat_triso_uco_dyn.temperature = mat_temp_fuel
+mat_triso_uco_dyn.add_s_alpha_beta("c_U_in_UC_5p")
+mat_triso_uco_dyn.add_s_alpha_beta("c_C_in_UC_5p")
+mat_list.append(mat_triso_uco_dyn)
+
+mat_triso_uco_5wo = openmc.Material(202,name="TRISO Pin 5% UCO Kernel")
mat_triso_uco_5wo.add_nuclide("U235",0.0172417)
mat_triso_uco_5wo.add_nuclide("U238",0.3275923)
mat_triso_uco_5wo.add_nuclide("C12",0.13793)
@@ -67,7 +78,7 @@ mat_triso_uco_5wo.add_s_alpha_beta("c_U_in_UC_5p")
mat_triso_uco_5wo.add_s_alpha_beta("c_C_in_UC_5p")
mat_list.append(mat_triso_uco_5wo)
-mat_triso_uco_10wo = openmc.Material(202,name="TRISO Pin 10% UCO Kernel")
+mat_triso_uco_10wo = openmc.Material(203,name="TRISO Pin 10% UCO Kernel")
mat_triso_uco_10wo.add_nuclide("U235",0.034483)
mat_triso_uco_10wo.add_nuclide("U238",0.310400)
mat_triso_uco_10wo.add_nuclide("C12",0.13793)
@@ -78,7 +89,7 @@ mat_triso_uco_10wo.add_s_alpha_beta("c_U_in_UC_10p")
mat_triso_uco_10wo.add_s_alpha_beta("c_C_in_UC_10p")
mat_list.append(mat_triso_uco_10wo)
-mat_triso_uco_15wo = openmc.Material(203,name="TRISO Pin 15.5% UCO Kernel")
+mat_triso_uco_15wo = openmc.Material(204,name="TRISO Pin 15.5% UCO Kernel")
mat_triso_uco_15wo.add_nuclide("U235",0.051732)
mat_triso_uco_15wo.add_nuclide("U238",0.293200)
mat_triso_uco_15wo.add_nuclide("C12",0.13793)
@@ -89,7 +100,7 @@ mat_triso_uco_15wo.add_s_alpha_beta("c_U_in_UC_10p")
mat_triso_uco_15wo.add_s_alpha_beta("c_C_in_UC_10p")
mat_list.append(mat_triso_uco_15wo)
-mat_triso_uco_20wo = openmc.Material(204,name="TRISO Pin 20% UCO Kernel")
+mat_triso_uco_20wo = openmc.Material(205,name="TRISO Pin 20% UCO Kernel")
mat_triso_uco_20wo.add_nuclide("U235",0.068794)
mat_triso_uco_20wo.add_nuclide("U238",0.27604)
mat_triso_uco_20wo.add_nuclide("C12",0.13793)
@@ -100,7 +111,7 @@ mat_triso_uco_20wo.add_s_alpha_beta("c_U_in_UC_HALEU")
mat_triso_uco_20wo.add_s_alpha_beta("c_C_in_UC_HALEU")
mat_list.append(mat_triso_uco_20wo)
-mat_triso_un = openmc.Material(205,name="TRISO Pin UN Kernel")
+mat_triso_un = openmc.Material(206,name="TRISO Pin UN Kernel")
mat_triso_un.add_nuclide("U235",2.1125e-4)
mat_triso_un.add_nuclide("U238",2.8758e-2)
mat_triso_un.add_nuclide("U234",1.6795e-6)
@@ -112,21 +123,21 @@ mat_triso_un.add_s_alpha_beta("c_U_in_UN")
mat_triso_un.add_s_alpha_beta("c_N_in_UN")
mat_list.append(mat_triso_un)
-mat_triso_buffer = openmc.Material(206,name="TRISO Pin Buffer")
+mat_triso_buffer = openmc.Material(207,name="TRISO Pin Buffer")
mat_triso_buffer.add_nuclide("C12",1.0)
mat_triso_buffer.set_density("g/cc",1.04)
mat_triso_buffer.temperature = mat_temp_fuel
mat_triso_buffer.add_s_alpha_beta("c_Graphite")
mat_list.append(mat_triso_buffer)
-mat_triso_pyc1 = openmc.Material(207,name="TRISO Pin PyC1")
+mat_triso_pyc1 = openmc.Material(208,name="TRISO Pin PyC1")
mat_triso_pyc1.add_nuclide("C12",1.0)
mat_triso_pyc1.set_density("g/cc",1.882)
mat_triso_pyc1.temperature = mat_temp_fuel
mat_triso_pyc1.add_s_alpha_beta("c_Graphite")
mat_list.append(mat_triso_pyc1)
-mat_triso_sic = openmc.Material(208,name="TRISO Pin SiC")
+mat_triso_sic = openmc.Material(209,name="TRISO Pin SiC")
mat_triso_sic.add_nuclide("Si28",0.4611)
mat_triso_sic.add_nuclide("Si29",0.0234)
mat_triso_sic.add_nuclide("Si30",0.0154)
@@ -137,7 +148,7 @@ mat_triso_sic.add_s_alpha_beta("c_C_in_SiC")
mat_triso_sic.add_s_alpha_beta("c_Si_in_SiC")
mat_list.append(mat_triso_sic)
-mat_triso_pyc2 = openmc.Material(209,name="TRISO Pin PyC2")
+mat_triso_pyc2 = openmc.Material(210,name="TRISO Pin PyC2")
mat_triso_pyc2.add_nuclide("C12",1.0)
mat_triso_pyc2.add_s_alpha_beta("c_Graphite")
mat_triso_pyc2.temperature = mat_temp_fuel
@@ -151,6 +162,7 @@ mat_fuel_map = {
"uco10":mat_triso_uco_10wo,
"uco15":mat_triso_uco_15wo,
"uco20":mat_triso_uco_20wo,
+ "ucodyn":mat_triso_uco_dyn,
"un":mat_triso_un
}