# KUCA Modeling problems

Hello everybody, recently I have carried out the KUCA modeling(Case Ⅱ-1).

Here are my Python script

``````
import openmc
import os
os.chdir('kuka')
# ==================================================
fuel=openmc.Material(name='93 fuel')
fuel.set_density('sum')#
# ==================================================
air=openmc.Material(name='air')
air.set_density('atom/b-cm', 5.000E-05)
# ==================================================
al=openmc.Material(name='Al')
al.set_density('atom/b-cm',6.00385E-02)
# ==================================================
# PE1/8
pe1_8=openmc.Material(name='PET1/8')
pe1_8.set_density('atom/cm3',(4.01084E-02+8.02167E-02)*1e24)
# ==================================================
# PE1/4
pe1_4=openmc.Material(name='PET1/4')
pe1_4.set_density('sum')
# ==================================================
# PE1/2
pe1_2=openmc.Material(name='PET1/2')
pe1_2.set_density('sum')
# ==================================================
# PE19
pe19=openmc.Material(name='PET19')
pe19.set_density('sum')
# ==================================================
# Pb-Bi
pb_bi=openmc.Material(name='pb_bi')
pb_bi.set_density('sum')
# ==================================================
# Pb-Bi coating 1
pb_bi_c1=openmc.Material(name='pb_bi coating 1st')

pb_bi_c1.set_density('sum')
# ==================================================
# Pb-Bi coating 1
pb_bi_c2=openmc.Material(name='pb_bi coating 2nd')
pb_bi_c2.set_density('sum')
# ==================================================
# control rod
rod=openmc.Material(name='B2O3')
rod.set_density('sum')
# ==================================================
# moderator PE1_8
m_pe1_8=openmc.Material(name='moderator PE1/8')
m_pe1_8.set_density('sum')
# ==================================================
# moderator PE10
m_pe10=openmc.Material(name='moderator PE10')
m_pe10.set_density('sum')
# ==================================================
# geometry
# region
r_up1_l1_in=openmc.rectangular_prism(5.08,5.08,'z',    (-0.05,0.05))
r_up1_l1_gap=openmc.rectangular_prism(5.13,5.13,'z',  (-0.05,0.05) )

# region pb_bi
r_up1_l1_in_pi=openmc.rectangular_prism(5.00,5.00,'z',    (-0.05,0.05))
r_up1_l1_gap_pi=openmc.rectangular_prism(5.08,5.08,'z',  (-0.05,0.05) )

#=======================================================

# control rod region
r=openmc.ZCylinder(r=1.69)
r1=openmc.ZCylinder(r=2)
r2=openmc.ZCylinder(r=2.25)
r3=openmc.ZCylinder(r=2.5)
r_0=openmc.ZPlane(z0=0)
r_1=openmc.ZPlane(z0=147)

rod_in=openmc.Cell(fill=rod,region=-r ) #& +r_0 & -r_1
rod_gap=openmc.Cell(fill=None,region=+r1 & -r2)
rod_out=openmc.Cell(fill=None,region=+r3)

#=======================================================
# Air
c_air=openmc.Cell(fill=air)
u1=openmc.Universe(name='air',cells=[c_air])

#  Al
c_al=openmc.Cell(fill=al,region=r_up1_l1_in)
c_al_in=openmc.Cell(fill=air,region=~r_up1_l1_in & r_up1_l1_gap)
c_al_out=openmc.Cell(fill=air)

#  m_pe10
c_m_pe10=openmc.Cell(fill=m_pe10,region=r_up1_l1_in)
c_m_pe10_in=openmc.Cell(fill=air,region=~r_up1_l1_in & r_up1_l1_gap)
c_m_pe10_out=openmc.Cell(fill=air)

#  m_pe1_8
c_m_pe1_8=openmc.Cell(fill=m_pe1_8,region=r_up1_l1_in)
c_m_pe1_8_in=openmc.Cell(fill=air,region=~r_up1_l1_in & r_up1_l1_gap)
c_m_pe1_8_out=openmc.Cell(fill=air)

#  pe19
c_pe19=openmc.Cell(fill=pe19,region=r_up1_l1_in)
c_pe19_in=openmc.Cell(fill=air,region=~r_up1_l1_in & r_up1_l1_gap)
c_pe19_out=openmc.Cell(fill=air)

