summaryrefslogtreecommitdiff
path: root/candu-37.py
diff options
context:
space:
mode:
authorConnor Moore <connor@hhmoore.ca>2026-03-02 15:06:15 -0500
committerConnor Moore <connor@hhmoore.ca>2026-03-02 15:06:15 -0500
commit70065ff82daa58f7b5e799762c0de9a2c2a139a1 (patch)
treeb565b9691fe5c21b423befb56c50df84018a9458 /candu-37.py
parent8a165bded5f1c76a7ee737d5a2dc4a8c2ecb5f1a (diff)
Added missing densities for materials, calculated DTU, masses, etc.. for 37-element bundle.
Diffstat (limited to 'candu-37.py')
-rw-r--r--candu-37.py25
1 files changed, 24 insertions, 1 deletions
diff --git a/candu-37.py b/candu-37.py
index 281c339..08a90e1 100644
--- a/candu-37.py
+++ b/candu-37.py
@@ -34,6 +34,7 @@ mat_zircaloy_2.add_nuclide("Zr92", 0.169730,"wo")
mat_zircaloy_2.add_nuclide("Zr94", 0.175752,"wo")
mat_zircaloy_2.add_nuclide("Zr96", 0.028918,"wo")
mat_zircaloy_2.add_element("Sn", 0.013962,"wo")
+mat_zircaloy_2.set_density("g/cc",6.56)
#> The fuel cladding uses Zircaloy-4
mat_zircaloy_4 = openmc.Material(name="Zircaloy-4 (PNNL-15870")
@@ -48,6 +49,7 @@ mat_zircaloy_4.add_nuclide("Zr92", 0.169646,"wo")
mat_zircaloy_4.add_nuclide("Zr94", 0.175665,"wo")
mat_zircaloy_4.add_nuclide("Zr96", 0.028904,"wo")
mat_zircaloy_4.add_element("Sn", 0.013955,"wo")
+mat_zircaloy_4.set_density("g/cc",6.56)
#> Heavy water is used for moderation and cooling
mat_d2o = openmc.Material(name="Heavy Water (PNNL-15870)")
@@ -56,6 +58,7 @@ mat_d2o.add_nuclide("O16", 0.796703,"wo")
mat_d2o.add_nuclide("O17", 0.000323,"wo")
mat_d2o.add_nuclide("O18", 0.001842,"wo")
mat_d2o.add_s_alpha_beta("c_D_in_D2O")
+mat_d2o.set_density("g/cc",1.1044)
materials = openmc.Materials([mat_fuel, mat_zircaloy_2, mat_zircaloy_4, mat_d2o])
materials.export_to_xml()
@@ -164,8 +167,28 @@ settings.source.space = openmc.stats.CylindricalIndependent(
)
settings.source.energy = openmc.stats.Watt()
-
settings.export_to_xml()
+
+### Area and DTU Calculations ###
+
+V_fuel = len(fuel_region_list)*np.pi*r_fuel**2
+V_clad = len(clad_region_list)*np.pi*(r_clad**2 - r_fuel**2)
+V_mod = np.pi*pt_inner.r**2 - (V_fuel + V_clad)
+
+d_fuel = mat_fuel.get_nuclide_atom_densities()
+N_fuel = sum(density for nuclide,density in d_fuel.items() if "U" in nuclide)
+
+N_mod = mat_d2o.get_nuclide_atom_densities()['H2']
+DTU_ratio = (V_mod * N_mod) / (V_fuel * N_fuel)
+
+#> Print these for the final table
+print(f"Flow Area, cm² = {V_mod}")
+print(f"Fuel mass per length, g/cm = {V_fuel*mat_fuel.density}")
+print(f"Cladding mass per length, g/cm = {V_clad*mat_zircaloy_4.density}")
+print(f"DTU Ratio = {DTU_ratio}")
+print(f"{V_fuel, V_clad}")
+
+
#> Run the model!
openmc.run()