Hi everyone
I’m in the middle of designing a Fast breeder reactor. I designed it with three regions: central fuel region, outer fuel region and blanket region with empty locations for inserting control rod assemblies.
I’m facing a problem where without inserting the CRAs, the eigenvalue simulation runs fine.
But whenever I’m inserting a CRA, the geometry gets broken.
for example: This runs fine
fastcore_lat = openmc.HexLattice(lattice_id=6, name='fast core')
fastcore_lat.center = (0., 0.)
fastcore_lat.pitch = (22,)
fastcore_lat.outer = coolant_u
fc13 = [blanket_ass_u]*72
fc12 = [blanket_ass_u]*66
fc11 = [blanket_ass_u]*60
fc10 = [blanket_ass_u]*54
fc9 = ([fast_blank_u]+[outerfast_ass_u]*15 + [fast_blank_u] + [outerfast_ass_u]*15 + [fast_blank_u] + [outerfast_ass_u]*15)
fc8 = [outerfast_ass_u]*42
fc7 = ([outerfast_ass_u]*6+[fast_blank_u] + [outerfast_ass_u]*11 +[fast_blank_u]+ [outerfast_ass_u]*11+[fast_blank_u]+[outerfast_ass_u]*5)
fc6 = [outerfast_ass_u]*30
fc5 = ([fast_blank_u]+[infast_ass_u]*7 + [fast_blank_u]+[infast_ass_u]*7 + [fast_blank_u]+[infast_ass_u]*7)
fc4 = [infast_ass_u]*18
fc3 = ([infast_ass_u]*2+[fast_blank_u] + [infast_ass_u]*3 +[fast_blank_u]+ [infast_ass_u]*3+[fast_blank_u] +[infast_ass_u] )
fc2 = [infast_ass_u]*6
fc1 = [fast_blank_u]*1
fastcore_lat.universes = [fc13,fc12,fc11,fc10,fc9,fc8,fc7,fc6,fc5,fc4,fc3,fc2,fc1]
fastcore_boundary = openmc.model.hexagonal_prism(edge_length=300)
fastcore = openmc.Cell(fill=fastcore_lat, region=fastcore_boundary & -breeder_barrier_top & +breeder_barrier_bottom)
fastcore_out = openmc.Cell(region=~fastcore_boundary & -breeder_barrier_top & +breeder_barrier_bottom)
fastcore_u = openmc.Universe(cells=[fastcore, fastcore_out])
img1 = fastcore_u.plot(origin = (0,0,0), pixels=(4000, 4000), width = (600.,600.), color_by = 'material')
img2 = fastcore_u.plot(origin = (0,0,0), pixels=(1000, 1000), width = (550.,200.), color_by = 'material',colors={control_material:'green'},basis = 'xz')
However this shows error and breaks the geometry
#fast core
fastcore_lat = openmc.HexLattice(lattice_id=6, name='fast core')
fastcore_lat.center = (0., 0.)
fastcore_lat.pitch = (22,)
fastcore_lat.outer = coolant_u
fc13 = [blanket_ass_u]*72
fc12 = [blanket_ass_u]*66
fc11 = [blanket_ass_u]*60
fc10 = [blanket_ass_u]*54
fc9 = ([fast_blank_u]+[outerfast_ass_u]*15 + [fast_blank_u] + [outerfast_ass_u]*15 + [fast_blank_u] + [outerfast_ass_u]*15)
fc8 = [outerfast_ass_u]*42
fc7 = ([outerfast_ass_u]*6+[fast_blank_u] + [outerfast_ass_u]*11 +[fast_blank_u]+ [outerfast_ass_u]*11+[fast_blank_u]+[outerfast_ass_u]*5)
fc6 = [outerfast_ass_u]*30
fc5 = ([fast_blank_u]+[infast_ass_u]*7 + [fast_blank_u]+[infast_ass_u]*7 + [fast_blank_u]+[infast_ass_u]*7)
fc4 = [infast_ass_u]*18
fc3 = ([infast_ass_u]*2+[fast_blank_u] + [infast_ass_u]*3 +[fast_blank_u]+ [infast_ass_u]*3+[fast_blank_u] +[infast_ass_u] )
fc2 = [infast_ass_u]*6
fc1 = [fastcontrol_ass_u]*1 #only changed here
fastcore_lat.universes = [fc13,fc12,fc11,fc10,fc9,fc8,fc7,fc6,fc5,fc4,fc3,fc2,fc1]
fastcore_boundary = openmc.model.hexagonal_prism(edge_length=300)
fastcore = openmc.Cell(fill=fastcore_lat, region=fastcore_boundary & -breeder_barrier_top & +breeder_barrier_bottom)
fastcore_out = openmc.Cell(region=~fastcore_boundary & -breeder_barrier_top & +breeder_barrier_bottom)
fastcore_u = openmc.Universe(cells=[fastcore, fastcore_out])
img1 = fastcore_u.plot(origin = (0,0,0), pixels=(4000, 4000), width = (600.,600.), color_by = 'material')
img2 = fastcore_u.plot(origin = (0,0,0), pixels=(1000, 1000), width = (550.,200.), color_by = 'material',colors={control_material:'green'},basis = 'xz')
Here is a snippet of the control assembly
fastcontrol_lat = openmc.HexLattice(name='fast control 2nd')
fastcontrol_lat.center = (0., 0.)
fastcontrol_lat.pitch = (1.294,)
fastcontrol_lat.outer = coolant_u
fcring9= [f_control_rod]*48
fcring8= [f_control_rod]*42
fcring7= [f_control_rod]*36
fcring6= [f_control_rod]*30
fcring5= [f_control_rod]*24
fcring4= [f_control_rod]*18
fcring3= [f_control_rod]*12
fcring2= [f_control_rod]*6
fcring1= [f_control_rod]
fastcontrol_lat.universes=[fcring9,fcring8,fcring7,fcring6,fcring5,fcring4,fcring3,fcring2,fcring1]
fastcontrol_boundary = openmc.model.hexagonal_prism(edge_length=12.3,)
fastcontrol_cell = openmc.Cell(fill=fastcontrol_lat, region= fastcontrol_boundary & -breeder_barrier_top & +breeder_barrier_bottom)
fastcontrol_surrounding = openmc.Cell(fill=fast_coolant_material, region= ~fastcontrol_boundary & -breeder_barrier_top & +breeder_barrier_bottom)
fastcontrol_ass_u= openmc.Universe(cells=[fastcontrol_cell,fastcontrol_surrounding])
img1 = fastcontrol_ass_u.plot(origin = (0,0,0), pixels=(500, 500), width = (25.,200), color_by = 'material', basis='xz')
img2 = fastcontrol_ass_u.plot(origin = (0,0,0), pixels=(500, 500), width = (25.,25), color_by = 'material')
You can find the full Jupyter Notebook file here
This is a part of a larger project I’m working on. So you can ignore the thermal region and related parts for now.