#  fuel
c_fuel=openmc.Cell(fill=fuel,region=r_up1_l1_in)
c_fuel_in=openmc.Cell(fill=air,region=~r_up1_l1_in & r_up1_l1_gap)
c_fuel_out=openmc.Cell(fill=air)

#  pb_bi
c_pi=openmc.Cell(fill=pb_bi,region=r_up1_l1_in_pi)
c_pi_in=openmc.Cell(fill=pb_bi_c1,region=~r_up1_l1_in_pi & r_up1_l1_gap_pi)
c_pi_out=openmc.Cell(fill=air)

#  F assembly
z_s_F=[0, 2, 24.5425 ,49.9425 ,89.9475 , 98.52 ,149.32, 152.40102]
z_list_F=[openmc.ZPlane(z0=i)for i in z_s_F]

lat_box=openmc.rectangular_prism(5.53,5.53,origin=[0]*2)
r_al_F=+z_list_F[0] & -z_list_F[1] & lat_box
r_low_F18=+z_list_F[1] & -z_list_F[2] & lat_box
r_low_F10=+z_list_F[2] & -z_list_F[3] & lat_box
r_fuel_F=+z_list_F[3] & -z_list_F[4] & lat_box
r_up_F18=+z_list_F[4] & -z_list_F[5] & lat_box
r_up_F10=+z_list_F[5] & -z_list_F[6] & lat_box
r_viod_F=+z_list_F[6] & -z_list_F[7] & lat_box

c_al_F=openmc.Cell(fill=al,region=r_al_F)

a=openmc.RectLattice()
a.pitch=(5.53,5.53,0.3175)
a.lower_left=(-5.53/2,-5.53/2,2)
a.universes=[[[u_m_pe1_8]]]*71

c_low_F18=openmc.Cell(fill=a,region=r_low_F18)

b=openmc.RectLattice()
b.pitch=(5.53,5.53,25.4)
b.universes=[[[u_m_pe10]]]
b.lower_left=(-5.53/2,-5.53/2,24.5425)

c_low_F10=openmc.Cell(fill=b,region=r_low_F10)

c=openmc.RectLattice()
c.pitch=(5.53,5.53,0.15875)
c.lower_left=(-5.53/2,-5.53/2,49.9425)
c.universes=[[[u_fuel]],[[u_m_pe1_8]],[[u_m_pe1_8]],[[u_m_pe1_8]]
,[[u_m_pe1_8]],[[u_m_pe1_8]],[[u_m_pe1_8]]]*36

c_fuel_F=openmc.Cell(fill=c,region=r_fuel_F)

d=openmc.RectLattice()
d.pitch=(5.53,5.53,0.3175)
d.lower_left=(-5.53/2,-5.53/2,89.9475)
d.universes=[[[u_m_pe1_8]]]*27

c_up_F18=openmc.Cell(fill=d,region=r_up_F18)

e=openmc.RectLattice()
e.pitch=(5.53,5.53,25.4)
e.lower_left=(-5.53/2,-5.53/2,98.52)
e.universes=[[[u_m_pe10]]]*2

c_up_F10=openmc.Cell(fill=e,region=r_up_F10)

c_void_F=openmc.Cell(fill=None,region=r_viod_F)
u_F=openmc.Universe(cells=[c_al_F,c_low_F18,c_low_F10,c_fuel_F,c_up_F18,c_up_F10,c_void_F])

# ================================================================
#  f assembly
z_s_f=[0, 2, 25.1775 ,50.5775, 60.1025 , 79.1525 , 88.6775 , 97.25 , 148.05 , 151.13102]
z_list_f=[openmc.ZPlane(z0=i)for i in z_s_f]
lat_box=openmc.rectangular_prism(5.53,5.53,origin=[0]*2)
r_al_f=+z_list_f[0] & -z_list_f[1] & lat_box
r_low_f18=+z_list_f[1] & -z_list_f[2] & lat_box
r_low_f10=+z_list_f[2] & -z_list_f[3] & lat_box
r_low_p  =+z_list_f[3] & -z_list_f[4] & lat_box
r_fuel_f=+z_list_f[4] & -z_list_f[5] & lat_box
r_up_p  =+z_list_f[5] & -z_list_f[6] & lat_box
r_up_f18=+z_list_f[6] & -z_list_f[7] & lat_box
r_up_f10=+z_list_f[7] & -z_list_f[8] & lat_box
r_viod_f=+z_list_f[8] & -z_list_f[9] & lat_box

c_al_f=openmc.Cell(fill=al,region=r_al_f)

