MSRE/scripts/materials.py

222 lines
8.6 KiB
Python

import sys
sys.path.append('/opt/openmc/')
import openmc
#import neutronsmaterialmaker as nmm
def define_materials():
#salt = openmc.Material(name="salt", temperature = 903)
# salt.add_nuclide('Li7', 10.9566, 'wo')
# salt.add_element('Be', 6.3492, 'wo')
# salt.add_element('Zr', 11.1013, 'wo')
# salt.add_element('Hf', 0.0001, 'wo')
# salt.add_nuclide('U234', 0.0144, 'wo')
# salt.add_nuclide('U235', 1.4093, 'wo')
# salt.add_nuclide('U236', 0.0059, 'wo')
# salt.add_nuclide('U238', 3.0652, 'wo')
# salt.add_element('Fe', 0.0162, 'wo')
# salt.add_element('Cr', 0.0028, 'wo')
# salt.add_element('Ni', 0.0030, 'wo')
# salt.add_element('O', 0.0490, 'wo')
# salt.add_element('F', 67.0270, 'wo')
# salt.set_density('g/cm3', 2.3223)
#
# #fuel salt LiF-BeF2-ZrF4-UF4 (65-29-5-1)
# salt = openmc.Material(name='salt', temperature = 903)
# salt.set_density('g/cm3',2.3275)
# salt.add_nuclide('Li7',65/2)
# salt.add_element('F',65/2+29*2/3+5*4/5+1*4/5)
# salt.add_element('Be',29*1/3)
# salt.add_element('Zr',5*1/5)
# #salt.add_nuclide('U235',1*1/5*0.93)
# #salt.add_nuclide('U238',1*1/5*0.07)
# salt.add_element('U',1*1/5,enrichment=93)
#Salt definition based on report
Li = openmc.Material(name='Li', temperature = 903)
Li.add_nuclide('Li7',1)
Li.set_density('g/cm3',2.3275)
Be = openmc.Material(name='Be', temperature = 903)
Be.add_element('Be',1)
Be.set_density('g/cm3',2.3275)
Zr = openmc.Material(name='Zr', temperature = 903)
Zr.add_element('Zr',1)
Zr.set_density('g/cm3',2.3275)
Hf = openmc.Material(name='Hf', temperature = 903)
Hf.add_element('Hf',1)
Hf.set_density('g/cm3',2.3275)
U234 = openmc.Material(name='U234', temperature = 903)
U234.add_nuclide('U234',1)
U234.set_density('g/cm3',2.3275)
U235 = openmc.Material(name='U235', temperature = 903)
U235.add_nuclide('U235',1)
U235.set_density('g/cm3',2.3275)
U236 = openmc.Material(name='U236', temperature = 903)
U236.add_nuclide('U236',1)
U236.set_density('g/cm3',2.3275)
U238 = openmc.Material(name='U238', temperature = 903)
U238.add_nuclide('U238',1)
U238.set_density('g/cm3',2.3275)
Fe = openmc.Material(name='Fe', temperature = 903)
Fe.add_element('Fe',1)
Fe.set_density('g/cm3',2.3275)
Cr = openmc.Material(name='Cr', temperature = 903)
Cr.add_element('Cr',1)
Cr.set_density('g/cm3',2.3275)
Ni = openmc.Material(name='Ni', temperature = 903)
Ni.add_element('Ni',1)
Ni.set_density('g/cm3',2.3275)
O = openmc.Material(name='O', temperature = 903)
O.add_element('O',1)
O.set_density('g/cm3',2.3275)
F = openmc.Material(name='F', temperature = 903)
F.add_element('F',1)
F.set_density('g/cm3',2.3275)
salt = openmc.Material.mix_materials(
[Li, Be, Zr, Hf, U234, U235, U236, U238, Fe, Cr, Ni, O, F],
[10.9566/100, 6.3492/100, 11.1013/100, 0.0001/100, 0.0144/100, 1.4093/100, 0.0059/100, 3.0652/100, 0.0162/100, 0.0028/100, 0.0030/100, 0.0490/100, 67.0270/100],
'wo')
salt.name="salt"
#moderator blocks170
graphite = openmc.Material(name='graphite',temperature=903)
graphite.set_density('g/cm3',1.86)
graphite.add_element('C',1)
graphite.add_s_alpha_beta('c_Graphite')
#inor
Mo = openmc.Material(name='Mo', temperature = 903)
Mo.add_element('Mo',1)
Mo.set_density('g/cm3',2.3275)
C = openmc.Material(name='C', temperature = 903)
C.add_element('Mo',1)
C.set_density('g/cm3',2.3275)
Al = openmc.Material(name='Al', temperature = 903)
Al.add_element('Al',1)
Al.set_density('g/cm3',2.3275)
Ti = openmc.Material(name='Ti', temperature = 903)
Ti.add_element('Ti',1)
Ti.set_density('g/cm3',2.3275)
S = openmc.Material(name='S', temperature = 903)
S.add_element('S',1)
S.set_density('g/cm3',2.3275)
Mn = openmc.Material(name='Mn', temperature = 903)
Mn.add_element('Mn',1)
Mn.set_density('g/cm3',2.3275)
Si = openmc.Material(name='Si', temperature = 903)
Si.add_element('Si',1)
Si.set_density('g/cm3',2.3275)
Cu = openmc.Material(name='Cu', temperature = 903)
Cu.add_element('Cu',1)
Cu.set_density('g/cm3',2.3275)
B = openmc.Material(name='B', temperature = 903)
B.add_element('B',1)
B.set_density('g/cm3',2.3275)
W = openmc.Material(name='W', temperature = 903)
W.add_element('W',1)
W.set_density('g/cm3',2.3275)
P = openmc.Material(name='P', temperature = 903)
P.add_element('P',1)
P.set_density('g/cm3',2.3275)
Co = openmc.Material(name='Co', temperature = 903)
Co.add_element('Co',1)
Co.set_density('g/cm3',2.3275)
inor = openmc.Material.mix_materials(
[Ni, Mo, Cr, Fe, C, Al, Ti, S, Mn, Si, Cu, B, W, P, Co],
[68/100, 17/100, 7/100, 5/100, 0.06/100, 0.2/100, 0.2/100, 0.02/100, 0.8/100, 0.8/100, 0.3/100, 0.01/100, 0.4/100, 0.015/100, 0.195/100],
'wo')
inor.name="inor"
inor.set_density('g/cm3',8.7745)
# inor = openmc.Material(name='inor',temperature=903)
# inor.set_density('g/cm3',8.7745)
# inor.add_element('Ni',(66+71)/2,'wo')
# inor.add_element('Mo',(15+18)/2,'wo')
# inor.add_element('Cr',(6+8)/2,'wo')
# inor.add_element('Fe',5,'wo')
# inor.add_element('C',(0.04+0.08)/2,'wo')
# inor.add_element('Al',0.25,'wo')
# inor.add_element('Ti',0.25,'wo')
# inor.add_element('S',0.02,'wo')
# inor.add_element('Mn',1.0,'wo')
# inor.add_element('Si',1.0,'wo')
# inor.add_element('Cu',0.35,'wo')
# inor.add_element('B',0.010,'wo')
# inor.add_element('W',0.5,'wo')
# inor.add_element('P',0.015,'wo')
# inor.add_element('Co',0.2,'wo')
#helium
helium = openmc.Material(name='helium')
helium.add_element('He',1.0)
helium.set_density('g/cm3',1.03*(10**-4))
#Control rods inconel clad
trace = 0.01
inconel = openmc.Material(name='inconel', temperature = 903)
inconel.add_element('Ni',78.5,percent_type='wo')
inconel.add_element('Cr',14.0,percent_type='wo')
inconel.add_element('Fe',6.5,percent_type='wo')
inconel.add_element('Mn',0.25,percent_type='wo')
inconel.add_element('Si',0.25,percent_type='wo')
inconel.add_element('Cu',0.2,percent_type='wo')
inconel.add_element('Co',0.2,percent_type='wo')
inconel.add_element('Al',0.2,percent_type='wo')
inconel.add_element('Ti',0.2,percent_type='wo')
inconel.add_element('Ta',0.5,percent_type='wo')
inconel.add_element('W',0.5,percent_type='wo')
inconel.add_element('Zn',0.2,percent_type='wo')
inconel.add_element('Zr',0.1,percent_type='wo')
inconel.add_element('C',trace,percent_type='wo')
inconel.add_element('Mo',trace,percent_type='wo')
inconel.add_element('Ag',trace,percent_type='wo')
inconel.add_element('B',trace,percent_type='wo')
inconel.add_element('Ba',trace,percent_type='wo')
inconel.add_element('Be',trace,percent_type='wo')
inconel.add_element('Ca',trace,percent_type='wo')
inconel.add_element('Cd',trace,percent_type='wo')
inconel.add_element('V',trace,percent_type='wo')
inconel.add_element('Sn',trace,percent_type='wo')
inconel.add_element('Mg',trace,percent_type='wo')
inconel.set_density('g/cm3',8.5)
#Control rods bushing posion material
Gd2O3 = openmc.Material()
Gd2O3.add_element('Gd',2)
Gd2O3.add_element('O',3)
Gd2O3.set_density('g/cm3',5.873)
Al2O3 = openmc.Material()
Al2O3.add_element('Al',2)
Al2O3.add_element('O',3)
Al2O3.set_density('g/cm3',5.873)
bush = openmc.Material.mix_materials([Gd2O3,Al2O3],[0.7,0.3],'wo')
bush.name='bush'
#Concrete block
#concrete=nmm.Material.from_library('Concrete, Regular')
#concrete=concrete.openmc_material
#concrete.name="concrete"
#Baryte block
baryte = openmc.Material(name="baryte", temperature = 903)
baryte.add_element('Ba',1)
baryte.add_element('S',1)
baryte.add_element('O',4)
baryte.set_density('g/cm3',4.5)
#Thermal shielding
water = openmc.Material()
water.add_element('H',2)
water.add_element('O',1)
water.set_density('g/cm3',0.997)
#steel = nmm.Material.from_library('Steel, Carbon')
#steel=steel.openmc_material
#shield = openmc.Material.mix_materials([water,steel],[0.5,0.5],'wo')
#shield.name='waterSteel'
detector = openmc.Material(name = 'water')
detector.add_element('O',76.2,percent_type='wo')
detector.add_element('C',11.1,percent_type='wo')
detector.add_element('H',10.1,percent_type='wo')
detector.add_element('N',2.6,percent_type='wo')
detector.set_density('g/cm3',1.0)
mats = openmc.Materials([salt,graphite,inor,helium,inconel,bush])#,concrete,baryte,shield,detector])
mats.export_to_xml()
return mats