222 lines
8.6 KiB
Python
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
|