aa=openmc.RectLattice()
aa.pitch=(5.53,5.53,0.3175)
aa.lower_left=(-5.53/2,-5.53/2,2)
aa.universes=[[[u_m_pe1_8]]]*73

c_low_f18=openmc.Cell(fill=aa,region=r_low_f18)

bb=openmc.RectLattice()
bb.pitch=(5.53,5.53,25.4)
bb.universes=[[[u_m_pe10]]]
bb.lower_left=(-5.53/2,-5.53/2,z_s_f[2])

c_low_f10=openmc.Cell(fill=bb,region=r_low_f10)

cc=openmc.RectLattice()
cc.pitch=(5.53,5.53,9.525)
cc.universes=[[[u_m_pe10]]]
cc.lower_left=(-5.53/2,-5.53/2,z_s_f[3])

c_low_p=openmc.Cell(fill=cc,region=r_low_p)

dd=openmc.RectLattice()
dd.pitch=(5.53,5.53,19.05)
dd.lower_left=(-5.53/2,-5.53/2,z_s_f[4])
dd.universes=[[[u_pi]]]

c_fuel_f=openmc.Cell(fill=dd,region=r_fuel_f)

ee=openmc.RectLattice()
ee.pitch=(5.53,5.53,9.525)
ee.lower_left=(-5.53/2,-5.53/2,z_s_f[5])
ee.universes=[[[u_m_pe10]]]

c_up_p=openmc.Cell(fill=ee,region=r_up_p)

ff=openmc.RectLattice()
ff.pitch=(5.53,5.53,0.3175)
ff.universes=[[[u_m_pe1_8]]]*27
ff.lower_left=(-5.53/2,-5.53/2,z_s_f[6])

c_up_f18=openmc.Cell(fill=ff,region=r_up_f18)

gg=openmc.RectLattice()
gg.pitch=(5.53,5.53,25.4)
gg.universes=[[[u_m_pe10]]]*2
gg.lower_left=(-5.53/2,-5.53/2,z_s_f[7])

c_up_f10=openmc.Cell(fill=gg,region=r_up_f10)

c_void_f=openmc.Cell(fill=None,region=r_viod_f)

u_f=openmc.Universe(cells=[c_al_f,c_low_f18,c_low_f10,c_low_p,c_fuel_f,c_up_p,c_up_f18,c_up_f10,c_void_f])

# ================================================================
#  16 assembly
z_s_16=[0, 2, 13.1125 , 35.655 , 61.055 , 78.835 , 87.4075 , 138.2075 , 149.32 , 152.40102]
z_list_16=[openmc.ZPlane(z0=i)for i in z_s_16]
lat_box=openmc.rectangular_prism(5.53,5.53,origin=[0]*2)
r_al_16    =+z_list_16[0] & -z_list_16[1] & lat_box
r_low_al_16=+z_list_16[1] & -z_list_16[2] & lat_box
r_low_1618 =+z_list_16[2] & -z_list_16[3] & lat_box
r_low_1610 =+z_list_16[3] & -z_list_16[4] & lat_box
r_fuel_16  =+z_list_16[4] & -z_list_16[5] & lat_box
r_up_1618  =+z_list_16[5] & -z_list_16[6] & lat_box
r_up_1610  =+z_list_16[6] & -z_list_16[7] & lat_box
r_up_al_16 =+z_list_16[7] & -z_list_16[8] & lat_box
r_viod_16  =+z_list_16[8] & -z_list_16[9] & lat_box

c_al_16=openmc.Cell(fill=al,region=r_al_16)

aaa=openmc.RectLattice()
aaa.pitch=(5.53,5.53,0.15875)
aaa.lower_left=(-5.53/2,-5.53/2,2)
aaa.universes=[[[u_al]],[[u_m_pe1_8]],[[u_m_pe1_8]],[[u_m_pe1_8]],[[u_m_pe1_8]],[[u_m_pe1_8]],[[u_m_pe1_8]]]*10

c_low_al_16=openmc.Cell(fill=aaa,region=r_low_al_16)

bbb=openmc.RectLattice()
bbb.pitch=(5.53,5.53,0.3175)
bbb.universes=[[[u_m_pe1_8]]]*71
bbb.lower_left=(-5.53/2,-5.53/2,z_s_16[2])

c_low_1618=openmc.Cell(fill=bbb,region=r_low_1618)

