Code snippets:
- build_root_geometry (simplified):
def build_root_geometry(dim, z, materials, core_lattice, support_column_cells):
# Vacuum boundaries
outer_cyl = openmc.ZCylinder(r=dim["vessel_radius"] + 50.0, boundary_type="vacuum")
z_bot = openmc.ZPlane(z0=z["lower_grid_bottom"] - 50.0, boundary_type="vacuum")
z_top = openmc.ZPlane(z0=z["upper_grid_top"] + 50.0, boundary_type="vacuum")
root_region = -outer_cyl & +z_bot & -z_top
#core cell with lattice
core_cyl = openmc.ZCylinder(r=dim[“core_radius”])
z_core_bot = openmc.ZPlane(z0=z[“lower_grid_bottom”])
z_core_top = openmc.ZPlane(z0=z[“upper_grid_top”])
core_cell = openmc.Cell(name=“Core Cell”, fill=core_lattice,
region=-core_cyl & +z_core_bot & -z_core_top)
#Root moderator (fills everything except core & columns)
moderator_cell = openmc.Cell( name=“Root Moderator”, fill=m[“Deionized Water”], region=root_region & ~((-core_cyl & +z_core_bot & -z_core_top)
Root universe
root_univ = openmc.Universe(cells=[
core_cell,
moderator_cell,
*support_column_cells
])
root_cell = openmc.Cell(name=“Root Cell”, fill=root_univ, region=root_region)
return root_cell, core_cell