Hydrogen flow through materials and density percentages

Hey everyone,

So I’m attempting to recreate the results of a paper in order to better understand how Open MC works. The paper is on a basic parametric study of nuclear thermal rockets and it utilizes hydrogen as a coolant and a propellant. The trick is that the materials are porous enough that the hydrogen is allowed to pass through freely and the uranium is a liquid, so the pressure behind the h2 pushes it through the Uranium as well. The issue I am having comes in multiple parts.

  1. I don’t exactly know how one might achieve this in open MC. my first idea is to use the openmc.mix_materials command but when I do, the second problem appears.
  2. Using the openmc.mix_materials command I get this error:

line 26, in
clad = openmc.Material.mix_materials([ZrC, h2], [0.5,0.5],‘wo’)

line 1039, in mix_materials
amms = np.asarray([mat.average_molar_mass for mat in materials])

line 1039, in
amms = np.asarray([mat.average_molar_mass for mat in materials])

line 195, in average_molar_mass
mass += nuc.percent * openmc.data.atomic_mass(nuc.name)

line 248, in atomic_mass
return _ATOMIC_MASS[isotope.lower()]

KeyError: ‘h’

  1. Sort of related: the way the paper defines the ratio between the h2 flowing through various materials is by “% density” which I have never heard of before. I made the assumption that it is just a different way to say either weight percent or volume percent, but I have no idea.

Thanks for your time, I appreciate your help. I know this is probably a very basic question so I really appreciate it. The code for the part in question is attached below.

h2 = openmc.Material(name ='h2')
h2.add_nuclide('H', 2.0)

U = openmc.Material(name='U')
U.add_element('U', 1,enrichment = 19.75)

ZrC = openmc.Material(name = 'ZrC')
ZrC.add_element('Zr', 1,)
ZrC.add_element('C', 1)

SiC = openmc.Material(name = "SiC")
SiC.add_element("Si", 1)
SiC.add_element('C', 1)

ZrH = openmc.Material (name = 'ZrH')
ZrH.add_element('Zr', 1)
ZrH.add_element('H', 1.87)

Be = openmc.Material(name = 'Be')
Be.add_element('Be', 1)

fuel = openmc.Material.mix_materials([U, h2], [0.5,0.5],'wo')
clad = openmc.Material.mix_materials([ZrC, h2], [0.5,0.5],'wo')
inlet_wall = openmc.Material.mix_materials([SiC, h2], [0.8,0.2],'wo')
axial_sic = openmc.Material.mix_materials([SiC, h2], [0.5,0.5],'wo')

Hey, this is because you put h2.add_nuclide('H', 2.0). There is no single H nuclide. You will either want to use add_element there to get elemental hydrogen, or put H1 or H2 to specify a specific nuclide.

I saw that almost as soon as I got done writing the post! A little embarrassing to say the least but it’s working.