ccc=openmc.RectLattice()
ccc.pitch=(5.53,5.53,25.4)
ccc.universes=[[[u_m_pe10]]]
ccc.lower_left=(-5.53/2,-5.53/2,z_s_16[3])

c_low_1610=openmc.Cell(fill=ccc,region=r_low_1610)

ddd=openmc.RectLattice()
ddd.pitch=(5.53,5.53,0.15875)
ddd.lower_left=(-5.53/2,-5.53/2,z_s_16[4])
ddd.universes=[[[u_fuel]],[[u_m_pe1_8]],[[u_m_pe1_8]],[[u_m_pe1_8]],[[u_m_pe1_8]],[[u_m_pe1_8]],[[u_m_pe1_8]]]*16

c_fuel_16=openmc.Cell(fill=ddd,region=r_fuel_16)

eee=openmc.RectLattice()
eee.pitch=(5.53,5.53,0.3175)
eee.lower_left=(-5.53/2,-5.53/2,z_s_16[5])
eee.universes=[[[u_m_pe1_8]]]*27

c_up_1618=openmc.Cell(fill=eee,region=r_up_1618)

fff=openmc.RectLattice()
fff.pitch=(5.53,5.53,25.4)
fff.universes=[[[u_m_pe10]]]*2
fff.lower_left=(-5.53/2,-5.53/2,z_s_16[6])

c_up_1610=openmc.Cell(fill=fff,region=r_up_1610)

ggg=openmc.RectLattice()
ggg.pitch=(5.53,5.53,0.15875)
ggg.universes=[[[u_al]],[[u_m_pe1_8]],[[u_m_pe1_8]],[[u_m_pe1_8]],[[u_m_pe1_8]],[[u_m_pe1_8]],[[u_m_pe1_8]]]*10
ggg.lower_left=(-5.53/2,-5.53/2,z_s_16[7])

c_up_al_16=openmc.Cell(fill=ggg,region=r_up_al_16)

c_void_16=openmc.Cell(fill=None,region=r_viod_16)

u_16=openmc.Universe(cells=[c_al_16,c_low_al_16,c_low_1618,c_low_1610,c_fuel_16,c_up_1618,c_up_1610,c_up_al_16,c_void_16])
# ============================================================================================================================
# A’-I left
l_ai_lat=openmc.RectLattice()
l_ai_lat.pitch=(5.53,5.53)
l_ai_lat.lower_left=(0,0)
l_ai_lat.universes=[[u_al]*4]*7

l_ai_box=openmc.rectangular_prism(5.53*4,5.53*7,'z',(5.53*4/2,5.53*7/2))
l_ai_cell=openmc.Cell(fill=l_ai_lat,region=l_ai_box)
# ============================================================================================================================
# J-P left
l_jp_lat=openmc.RectLattice()
l_jp_lat.pitch=(5.53,5.53)
l_jp_lat.lower_left=(0,39.01)
l_jp_lat.universes=[[u_al,u_pe19,u_pe19,u_pe19],
[u_al,u_pe19,u_pe19,u_pe19],
[u_al,u_al,u_pe19,u_al],
[u_al,u_al,u_pe19,u_pe19],
[u_al]*4,
[u_al]*4,]

l_jp_box=openmc.rectangular_prism(5.53*4,5.53*6,'z',(5.53*4/2,5.53*6/2+39.01))
l_jp_cell=openmc.Cell(fill=l_jp_lat,region=l_jp_box)
# ============================================================================================================================
# Q-T left
l_qt_lat=openmc.RectLattice()
l_qt_lat.pitch=(5.53,5.53)
l_qt_lat.lower_left=(0,72.49)
l_qt_lat.universes=[[u_al,u_pe19,u_pe19,u_pe19],
[u_al,u_pe19,u_al  ,u_al  ],
[u_al,u_pe19,u_al  ,u_al  ]]

l_qt_box=openmc.rectangular_prism(5.53*4,5.53*3,'z',(5.53*4/2,5.53*3/2+72.49))
l_qt_cell=openmc.Cell(fill=l_qt_lat,region=l_qt_box)
# ============================================================================================================================
# U-Z left
l_uz_lat=openmc.RectLattice()
l_uz_lat.pitch=(5.53,5.53)
l_uz_lat.lower_left=(0,89.38)
l_uz_lat.universes=[[u_al]*4]*6

