From 70065ff82daa58f7b5e799762c0de9a2c2a139a1 Mon Sep 17 00:00:00 2001 From: Connor Moore Date: Mon, 2 Mar 2026 15:06:15 -0500 Subject: Added missing densities for materials, calculated DTU, masses, etc.. for 37-element bundle. --- .gitignore | 1 + candu-37.py | 25 ++++++++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index d72ed98..6141a39 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ *.xml *.h5 *.pkl +*.csv 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() -- cgit v1.2.3