diff options
Diffstat (limited to 'hpmr.py')
| -rwxr-xr-x | hpmr.py | 204 |
1 files changed, 150 insertions, 54 deletions
@@ -12,7 +12,7 @@ cli_parser = argparse.ArgumentParser( description="Program to investigate various homogenization techniques for TRISO compacts in the HP-MR benchmark." ) -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("-t","--technique",default="vwh",choices=["none","vwh","rpt","rrpt"],help="What homogenization technique to use (if any) [none/vwh/rpt/rrpt], default VWH") cli_parser.add_argument("-r","--radius",default="0.8",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_args = cli_parser.parse_args() @@ -37,92 +37,186 @@ print("="*60) # Composition Data for Radiation Transport Modeling " by US Dept. of Homeland Security and PNNL # <https://www.pnnl.gov/main/publications/external/technical_reports/PNNL-15870Rev2.pdf> mat_list = [] +mat_temp_global = 700.0 +mat_temp_fuel = 1000.0 -## Matrix Graphite ## -mat_graphite_matrix = openmc.Material(name="Graphite Matrix (inside/outside)") -mat_graphite_matrix.add_element("C",1.0) -mat_graphite_matrix.add_nuclide("B10",0.3e-6) +## 100s - Matrix Graphite ## +mat_graphite_matrix = openmc.Material(100,name="Graphite Matrix (between pins)") +mat_graphite_matrix.add_nuclide("C12",0.9999997) +mat_graphite_matrix.add_nuclide("B10",3e-7) mat_graphite_matrix.set_density("g/cc",1.806) +mat_graphite_matrix.temperature = mat_temp_global mat_list.append(mat_graphite_matrix) -## TRISO Pins ## -mat_triso_uco = openmc.Material(name="TRISO Pin UCO Kernel") -mat_triso_uco.add_element("U",1.0,enrichment=19.95,enrichment_type="wo") -mat_triso_uco.add_element("C",1.0) -mat_triso_uco.add_element("O",1.0) +## 200s - TRISO Pins ## +mat_triso_uco = openmc.Material(200,name="TRISO Pin UCO Kernel") +mat_triso_uco.add_nuclide("U235",0.068794) +mat_triso_uco.add_nuclide("U238",0.27604) +mat_triso_uco.add_nuclide("C12",0.13793) +mat_triso_uco.add_nuclide("O16",0.51724) mat_triso_uco.set_density("g/cc",10.744) +mat_triso_uco.temperature = mat_temp_fuel mat_triso_uco.add_s_alpha_beta("c_Graphite") mat_list.append(mat_triso_uco) -mat_triso_buffer = openmc.Material(name="TRISO Pin Buffer") -mat_triso_buffer.add_element("C",1.0) -mat_triso_buffer.add_s_alpha_beta("c_Graphite") +mat_triso_buffer = openmc.Material(201,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(name="TRISO Pin PyC1") -mat_triso_pyc1.add_element("C",1.0) +mat_triso_pyc1 = openmc.Material(202,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(name="TRISO Pin SiC") -mat_triso_sic.add_element("Si",1.0) -mat_triso_sic.add_element("C",1.0) -mat_triso_sic.add_s_alpha_beta("c_Graphite") +mat_triso_sic = openmc.Material(203,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) +mat_triso_sic.add_nuclide("C12",0.5) mat_triso_sic.set_density("g/cc",3.171) +mat_triso_sic.temperature = mat_temp_fuel +mat_triso_sic.add_s_alpha_beta("c_SiC") mat_list.append(mat_triso_sic) -mat_triso_pyc2 = openmc.Material(name="TRISO Pin PyC2") -mat_triso_pyc2.add_element("C",1.0) +mat_triso_pyc2 = openmc.Material(204,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 mat_triso_pyc2.set_density("g/cc",1.882) mat_list.append(mat_triso_pyc2) -## Moderator Pins ## -mat_mod_helium = openmc.Material(name="Moderator Pin Helium") -mat_mod_helium.add_element("He",1.0) +## 300 - Moderator Pins ## +mat_mod_helium = openmc.Material(300,name="Moderator Pin Helium") +mat_mod_helium.add_element("He4",1.0) mat_mod_helium.set_density("g/cc",0.18e-3) mat_list.append(mat_mod_helium) -# Composition from PNNL-15870r2 -mat_mod_ss316 = openmc.Material(name="Moderator Pin SS316") -mat_mod_ss316.add_element("C",0.000800,"wo") -mat_mod_ss316.add_element("Mn",0.020000,"wo") -mat_mod_ss316.add_element("P",0.000450,"wo") -mat_mod_ss316.add_element("S",0.000300,"wo") -mat_mod_ss316.add_element("Si",0.010000,"wo") -mat_mod_ss316.add_element("Cr",0.170000,"wo") -mat_mod_ss316.add_element("Ni",0.120000,"wo") -mat_mod_ss316.add_element("Mo",0.025000,"wo") -mat_mod_ss316.add_element("Fe",0.653450,"wo") +# From the offical Serpent input +mat_mod_ss316 = openmc.Material(301,name="Moderator Pin SS316") +mat_mod_ss316.add_nuclide('C12', 0.001901) +mat_mod_ss316.add_nuclide('Si28', 0.0092693) +mat_mod_ss316.add_nuclide('Si29', 4.7251e-4) +mat_mod_ss316.add_nuclide('Si30', 3.1166e-4) +mat_mod_ss316.add_nuclide('P31', 4.1322e-4) +mat_mod_ss316.add_nuclide('S32', 2.471e-4) +mat_mod_ss316.add_nuclide('S33', 1.9511e-6) +mat_mod_ss316.add_nuclide('S34', 1.1056e-5) +mat_mod_ss316.add_nuclide('S36', 3.0016e-8) +mat_mod_ss316.add_nuclide('Cr50', 7.9116e-3) +mat_mod_ss316.add_nuclide('Cr52', 0.15257) +mat_mod_ss316.add_nuclide('Cr53', 0.01730) +mat_mod_ss316.add_nuclide('Cr54', 4.3063e-3) +mat_mod_ss316.add_nuclide('Mn55', 0.01028) +mat_mod_ss316.add_nuclide('Fe54', 0.039029) +mat_mod_ss316.add_nuclide('Fe56', 0.61213) +mat_mod_ss316.add_nuclide('Fe57', 0.014144) +mat_mod_ss316.add_nuclide('Fe58', 1.3343e-3) +mat_mod_ss316.add_nuclide('Ni58', 0.077516) +mat_mod_ss316.add_nuclide('Ni60', 0.029859) +mat_mod_ss316.add_nuclide('Ni61', 1.2981e-3) +mat_mod_ss316.add_nuclide('Ni62', 4.1389e-3) +mat_mod_ss316.add_nuclide('Ni64', 1.0544e-3) +mat_mod_ss316.add_nuclide('Mo92', 2.1259e-3) +mat_mod_ss316.add_nuclide('Mo94', 1.3299e-3) +mat_mod_ss316.add_nuclide('Mo95', 2.303e-3) +mat_mod_ss316.add_nuclide('Mo96', 2.4191e-3) +mat_mod_ss316.add_nuclide('Mo97', 1.3903e-3) +mat_mod_ss316.add_nuclide('Mo98', 3.5249e-3) +mat_mod_ss316.add_nuclide('Mo100',1.4135e-3) mat_mod_ss316.set_density("g/cc",7.67) mat_list.append(mat_mod_ss316) -mat_mod_yh2 = openmc.Material(name="Moderater Pin YH2") -mat_mod_yh2.add_element("Y",1.0) -mat_mod_yh2.add_element("H",2.0) +# Official Serpent smeared composition +mat_mod_ss316_he_smear = openmc.Material(302,name="Moderator Pin SS316/He Smear") +mat_mod_ss316_he_smear.add_nuclide('He4',1.983e-5) +mat_mod_ss316_he_smear.add_nuclide('C12',4.349e-5) +mat_mod_ss316_he_smear.add_nuclide('Si28',2.121e-4) +mat_mod_ss316_he_smear.add_nuclide('Si29',1.081e-5) +mat_mod_ss316_he_smear.add_nuclide('Si30',7.13e-6) +mat_mod_ss316_he_smear.add_nuclide('P31',9.454e-6) +mat_mod_ss316_he_smear.add_nuclide('S32',5.653e-6) +mat_mod_ss316_he_smear.add_nuclide('S33',4.464e-8) +mat_mod_ss316_he_smear.add_nuclide('S34',2.53e-7) +mat_mod_ss316_he_smear.add_nuclide('S36',6.867e-10) +mat_mod_ss316_he_smear.add_nuclide('Cr50',1.81e-4) +mat_mod_ss316_he_smear.add_nuclide('Cr52',3.491e-3) +mat_mod_ss316_he_smear.add_nuclide('Cr53',3.958e-4) +mat_mod_ss316_he_smear.add_nuclide('Cr54',9.852e-5) +mat_mod_ss316_he_smear.add_nuclide('Mn55',2.352e-4) +mat_mod_ss316_he_smear.add_nuclide('Fe54',8.929e-4) +mat_mod_ss316_he_smear.add_nuclide('Fe56',0.014) +mat_mod_ss316_he_smear.add_nuclide('Fe57',3.236e-4) +mat_mod_ss316_he_smear.add_nuclide('Fe58',3.053e-5) +mat_mod_ss316_he_smear.add_nuclide('Ni58',1.773e-3) +mat_mod_ss316_he_smear.add_nuclide('Ni60',6.831e-4) +mat_mod_ss316_he_smear.add_nuclide('Ni61',2.97e-5) +mat_mod_ss316_he_smear.add_nuclide('Ni62',9.469e-5) +mat_mod_ss316_he_smear.add_nuclide('Ni64',2.412e-5) +mat_mod_ss316_he_smear.add_nuclide('Mo92',4.864e-5) +mat_mod_ss316_he_smear.add_nuclide('Mo94',3.043e-5) +mat_mod_ss316_he_smear.add_nuclide('Mo95',5.269e-5) +mat_mod_ss316_he_smear.add_nuclide('Mo96',5.535e-5) +mat_mod_ss316_he_smear.add_nuclide('Mo97',3.181e-5) +mat_mod_ss316_he_smear.add_nuclide('Mo98',8.065e-5) +mat_mod_ss316_he_smear.add_nuclide('Mo100',3.234e-5) +mat_mod_ss316_he_smear.set_density("atom/b-cm",0.0229) +mat_mod_ss316_he_smear.temperature = mat_temp_global +mat_list.add_nuclide(mat_mod_ss316_he_smear) + +# YH2 from official Serpent +mat_mod_yh2 = openmc.Material(303,name="Moderater Pin YH2") +mat_mod_yh2.add_nuclide("Y89",0.357142857) +mat_mod_yh2.add_nuclide("H1",0.642857143) +mat_mod_yh2.set_density("g/cc",4.085) +mat_mod_yh2.temperature = mat_temp_global mat_mod_yh2.add_s_alpha_beta("c_H_in_YH2") mat_mod_yh2.add_s_alpha_beta("c_Y_in_YH2") -mat_mod_yh2.set_density("g/cc",4.3) mat_list.append(mat_mod_yh2) -## Heat Pipes ## +## 400s - Heat Pipes ## mat_pipe_helium = openmc.Material(name="Heat Pipe Helium") -mat_pipe_helium.add_element("He",1.0) +mat_pipe_helium.add_element("He4",1.0) mat_pipe_helium.set_density("g/cc",0.18e-3) mat_list.append(mat_pipe_helium) -# Composition from PNNL-15870r2 -mat_pipe_ss316 = openmc.Material(name="Heat Pipe SS316") -mat_pipe_ss316.add_element("C",0.000800,"wo") -mat_pipe_ss316.add_element("Mn",0.020000,"wo") -mat_pipe_ss316.add_element("P",0.000450,"wo") -mat_pipe_ss316.add_element("S",0.000300,"wo") -mat_pipe_ss316.add_element("Si",0.010000,"wo") -mat_pipe_ss316.add_element("Cr",0.170000,"wo") -mat_pipe_ss316.add_element("Ni",0.120000,"wo") -mat_pipe_ss316.add_element("Mo",0.025000,"wo") -mat_pipe_ss316.add_element("Fe",0.653450,"wo") + +# From the offical Serpent input +mat_pipe_ss316 = openmc.Material(401,name="Heat Pipe SS316") +mat_pipe_ss316.add_nuclide('C12', 0.001901) +mat_pipe_ss316.add_nuclide('Si28', 0.0092693) +mat_pipe_ss316.add_nuclide('Si29', 4.7251e-4) +mat_pipe_ss316.add_nuclide('Si30', 3.1166e-4) +mat_pipe_ss316.add_nuclide('P31', 4.1322e-4) +mat_pipe_ss316.add_nuclide('S32', 2.471e-4) +mat_pipe_ss316.add_nuclide('S33', 1.9511e-6) +mat_pipe_ss316.add_nuclide('S34', 1.1056e-5) +mat_pipe_ss316.add_nuclide('S36', 3.0016e-8) +mat_pipe_ss316.add_nuclide('Cr50', 7.9116e-3) +mat_pipe_ss316.add_nuclide('Cr52', 0.15257) +mat_pipe_ss316.add_nuclide('Cr53', 0.01730) +mat_pipe_ss316.add_nuclide('Cr54', 4.3063e-3) +mat_pipe_ss316.add_nuclide('Mn55', 0.01028) +mat_pipe_ss316.add_nuclide('Fe54', 0.039029) +mat_pipe_ss316.add_nuclide('Fe56', 0.61213) +mat_pipe_ss316.add_nuclide('Fe57', 0.014144) +mat_pipe_ss316.add_nuclide('Fe58', 1.3343e-3) +mat_pipe_ss316.add_nuclide('Ni58', 0.077516) +mat_pipe_ss316.add_nuclide('Ni60', 0.029859) +mat_pipe_ss316.add_nuclide('Ni61', 1.2981e-3) +mat_pipe_ss316.add_nuclide('Ni62', 4.1389e-3) +mat_pipe_ss316.add_nuclide('Ni64', 1.0544e-3) +mat_pipe_ss316.add_nuclide('Mo92', 2.1259e-3) +mat_pipe_ss316.add_nuclide('Mo94', 1.3299e-3) +mat_pipe_ss316.add_nuclide('Mo95', 2.303e-3) +mat_pipe_ss316.add_nuclide('Mo96', 2.4191e-3) +mat_pipe_ss316.add_nuclide('Mo97', 1.3903e-3) +mat_pipe_ss316.add_nuclide('Mo98', 3.5249e-3) +mat_pipe_ss316.add_nuclide('Mo100',1.4135e-3) mat_pipe_ss316.set_density("g/cc",7.67) mat_list.append(mat_pipe_ss316) @@ -354,8 +448,8 @@ geometry = openmc.Geometry(geo_assembly_universe) ############ SETTINGS ############ settings = openmc.Settings() settings.particles = 10000 -settings.batches = 100 -settings.inactive = 50 +settings.batches = 400 +settings.inactive = 80 # Source sampling set_source_pts = [] @@ -373,6 +467,8 @@ set_entropy_mesh.dimension=(30,30,30) settings.entropy_mesh=set_entropy_mesh +settings.temperature = {'method': "interpolation"} + ## Export ## materials = openmc.Materials(mat_list) materials.export_to_xml() |