l_uz_box=openmc.rectangular_prism(5.53*4,5.53*6,'z',(5.53*4/2,5.53*6/2+89.38))
l_uz_cell=openmc.Cell(fill=l_uz_lat,region=l_uz_box)
# ============================================================================================================================
# U-Z left1
l_uz1_lat=openmc.RectLattice()
l_uz1_lat.pitch=(5.53,5.53)
l_uz1_lat.lower_left=(22.42,89.38)
l_uz1_lat.universes=[[u_al]*6,
[u_pe19]*6,
[u_pe19,u_pe19,u_al,u_al,u_pe19,u_pe19],
[u_pe19,u_pe19,u_al,u_al,u_pe19,u_pe19],
[u_pe19]*6,
[u_pe19,u_pe19,u_m_pe10,u_m_pe10,u_m_pe10,u_m_pe10]]

l_uz1_box=openmc.rectangular_prism(5.53*6,5.53*6,'z',(5.53*6/2+22.42,5.53*6/2+89.38))
l_uz1_cell=openmc.Cell(fill=l_uz1_lat,region=l_uz1_box)
# ============================================================================================================================
# Q-T left1
l_qt1_lat=openmc.RectLattice()
l_qt1_lat.pitch=(5.53,5.53)
l_qt1_lat.lower_left=(22.42,72.49)
l_qt1_lat.universes=[[u_pe19,u_pe19,u_m_pe10,u_m_pe10,u_m_pe10,u_m_pe10],
[u_pe19,u_pe19,u_m_pe10,u_m_pe10,u_m_pe10,u_m_pe10],
[u_pe19,u_pe19,u_m_pe10,u_m_pe10,u_rod   ,u_F]]

l_qt1_box=openmc.rectangular_prism(5.53*6,5.53*3,'z',(5.53*6/2+22.42,5.53*3/2+72.49))
l_qt1_cell=openmc.Cell(fill=l_qt1_lat,region=l_qt1_box)
# ============================================================================================================================
# J-P left1
l_jp1_lat=openmc.RectLattice()
l_jp1_lat.pitch=(5.53,5.53)
l_jp1_lat.lower_left=(22.42,39.01)
l_jp1_lat.universes=[[u_pe19,u_pe19,u_m_pe10,u_m_pe10,u_m_pe10,u_F],
[u_pe19,u_pe19,u_m_pe10,u_m_pe10,u_m_pe10,u_F],
[u_pe19,u_pe19,u_m_pe10,u_m_pe10,u_rod   ,u_F],
[u_pe19,u_pe19,u_m_pe10,u_m_pe10,u_m_pe10,u_F],
[u_pe19,u_pe19,u_m_pe10,u_m_pe10,u_m_pe10,u_F],
[u_pe19,u_pe19,u_m_pe10,u_m_pe10,u_rod   ,u_F]]

l_jp1_box=openmc.rectangular_prism(5.53*6,5.53*6,'z',(5.53*6/2+22.42,5.53*6/2+39.01))
l_jp1_cell=openmc.Cell(fill=l_jp1_lat,region=l_jp1_box)
# ============================================================================================================================
# A’-I left1
l_ai1_lat=openmc.RectLattice()
l_ai1_lat.pitch=(5.53,5.53)
l_ai1_lat.lower_left=(22.42,0)
l_ai1_lat.universes=[[u_pe19,u_pe19,u_m_pe10,u_m_pe10,u_m_pe10,u_F],
[u_pe19,u_pe19,u_m_pe10,u_m_pe10,u_m_pe10,u_F],
[u_pe19,u_pe19,u_m_pe10,u_m_pe10,u_m_pe10,u_F],
[u_pe19,u_pe19,u_m_pe10,u_m_pe10,u_m_pe10,u_m_pe10],
[u_pe19,u_pe19,u_m_pe10,u_m_pe10,u_m_pe10,u_m_pe10],
[u_pe19,u_pe19,u_m_pe10,u_m_pe10,u_m_pe10,u_m_pe10],
[u_al]*6]

l_ai1_box=openmc.rectangular_prism(5.53*6,5.53*7,'z',(5.53*6/2+22.42,5.53*7/2))
l_ai1_cell=openmc.Cell(fill=l_ai1_lat,region=l_ai1_box)
# ============================================================================================================================
# A’-I left2
u2=openmc.Universe(name='empty uni',cells=[openmc.Cell()])
l_ai2_lat=openmc.RectLattice()
l_ai2_lat.pitch=(5.53,5.53)
l_ai2_lat.lower_left=(55.9,0)
l_ai2_lat.universes=[[u_F,u_m_pe10,u_F],
[u_F,u_m_pe10,u_F],
[u_F,u_m_pe10,u_F],
[u_16,u_m_pe10,u_16],
[u_m_pe10,u_m_pe10,u_m_pe10],
[u_m_pe10,u_m_pe10,u_m_pe10],
[u_al,u_m_pe10,u_al]]

l_ai2_box=openmc.rectangular_prism(5.53*3,5.53*7,'z',(5.53*3/2+55.9,5.53*7/2))
l_ai2_cell=openmc.Cell(fill=l_ai2_lat,region=l_ai2_box)
# ============================================================================================================================
# J-P left2
l_jp2_lat=openmc.RectLattice()
l_jp2_lat.pitch=(5.53,5.53)
l_jp2_lat.lower_left=(55.9,39.01)
l_jp2_lat.universes=[[u_F,u_F,u_F],
[u_f,u_f,u_f],
[u_f,u_f,u_f],
[u_f,u_m_pe10 ,u_f],
[u_F,u_m_pe10 ,u_F],
[u_F,u_m_pe10 ,u_F]]

l_jp2_box=openmc.rectangular_prism(5.53*3,5.53*6,'z',(5.53*3/2+55.9,5.53*6/2+39.01))
l_jp2_cell=openmc.Cell(fill=l_jp2_lat,region=l_jp2_box)
# ============================================================================================================================
# Q-T left2
l_qt2_lat=openmc.RectLattice()
l_qt2_lat.pitch=(5.53,5.53)
l_qt2_lat.lower_left=(55.9,72.49)
l_qt2_lat.universes=[[u_pe19,u_pe19,u_pe19],
[u_pe19,u_pe19,u_pe19],
[u_F   ,u_F   ,u_F   ]]

l_qt2_box=openmc.rectangular_prism(5.53*3,5.53*3,'z',(5.53*3/2+55.9,5.53*3/2+72.49))
l_qt2_cell=openmc.Cell(fill=l_qt2_lat,region=l_qt2_box)
# ===========================================================================================================================
# U-Z left2
l_uz2_lat=openmc.RectLattice()
l_uz2_lat.pitch=(5.53,5.53)
l_uz2_lat.lower_left=(55.9,89.38)
l_uz2_lat.universes=[[u_al]*3,
[u_pe19]*3,
[u_pe19]*3,
[u_pe19]*3,
[u_pe19]*3,
[u_m_pe10]*3]

l_uz2_box=openmc.rectangular_prism(5.53*3,5.53*6,'z',(5.53*3/2+55.9,5.53*6/2+89.38))
l_uz2_cell=openmc.Cell(fill=l_uz2_lat,region=l_uz2_box)
# ===========================================================================================================================
# U-Z left3
l_uz3_lat=openmc.RectLattice()
l_uz3_lat.pitch=(5.53,5.53)
l_uz3_lat.lower_left=(72.79,89.38)
l_uz3_lat.universes=[[u_al]*6,
[u_pe19,u_pe19,u_pe19,u_pe19,u_pe19,u_al],
[u_pe19,u_pe19,u_al  , u_al ,u_pe19,u_al],
[u_pe19,u_pe19,u_al  , u_al ,u_pe19,u_al],
[u_pe19,u_pe19,u_pe19,u_pe19,u_pe19,u_al],
[u_m_pe10,u_m_pe10,u_m_pe10,u_m_pe10,u_pe19,u_al]]

l_uz3_box=openmc.rectangular_prism(5.53*6,5.53*6,'z',(5.53*6/2+72.79,5.53*6/2+89.38))
l_uz3_cell=openmc.Cell(fill=l_uz3_lat,region=l_uz3_box)
# ============================================================================================================================
# Q-T left3
l_qt3_lat=openmc.RectLattice()
l_qt3_lat.pitch=(5.53,5.53)
l_qt3_lat.lower_left=(72.79,72.49)
l_qt3_lat.universes=[[u_m_pe10,u_m_pe10,u_m_pe10,u_m_pe10,u_pe19,u_pe19],
[u_m_pe10,u_m_pe10,u_m_pe10,u_m_pe10,u_pe19,u_pe19],
[u_F     ,u_rod   ,u_m_pe10,u_m_pe10,u_pe19,u_pe19]]

l_qt3_box=openmc.rectangular_prism(5.53*6,5.53*3,'z',(5.53*6/2+72.79,5.53*3/2+72.49))
l_qt3_cell=openmc.Cell(fill=l_qt3_lat,region=l_qt3_box)
# ============================================================================================================================
# J-P left3
l_jp3_lat=openmc.RectLattice()
l_jp3_lat.pitch=(5.53,5.53)
l_jp3_lat.lower_left=(72.79,39.01)
l_jp3_lat.universes=[[u_F,u_m_pe10,u_m_pe10,u_m_pe10,u_pe19,u_pe19],
[u_F,u_m_pe10,u_m_pe10,u_m_pe10,u_pe19,u_pe19],
[u_F,u_rod,u_m_pe10,u_m_pe10,u_pe19,u_pe19],
[u_F,u_m_pe10,u_m_pe10,u_m_pe10,u_pe19,u_pe19],
[u_F,u_m_pe10,u_m_pe10,u_m_pe10,u_pe19,u_pe19],
[u_F,u_rod,u_m_pe10,u_m_pe10,u_pe19,u_pe19]]

l_jp3_box=openmc.rectangular_prism(5.53*6,5.53*6,'z',(5.53*6/2+72.79,5.53*6/2+39.01))
l_jp3_cell=openmc.Cell(fill=l_jp3_lat,region=l_jp3_box)
# ============================================================================================================================
# A’-I left3
l_ai3_lat=openmc.RectLattice()
l_ai3_lat.pitch=(5.53,5.53)
l_ai3_lat.lower_left=(72.79,0)
l_ai3_lat.universes=[[u_F,u_m_pe10,u_m_pe10,u_m_pe10,u_pe19,u_pe19],
[u_F,u_m_pe10,u_m_pe10,u_m_pe10,u_pe19,u_pe19],
[u_F,u_m_pe10,u_m_pe10,u_m_pe10,u_pe19,u_pe19],
[u_m_pe10,u_m_pe10,u_m_pe10,u_m_pe10,u_pe19,u_pe19],
[u_m_pe10,u_m_pe10,u_m_pe10,u_m_pe10,u_pe19,u_pe19],
[u_m_pe10,u_m_pe10,u_m_pe10,u_m_pe10,u_pe19,u_pe19],
[u_al,u_al,u_al,u_al,u_pe19,u_pe19]]

l_ai3_box=openmc.rectangular_prism(5.53*6,5.53*7,'z',(5.53*6/2+72.79,5.53*7/2))
l_ai3_cell=openmc.Cell(fill=l_ai3_lat,region=l_ai3_box)
# ============================================================================================================================
# A’-I left3
l_ai4_lat=openmc.RectLattice()
l_ai4_lat.pitch=(5.53,5.53)
l_ai4_lat.lower_left=(106.27,0)
l_ai4_lat.universes=[[u_m_pe10,u_m_pe10,u_m_pe10,u_al],
[u_m_pe10,u_m_pe10,u_m_pe10,u_al],
[u_m_pe10,u_m_pe10,u_m_pe10,u_al],
[u_al,u_al,u_m_pe10,u_al],
[u_al,u_al,u_m_pe10,u_al],
[u_m_pe10,u_m_pe10,u_m_pe10,u_al],
[u_m_pe10,u_m_pe10,u_m_pe10,u_al]]

l_ai4_box=openmc.rectangular_prism(5.53*4,5.53*7,'z',(5.53*4/2+106.27,5.53*7/2))
l_ai4_cell=openmc.Cell(fill=l_ai4_lat,region=l_ai4_box)
# ============================================================================================================================
# J-P left4
l_jp4_lat=openmc.RectLattice()
l_jp4_lat.pitch=(5.53,5.53)
l_jp4_lat.lower_left=(106.27,39.01)
l_jp4_lat.universes=[[u_m_pe10,u_m_pe10,u_m_pe10,u_al],
[u_m_pe10,u_m_pe10,u_m_pe10,u_al],
[u_m_pe10,u_m_pe10,u_m_pe10,u_al],
[u_al,u_al,u_m_pe10,u_al],
[u_al,u_al,u_m_pe10,u_al],
[u_m_pe10,u_m_pe10,u_m_pe10,u_al]]

l_jp4_box=openmc.rectangular_prism(5.53*4,5.53*6,'z',(5.53*4/2+106.27,5.53*6/2+39.01))
l_jp4_cell=openmc.Cell(fill=l_jp4_lat,region=l_jp4_box)
# ============================================================================================================================
# Q-T left4
l_qt4_lat=openmc.RectLattice()
l_qt4_lat.pitch=(5.53,5.53)
l_qt4_lat.lower_left=(106.27,72.49)
l_qt4_lat.universes=[[u_m_pe10,u_m_pe10,u_m_pe10,u_al],
[u_al,u_al,u_m_pe10,u_al],
[u_al,u_al,u_m_pe10,u_al]]

l_qt4_box=openmc.rectangular_prism(5.53*4,5.53*3,'z',(5.53*4/2+106.27,5.53*3/2+72.49))
l_qt4_cell=openmc.Cell(fill=l_qt4_lat,region=l_qt4_box)
# ===========================================================================================================================
# U-Z left4
l_uz4_lat=openmc.RectLattice()
l_uz4_lat.pitch=(5.53,5.53)
l_uz4_lat.lower_left=(106.27,89.38)
l_uz4_lat.universes=[[u_al]*4]*6

l_uz4_box=openmc.rectangular_prism(5.53*4,5.53*6,'z',(5.53*4/2+106.27,5.53*6/2+89.38))
l_uz4_cell=openmc.Cell(fill=l_uz4_lat,region=l_uz4_box)

# ============================================================================================================================
box=openmc.rectangular_prism(150,150,'z',(150/2,150/2),'vacuum')
z1=openmc.ZPlane(z0=0)
z1.boundary_type='vacuum'
z2=openmc.ZPlane(z0=150)
z2.boundary_type='vacuum'
box_region= +z1& -z2 & box
all_cell=openmc.Cell(fill=air)
cells=[l_ai_cell,l_jp_cell,l_qt_cell,l_uz_cell,l_uz1_cell,l_qt1_cell,l_jp1_cell,l_ai1_cell,l_ai2_cell,l_jp2_cell,l_qt2_cell,l_uz2_cell
,l_uz3_cell,l_qt3_cell,l_jp3_cell,l_ai3_cell,l_ai4_cell,l_jp4_cell,l_qt4_cell,l_uz4_cell,all_cell]
u_all=openmc.Universe(cells=cells)
cell_all=openmc.Cell(fill=u_all,region=box_region)
geom = openmc.Geometry([cell_all])
geom.export_to_xml()

mats = list(geom.get_all_materials().values())
openmc.Materials(mats).export_to_xml()
point = openmc.stats.Point((61, 27, 51))
src = openmc.Source(space=point)
settings = openmc.Settings()
settings.source = src
settings.batches = 200
settings.inactive = 10
settings.particles = 1000
# batches = 100
# inactive = 50
# particles = 1000
# Instantiate a Settings object
# settings_file = openmc.Settings()
# settings_file.batches = batches
# settings_file.inactive = inactive
# settings_file.particles = particles
# # Create an initial uniform spatial source distribution over fissionable zones
# bounds = [55.3, 22.12, 50, 72, 77, 88]
# uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True)
# settings_file.source = openmc.Source(space=uniform_dist)
settings.export_to_xml()

openmc.run(geometry_debug=1)
p = openmc.Plot()
p.filename = 'pinplot'
p.width = (10, 10)
p.pixels = (2000, 2000)
p.color_by = 'cell'
# p.colors={fuel:'blue',m_pe10:'green',m_pe10:'red',air:'black',al:'yellow'}
# p.colors={fuel:'blue'}
p.basis='xy'
p.origin=(55.9,0,100)
# p.origin=(10*5.53+0.3,4*5.53+0.3,50.0425)
plots = openmc.Plots([p])
plots.export_to_xml()
openmc.plot_geometry()
``````

And the k result only have 0.24544,leakage fraction have 0.83594,which is far from the benckmark.

I tried to find out if there was a geometric error, compared the Plot with the benchmark I have not find any differences.But when I use the debug mode ,the system alerts me that there have detected overlapping cells.

I’ve been checking for a long time and can’t find my mistake , so if anyone would like to help me find my mistake or suggest where I might have made it I’d really appreciate it!Thanks in advance!

Hi @world3,

Neat benchmark model! Unfortunately, I don’t have time to look through the Python code anytime soon, but I wanted to point you to the interactive plotter (GitHub - openmc-dev/plotter: Native plotting GUI for model design and verification), which might help you to debug some of the problems you’re having with the geometry. It should make it easier to determine the regions in the model with overlaps by turning on the “overlaps” option in the color dialog box or using the `Ctrl + P` keyboard shortcut.

I hope this helps you out!

Best,

Patrick

Thank you very much！ It’s help me alot