diff --git a/smr/fresh/geometry.xml b/smr/fresh/geometry.xml
index a3e377f..2434ba1 100644
--- a/smr/fresh/geometry.xml
+++ b/smr/fresh/geometry.xml
@@ -6251,7 +6251,7 @@
|
|
|
- |
+ |
|
|
|
@@ -6264,7 +6264,7 @@
|
|
|
- |
+ |
|
|
|
@@ -6277,7 +6277,7 @@
|
|
|
- |
+ |
|
|
|
@@ -6290,7 +6290,7 @@
|
|
|
- |
+ |
|
|
|
diff --git a/smr/smr/assemblies.py b/smr/smr/assemblies.py
index 3d9c996..d673127 100644
--- a/smr/smr/assemblies.py
+++ b/smr/smr/assemblies.py
@@ -6,7 +6,7 @@ import openmc
from .materials import mats
from .surfaces import surfs, pin_pitch
-from .pins import univs as pins
+from .pins import pin_universes
def make_assembly(name, universes):
@@ -47,7 +47,7 @@ def make_assembly(name, universes):
# Add outer water cell
cell = openmc.Cell(name=univ_name + ' outer water')
- cell.fill = pins['water pin']
+ cell.fill = mats['H2O']
cell.region = ~surfs['lat grid box outer']
universe.add_cell(cell)
@@ -121,6 +121,8 @@ def make_assembly(name, universes):
def assembly_universes():
+ pins = pin_universes()
+
# Create dictionary to store assembly universes
univs = {}
diff --git a/smr/smr/pins.py b/smr/smr/pins.py
index f7c6119..01ae73d 100644
--- a/smr/smr/pins.py
+++ b/smr/smr/pins.py
@@ -140,737 +140,742 @@ def make_pin_stack(name, zsurfaces, universes, boundary, pin_universe):
return universe
-univs = {}
+def pin_universes():
+ # Create dictionary to store pin universes
+ univs = {}
+ # Dummy water cell
+ cell = openmc.Cell(name='water pin', fill=mats['H2O'])
+ univs['water pin'] = openmc.Universe(name='Empty water pin cell universe')
+ univs['water pin'].add_cell(cell)
-#### DUMMY WATER CELL
+ # Guide tube pin cells
+ univs['GT empty'] = make_pin(
+ 'GT empty',
+ [surfs['GT IR'], surfs['GT OR']],
+ [mats['H2O'], mats['Zr'], mats['H2O']])
+ univs['GT empty grid (bottom)'] = make_pin(
+ 'GT empty grid (bottom)',
+ [surfs['GT IR'], surfs['GT OR']],
+ [mats['H2O'], mats['Zr'], mats['H2O']], grid='bottom')
+ univs['GT empty grid (intermediate)'] = make_pin(
+ 'GT empty grid (intermediate)',
+ [surfs['GT IR'], surfs['GT OR']],
+ [mats['H2O'], mats['Zr'], mats['H2O']], grid='intermediate')
+ univs['GT empty nozzle'] = make_pin(
+ 'GT empty nozzle',
+ [surfs['GT IR'], surfs['GT OR']],
+ [mats['H2O'], mats['Zr'], mats['H2O']])
-cell = openmc.Cell(name='water pin')
-cell.fill = mats['H2O']
-univs['water pin'] = openmc.Universe(name='Empty water pin cell universe')
-univs['water pin'].add_cell(cell)
+ univs['GTd empty'] = make_pin(
+ 'GT empty at dashpot',
+ [surfs['GT dashpot IR'], surfs['GT dashpot OR']],
+ [mats['H2O'], mats['Zr'], mats['H2O']])
+ univs['GTd empty grid (bottom)'] = make_pin(
+ 'GT empty at dashpot grid (bottom)',
+ [surfs['GT dashpot IR'], surfs['GT dashpot OR']],
+ [mats['H2O'], mats['Zr'], mats['H2O']], grid='bottom')
+ univs['GTd empty grid (intermediate)'] = make_pin(
+ 'GT empty at dashpot grid (intermediate)',
+ [surfs['GT dashpot IR'], surfs['GT dashpot OR']],
+ [mats['H2O'], mats['Zr'], mats['H2O']], grid='intermediate')
+ univs['GTd empty nozzle'] = make_pin(
+ 'GT empty nozzle',
+ [surfs['GT dashpot IR'], surfs['GT dashpot OR']],
+ [mats['H2O'], mats['Zr'], mats['H2O']])
+ # Stack all axial pieces of guide tube together
-#### GUIDE TUBE PIN CELLS
+ stack_surfs = [
+ surfs['bot support plate'],
+ surfs['top support plate'],
+ surfs['top lower nozzle'],
+ surfs['top lower thimble'],
+ surfs['grid1bot'],
+ surfs['grid1top'],
+ surfs['dashpot top'],
+ surfs['grid2bot'],
+ surfs['grid2top'],
+ surfs['grid3bot'],
+ surfs['grid3top'],
+ surfs['grid4bot'],
+ surfs['grid4top'],
+ surfs['top active core'],
+ surfs['grid5bot'],
+ surfs['grid5top'],
+ surfs['top pin plenum'],
+ surfs['top FR'],
+ surfs['bot upper nozzle'],
+ surfs['top upper nozzle']
+ ]
-univs['GT empty'] = make_pin(
- 'GT empty', [surfs['GT IR'], surfs['GT OR']],
- [mats['H2O'], mats['Zr'], mats['H2O']])
-univs['GT empty grid (bottom)'] = make_pin(
- 'GT empty grid (bottom)', [surfs['GT IR'], surfs['GT OR']],
- [mats['H2O'], mats['Zr'], mats['H2O']], grid='bottom')
-univs['GT empty grid (intermediate)'] = make_pin(
- 'GT empty grid (intermediate)', [surfs['GT IR'], surfs['GT OR']],
- [mats['H2O'], mats['Zr'], mats['H2O']], grid='intermediate')
-univs['GT empty nozzle'] = make_pin(
- 'GT empty nozzle', [surfs['GT IR'], surfs['GT OR']],
- [mats['H2O'], mats['Zr'], mats['H2O']])
-
-univs['GTd empty'] = make_pin(
- 'GT empty at dashpot', [surfs['GT dashpot IR'], surfs['GT dashpot OR']],
- [mats['H2O'], mats['Zr'], mats['H2O']])
-univs['GTd empty grid (bottom)'] = make_pin(
- 'GT empty at dashpot grid (bottom)',
- [surfs['GT dashpot IR'], surfs['GT dashpot OR']],
- [mats['H2O'], mats['Zr'], mats['H2O']], grid='bottom')
-univs['GTd empty grid (intermediate)'] = make_pin(
- 'GT empty at dashpot grid (intermediate)',
- [surfs['GT dashpot IR'], surfs['GT dashpot OR']],
- [mats['H2O'], mats['Zr'], mats['H2O']], grid='intermediate')
-univs['GTd empty nozzle'] = make_pin(
- 'GT empty nozzle', [surfs['GT dashpot IR'], surfs['GT dashpot OR']],
- [mats['H2O'], mats['Zr'], mats['H2O']])
-
-# Stack all axial pieces of guide tube together
-
-stack_surfs = [
- surfs['bot support plate'],
- surfs['top support plate'],
- surfs['top lower nozzle'],
- surfs['top lower thimble'],
- surfs['grid1bot'],
- surfs['grid1top'],
- surfs['dashpot top'],
- surfs['grid2bot'],
- surfs['grid2top'],
- surfs['grid3bot'],
- surfs['grid3top'],
- surfs['grid4bot'],
- surfs['grid4top'],
- surfs['top active core'],
- surfs['grid5bot'],
- surfs['grid5top'],
- surfs['top pin plenum'],
- surfs['top FR'],
- surfs['bot upper nozzle'],
- surfs['top upper nozzle']
-]
-
-univs['GT empty'] = make_stack(
- 'GT empty', surfaces=stack_surfs,
- universes=[univs['water pin'],
- univs['water pin'],
- univs['water pin'],
- univs['GTd empty'],
- univs['GTd empty'],
- univs['GTd empty grid (bottom)'],
- univs['GTd empty'],
- univs['GT empty'],
- univs['GT empty grid (intermediate)'],
- univs['GT empty'],
- univs['GT empty grid (intermediate)'],
- univs['GT empty'],
- univs['GT empty grid (intermediate)'],
- univs['GT empty'],
- univs['GT empty'],
- univs['GT empty grid (intermediate)'],
- univs['GT empty'],
- univs['GT empty'],
- univs['GT empty'],
- univs['water pin'],
- univs['water pin']])
-
-univs['GT empty instr'] = make_stack(
- 'GT empty instr', surfaces=stack_surfs,
- universes=[univs['water pin'],
- univs['water pin'],
- univs['water pin'],
- univs['GT empty'],
- univs['GT empty'],
- univs['GT empty grid (bottom)'],
- univs['GT empty'],
- univs['GT empty'],
- univs['GT empty grid (intermediate)'],
- univs['GT empty'],
- univs['GT empty grid (intermediate)'],
- univs['GT empty'],
- univs['GT empty grid (intermediate)'],
- univs['GT empty'],
- univs['GT empty'],
- univs['GT empty grid (intermediate)'],
- univs['GT empty'],
- univs['GT empty'],
- univs['GT empty'],
- univs['water pin'],
- univs['water pin']])
-
-
-#### INSTRUMENT TUBE PIN CELL
-
-univs['IT'] = make_pin(
- 'IT', [surfs['IT IR'], surfs['IT OR'], surfs['GT IR'], surfs['GT OR']],
- [mats['Air'], mats['Zr'], mats['H2O'], mats['Zr'], mats['H2O']])
-univs['IT grid (bottom)'] = make_pin(
- 'IT grid (bottom)',
- [surfs['IT IR'], surfs['IT OR'], surfs['GT IR'], surfs['GT OR']],
- [mats['Air'], mats['Zr'], mats['H2O'], mats['Zr'], mats['H2O']],
- grid='bottom')
-univs['IT grid (intermediate)'] = make_pin(
- 'IT grid (intermediate)',
- [surfs['IT IR'], surfs['IT OR'], surfs['GT IR'], surfs['GT OR']],
- [mats['Air'], mats['Zr'], mats['H2O'], mats['Zr'], mats['H2O']],
- grid='intermediate')
-
-univs['IT nozzle'] = make_pin(
- 'IT nozzle',
- [surfs['IT IR'], surfs['IT OR'], surfs['GT IR'], surfs['GT OR']],
- [mats['Air'], mats['Zr'], mats['H2O'], mats['Zr'], mats['SS']])
-univs['IT dashpot'] = make_pin(
- 'IT dashpot', [surfs['IT IR'], surfs['IT OR']],
- [mats['Air'], mats['Zr'], mats['H2O']])
-
-# Stack all axial pieces of instrument tube together
-
-univs['IT stack'] = make_stack(
- 'GT instr', surfaces=stack_surfs,
- universes=[univs['IT dashpot'],
- univs['IT dashpot'],
- univs['IT dashpot'],
- univs['IT'],
- univs['IT'],
- univs['IT grid (bottom)'],
- univs['IT'],
- univs['IT'],
- univs['IT grid (intermediate)'],
- univs['IT'],
- univs['IT grid (intermediate)'],
- univs['IT'],
- univs['IT grid (intermediate)'],
- univs['IT'],
- univs['IT'],
- univs['IT grid (intermediate)'],
- univs['IT'],
- univs['IT'],
- univs['IT'],
- univs['IT dashpot'],
- univs['water pin']])
-
-
-#### CONTROL ROD PIN CELLS
-
-univs['CR'] = make_pin(
- 'CR', [surfs['CP OR'], surfs['CR IR'], surfs['GT IR'], surfs['GT OR']],
- [mats['AIC'], mats['Air'], mats['SS'], mats['H2O'], mats['Zr'], mats['H2O']])
-univs['CR grid (bottom)'] = make_pin(
- 'CR grid (bottom)', [surfs['CP OR'], surfs['CR IR'], surfs['GT IR'], surfs['GT OR']],
- [mats['AIC'], mats['Air'], mats['SS'], mats['H2O'], mats['Zr'], mats['H2O']],
- grid='bottom')
-univs['CR grid (intermediate)'] = make_pin(
- 'CR grid (intermediate)',
- [surfs['CP OR'], surfs['CR IR'], surfs['GT IR'], surfs['GT OR']],
- [mats['AIC'], mats['Air'], mats['SS'], mats['H2O'], mats['Zr'], mats['H2O']],
- grid='intermediate')
-univs['CR nozzle'] = make_pin(
- 'CR nozzle', [surfs['CP OR'], surfs['CR IR'], surfs['CR OR']],
- [mats['AIC'], mats['Air'], mats['SS'], mats['H2O']])
-
-univs['CR blank'] = make_pin(
- 'CR blank',
- [surfs['CP OR'], surfs['CR IR'], surfs['CR OR'], surfs['GT IR'], surfs['GT OR']],
- [mats['SS'], mats['Air'], mats['SS'], mats['H2O'], mats['Zr'], mats['H2O']])
-univs['CR blank grid (bottom)'] = make_pin(
- 'CR blank grid (bottom)',
- [surfs['CP OR'], surfs['CR IR'], surfs['CR OR'], surfs['GT IR'], surfs['GT OR']],
- [mats['SS'], mats['Air'], mats['SS'], mats['H2O'], mats['Zr'], mats['H2O']],
- grid='bottom')
-univs['CR blank grid (intermediate)'] = make_pin(
- 'CR blank grid (intermediate)',
- [surfs['CP OR'], surfs['CR IR'], surfs['CR OR'], surfs['GT IR'], surfs['GT OR']],
- [mats['SS'], mats['Air'], mats['SS'], mats['H2O'], mats['Zr'], mats['H2O']],
- grid='intermediate')
-univs['CR blank nozzle'] = make_pin(
- 'CR blank nozzle', [surfs['CP OR'], surfs['CR IR'], surfs['CR OR']],
- [mats['SS'], mats['Air'], mats['SS'], mats['H2O']])
-univs['CR blank bare'] = make_pin(
- 'CR blank bare', [surfs['CP OR'], surfs['CR IR'], surfs['CR OR']],
- [mats['SS'], mats['Air'], mats['SS'], mats['H2O']])
-univs['CR bare'] = make_pin(
- 'CR bare', [surfs['CP OR'], surfs['CR IR'], surfs['CR OR']],
- [mats['AIC'], mats['Air'], mats['SS'], mats['H2O']])
-
-# Stack all axial pieces of control rod tubes together for each bank
-
-banks = ['A', 'B', 'C', 'D', 'SA', 'SB', 'SC', 'SD', 'SE']
-
-for b in banks:
-
- # no grid, no nozzle
- univs['GT CR bank {} dummy'.format(b)] = make_stack(
- 'GT CR bank {} dummy'.format(b),
- surfaces=[surfs['bottom FR'],
- surfs['dashpot top'],
- surfs['bank{} bot'.format(b)],
- surfs['bank{} top'.format(b)]],
+ univs['GT empty'] = make_stack(
+ 'GT empty', surfaces=stack_surfs,
universes=[univs['water pin'],
+ univs['water pin'],
+ univs['water pin'],
+ univs['GTd empty'],
+ univs['GTd empty'],
+ univs['GTd empty grid (bottom)'],
univs['GTd empty'],
univs['GT empty'],
- univs['CR'],
- univs['CR blank']])
-
- # bottom grid
- univs['GT CR bank {} dummy grid (bottom)'.format(b)] = make_stack(
- 'GT CR bank {} dummy grid (bottom)'.format(b),
- surfaces=[surfs['bottom FR'],
- surfs['dashpot top'],
- surfs['bank{} bot'.format(b)],
- surfs['bank{} top'.format(b)]],
- universes=[univs['water pin'],
- univs['GTd empty grid (bottom)'],
- univs['GT empty grid (bottom)'],
- univs['CR grid (bottom)'],
- univs['CR blank grid (bottom)']])
-
- # intermediate grid
- univs['GT CR bank {} dummy grid (intermediate)'.format(b)] = make_stack(
- 'GT CR bank {} dummy grid (intermediate)'.format(b),
- surfaces=[surfs['bottom FR'],
- surfs['dashpot top'],
- surfs['bank{} bot'.format(b)],
- surfs['bank{} top'.format(b)]],
- universes=[univs['water pin'],
- univs['GTd empty grid (intermediate)'],
univs['GT empty grid (intermediate)'],
- univs['CR grid (intermediate)'],
- univs['CR blank grid (intermediate)']])
+ univs['GT empty'],
+ univs['GT empty grid (intermediate)'],
+ univs['GT empty'],
+ univs['GT empty grid (intermediate)'],
+ univs['GT empty'],
+ univs['GT empty'],
+ univs['GT empty grid (intermediate)'],
+ univs['GT empty'],
+ univs['GT empty'],
+ univs['GT empty'],
+ univs['water pin'],
+ univs['water pin']])
- # nozzle
- univs['GT CR bank {} dummy nozzle'.format(b)] = make_stack(
- 'GT CR bank {} dummy nozzle'.format(b),
- surfaces=[surfs['bottom FR'],
- surfs['dashpot top'],
- surfs['bank{} bot'.format(b)],
- surfs['bank{} top'.format(b)]],
+ univs['GT empty instr'] = make_stack(
+ 'GT empty instr', surfaces=stack_surfs,
universes=[univs['water pin'],
- univs['GTd empty nozzle'],
- univs['GT empty nozzle'],
- univs['CR nozzle'],
- univs['CR blank nozzle']])
+ univs['water pin'],
+ univs['water pin'],
+ univs['GT empty'],
+ univs['GT empty'],
+ univs['GT empty grid (bottom)'],
+ univs['GT empty'],
+ univs['GT empty'],
+ univs['GT empty grid (intermediate)'],
+ univs['GT empty'],
+ univs['GT empty grid (intermediate)'],
+ univs['GT empty'],
+ univs['GT empty grid (intermediate)'],
+ univs['GT empty'],
+ univs['GT empty'],
+ univs['GT empty grid (intermediate)'],
+ univs['GT empty'],
+ univs['GT empty'],
+ univs['GT empty'],
+ univs['water pin'],
+ univs['water pin']])
- # bare
- univs['GT CR bank {} dummy bare'.format(b)] = make_stack(
- 'GT CR bank {} dummy bare'.format(b),
- surfaces=[surfs['bottom FR'],
- surfs['dashpot top'],
- surfs['bank{} bot'.format(b)],
- surfs['bank{} top'.format(b)]],
+
+ # Instrument tube pin cell
+ univs['IT'] = make_pin(
+ 'IT',
+ [surfs['IT IR'], surfs['IT OR'], surfs['GT IR'], surfs['GT OR']],
+ [mats['Air'], mats['Zr'], mats['H2O'], mats['Zr'], mats['H2O']])
+ univs['IT grid (bottom)'] = make_pin(
+ 'IT grid (bottom)',
+ [surfs['IT IR'], surfs['IT OR'], surfs['GT IR'], surfs['GT OR']],
+ [mats['Air'], mats['Zr'], mats['H2O'], mats['Zr'], mats['H2O']],
+ grid='bottom')
+ univs['IT grid (intermediate)'] = make_pin(
+ 'IT grid (intermediate)',
+ [surfs['IT IR'], surfs['IT OR'], surfs['GT IR'], surfs['GT OR']],
+ [mats['Air'], mats['Zr'], mats['H2O'], mats['Zr'], mats['H2O']],
+ grid='intermediate')
+
+ univs['IT nozzle'] = make_pin(
+ 'IT nozzle',
+ [surfs['IT IR'], surfs['IT OR'], surfs['GT IR'], surfs['GT OR']],
+ [mats['Air'], mats['Zr'], mats['H2O'], mats['Zr'], mats['SS']])
+ univs['IT dashpot'] = make_pin(
+ 'IT dashpot',
+ [surfs['IT IR'], surfs['IT OR']],
+ [mats['Air'], mats['Zr'], mats['H2O']])
+
+ # Stack all axial pieces of instrument tube together
+
+ univs['IT stack'] = make_stack(
+ 'GT instr',
+ surfaces=stack_surfs,
+ universes=[univs['IT dashpot'],
+ univs['IT dashpot'],
+ univs['IT dashpot'],
+ univs['IT'],
+ univs['IT'],
+ univs['IT grid (bottom)'],
+ univs['IT'],
+ univs['IT'],
+ univs['IT grid (intermediate)'],
+ univs['IT'],
+ univs['IT grid (intermediate)'],
+ univs['IT'],
+ univs['IT grid (intermediate)'],
+ univs['IT'],
+ univs['IT'],
+ univs['IT grid (intermediate)'],
+ univs['IT'],
+ univs['IT'],
+ univs['IT'],
+ univs['IT dashpot'],
+ univs['water pin']])
+
+ # Control rod pin cells
+ univs['CR'] = make_pin(
+ 'CR',
+ [surfs['CP OR'], surfs['CR IR'], surfs['GT IR'], surfs['GT OR']],
+ [mats['AIC'], mats['Air'], mats['SS'], mats['H2O'], mats['Zr'], mats['H2O']])
+ univs['CR grid (bottom)'] = make_pin(
+ 'CR grid (bottom)',
+ [surfs['CP OR'], surfs['CR IR'], surfs['GT IR'], surfs['GT OR']],
+ [mats['AIC'], mats['Air'], mats['SS'], mats['H2O'], mats['Zr'], mats['H2O']],
+ grid='bottom')
+ univs['CR grid (intermediate)'] = make_pin(
+ 'CR grid (intermediate)',
+ [surfs['CP OR'], surfs['CR IR'], surfs['GT IR'], surfs['GT OR']],
+ [mats['AIC'], mats['Air'], mats['SS'], mats['H2O'], mats['Zr'], mats['H2O']],
+ grid='intermediate')
+ univs['CR nozzle'] = make_pin(
+ 'CR nozzle',
+ [surfs['CP OR'], surfs['CR IR'], surfs['CR OR']],
+ [mats['AIC'], mats['Air'], mats['SS'], mats['H2O']])
+
+ univs['CR blank'] = make_pin(
+ 'CR blank',
+ [surfs['CP OR'], surfs['CR IR'], surfs['CR OR'], surfs['GT IR'], surfs['GT OR']],
+ [mats['SS'], mats['Air'], mats['SS'], mats['H2O'], mats['Zr'], mats['H2O']])
+ univs['CR blank grid (bottom)'] = make_pin(
+ 'CR blank grid (bottom)',
+ [surfs['CP OR'], surfs['CR IR'], surfs['CR OR'], surfs['GT IR'], surfs['GT OR']],
+ [mats['SS'], mats['Air'], mats['SS'], mats['H2O'], mats['Zr'], mats['H2O']],
+ grid='bottom')
+ univs['CR blank grid (intermediate)'] = make_pin(
+ 'CR blank grid (intermediate)',
+ [surfs['CP OR'], surfs['CR IR'], surfs['CR OR'], surfs['GT IR'], surfs['GT OR']],
+ [mats['SS'], mats['Air'], mats['SS'], mats['H2O'], mats['Zr'], mats['H2O']],
+ grid='intermediate')
+ univs['CR blank nozzle'] = make_pin(
+ 'CR blank nozzle',
+ [surfs['CP OR'], surfs['CR IR'], surfs['CR OR']],
+ [mats['SS'], mats['Air'], mats['SS'], mats['H2O']])
+ univs['CR blank bare'] = make_pin(
+ 'CR blank bare',
+ [surfs['CP OR'], surfs['CR IR'], surfs['CR OR']],
+ [mats['SS'], mats['Air'], mats['SS'], mats['H2O']])
+ univs['CR bare'] = make_pin(
+ 'CR bare',
+ [surfs['CP OR'], surfs['CR IR'], surfs['CR OR']],
+ [mats['AIC'], mats['Air'], mats['SS'], mats['H2O']])
+
+ # Stack all axial pieces of control rod tubes together for each bank
+
+ for b in ['A', 'B', 'C', 'D', 'SA', 'SB', 'SC', 'SD', 'SE']:
+ # no grid, no nozzle
+ univs['GT CR bank {} dummy'.format(b)] = make_stack(
+ 'GT CR bank {} dummy'.format(b),
+ surfaces=[surfs['bottom FR'],
+ surfs['dashpot top'],
+ surfs['bank{} bot'.format(b)],
+ surfs['bank{} top'.format(b)]],
+ universes=[univs['water pin'],
+ univs['GTd empty'],
+ univs['GT empty'],
+ univs['CR'],
+ univs['CR blank']])
+
+ # bottom grid
+ univs['GT CR bank {} dummy grid (bottom)'.format(b)] = make_stack(
+ 'GT CR bank {} dummy grid (bottom)'.format(b),
+ surfaces=[surfs['bottom FR'],
+ surfs['dashpot top'],
+ surfs['bank{} bot'.format(b)],
+ surfs['bank{} top'.format(b)]],
+ universes=[univs['water pin'],
+ univs['GTd empty grid (bottom)'],
+ univs['GT empty grid (bottom)'],
+ univs['CR grid (bottom)'],
+ univs['CR blank grid (bottom)']])
+
+ # intermediate grid
+ univs['GT CR bank {} dummy grid (intermediate)'.format(b)] = make_stack(
+ 'GT CR bank {} dummy grid (intermediate)'.format(b),
+ surfaces=[surfs['bottom FR'],
+ surfs['dashpot top'],
+ surfs['bank{} bot'.format(b)],
+ surfs['bank{} top'.format(b)]],
+ universes=[univs['water pin'],
+ univs['GTd empty grid (intermediate)'],
+ univs['GT empty grid (intermediate)'],
+ univs['CR grid (intermediate)'],
+ univs['CR blank grid (intermediate)']])
+
+ # nozzle
+ univs['GT CR bank {} dummy nozzle'.format(b)] = make_stack(
+ 'GT CR bank {} dummy nozzle'.format(b),
+ surfaces=[surfs['bottom FR'],
+ surfs['dashpot top'],
+ surfs['bank{} bot'.format(b)],
+ surfs['bank{} top'.format(b)]],
+ universes=[univs['water pin'],
+ univs['GTd empty nozzle'],
+ univs['GT empty nozzle'],
+ univs['CR nozzle'],
+ univs['CR blank nozzle']])
+
+ # bare
+ univs['GT CR bank {} dummy bare'.format(b)] = make_stack(
+ 'GT CR bank {} dummy bare'.format(b),
+ surfaces=[surfs['bottom FR'],
+ surfs['dashpot top'],
+ surfs['bank{} bot'.format(b)],
+ surfs['bank{} top'.format(b)]],
+ universes=[univs['water pin'],
+ univs['GTd empty nozzle'],
+ univs['GT empty nozzle'],
+ univs['CR bare'],
+ univs['CR blank bare']])
+
+ # final combination of all axial pieces for control rod bank "b"
+ univs['GT CR bank {}'.format(b)] = make_stack(
+ 'GT CR bank {}'.format(b), stack_surfs,
+ universes=[univs['water pin'],
+ univs['GT CR bank {} dummy nozzle'.format(b)],
+ univs['GT CR bank {} dummy nozzle'.format(b)],
+ univs['GT CR bank {} dummy'.format(b)],
+ univs['GT CR bank {} dummy'.format(b)],
+ univs['GT CR bank {} dummy grid (bottom)'.format(b)],
+ univs['GT CR bank {} dummy'.format(b)],
+ univs['GT CR bank {} dummy'.format(b)],
+ univs['GT CR bank {} dummy grid (intermediate)'.format(b)],
+ univs['GT CR bank {} dummy'.format(b)],
+ univs['GT CR bank {} dummy grid (intermediate)'.format(b)],
+ univs['GT CR bank {} dummy'.format(b)],
+ univs['GT CR bank {} dummy grid (intermediate)'.format(b)],
+ univs['GT CR bank {} dummy'.format(b)],
+ univs['GT CR bank {} dummy'.format(b)],
+ univs['GT CR bank {} dummy grid (bottom)'.format(b)],
+ univs['GT CR bank {} dummy'.format(b)],
+ univs['GT CR bank {} dummy'.format(b)],
+ univs['GT CR bank {} dummy'.format(b)],
+ univs['GT CR bank {} dummy bare'.format(b)],
+ univs['GT CR bank {} dummy bare'.format(b)]])
+
+
+ #### BURNABLE ABSORBER PIN CELLS
+
+ univs['BA'] = make_pin(
+ 'BA',
+ surfaces=[surfs['BA IR 1'],
+ surfs['BA IR 2'],
+ surfs['BA IR 3'],
+ surfs['BA IR 4'],
+ surfs['BA IR 5'],
+ surfs['BA IR 6'],
+ surfs['BA IR 7'],
+ surfs['BA IR 8']],
+ materials=[mats['Air'],
+ mats['SS'],
+ mats['Air'],
+ mats['BSG'],
+ mats['Air'],
+ mats['SS'],
+ mats['H2O'],
+ mats['Zr'],
+ mats['H2O']])
+
+ univs['BA grid (bottom)'] = make_pin(
+ 'BA grid (bottom)',
+ surfaces=[surfs['BA IR 1'],
+ surfs['BA IR 2'],
+ surfs['BA IR 3'],
+ surfs['BA IR 4'],
+ surfs['BA IR 5'],
+ surfs['BA IR 6'],
+ surfs['BA IR 7'],
+ surfs['BA IR 8']],
+ materials=[mats['Air'],
+ mats['SS'],
+ mats['Air'],
+ mats['BSG'],
+ mats['Air'],
+ mats['SS'],
+ mats['H2O'],
+ mats['Zr'],
+ mats['H2O']],
+ grid='bottom')
+
+ univs['BA grid (intermediate)'] = make_pin(
+ 'BA grid (intermediate)',
+ surfaces=[surfs['BA IR 1'],
+ surfs['BA IR 2'],
+ surfs['BA IR 3'],
+ surfs['BA IR 4'],
+ surfs['BA IR 5'],
+ surfs['BA IR 6'],
+ surfs['BA IR 7'],
+ surfs['BA IR 8']],
+ materials=[mats['Air'],
+ mats['SS'],
+ mats['Air'],
+ mats['BSG'],
+ mats['Air'],
+ mats['SS'],
+ mats['H2O'],
+ mats['Zr'],
+ mats['H2O']],
+ grid='intermediate')
+
+ univs['BA dashpot'] = make_pin(
+ 'BA dashpot',
+ surfaces=[surfs['BA IR 1'],
+ surfs['BA IR 2'],
+ surfs['BA IR 3'],
+ surfs['BA IR 4'],
+ surfs['BA IR 5'],
+ surfs['BA IR 6'],
+ surfs['GT dashpot IR'],
+ surfs['GT dashpot OR']],
+ materials=[mats['Air'],
+ mats['SS'],
+ mats['Air'],
+ mats['BSG'],
+ mats['Air'],
+ mats['SS'],
+ mats['H2O'],
+ mats['Zr'],
+ mats['H2O']])
+
+ univs['BA dashpot grid (bottom)'] = make_pin(
+ 'BA dashpot grid (bottom)',
+ surfaces=[surfs['BA IR 1'],
+ surfs['BA IR 2'],
+ surfs['BA IR 3'],
+ surfs['BA IR 4'],
+ surfs['BA IR 5'],
+ surfs['BA IR 6'],
+ surfs['GT dashpot IR'],
+ surfs['GT dashpot OR']],
+ materials=[mats['Air'],
+ mats['SS'],
+ mats['Air'],
+ mats['BSG'],
+ mats['Air'],
+ mats['SS'],
+ mats['H2O'],
+ mats['Zr'],
+ mats['H2O']],
+ grid='bottom')
+
+ univs['BA dashpot grid (intermediate)'] = make_pin(
+ 'BA dashpot grid (intermediate)',
+ surfaces=[surfs['BA IR 1'],
+ surfs['BA IR 2'],
+ surfs['BA IR 3'],
+ surfs['BA IR 4'],
+ surfs['BA IR 5'],
+ surfs['BA IR 6'],
+ surfs['GT dashpot IR'],
+ surfs['GT dashpot OR']],
+ materials=[mats['Air'],
+ mats['SS'],
+ mats['Air'],
+ mats['BSG'],
+ mats['Air'],
+ mats['SS'],
+ mats['H2O'],
+ mats['Zr'],
+ mats['H2O']],
+ grid='intermediate')
+
+ univs['BA blank SS'] = make_pin(
+ 'BA blank SS',
+ surfaces=[surfs['BA IR 6'],
+ surfs['BA IR 7'],
+ surfs['BA IR 8']],
+ materials=[mats['SS'],
+ mats['H2O'],
+ mats['Zr'],
+ mats['H2O']])
+
+ univs['BA blank SS bare'] = make_pin(
+ 'BA blank SS bare',
+ surfaces=[surfs['BA IR 6']],
+ materials=[mats['SS'],
+ mats['H2O']])
+
+ stack_surfs_BA = [
+ surfs['bot support plate'],
+ surfs['top support plate'],
+ surfs['top lower nozzle'],
+ surfs['top lower thimble'],
+ surfs['grid1bot'],
+ surfs['BA bot'],
+ surfs['grid1top'],
+ surfs['dashpot top'],
+ surfs['grid2bot'],
+ surfs['grid2top'],
+ surfs['grid3bot'],
+ surfs['grid3top'],
+ surfs['grid4bot'],
+ surfs['grid4top'],
+ surfs['top active core'],
+ surfs['grid5bot'],
+ surfs['grid5top'],
+ surfs['top pin plenum'],
+ surfs['top FR'],
+ surfs['bot upper nozzle'],
+ surfs['top upper nozzle']]
+
+ # Stack all axial pieces of control rod tubes together for each bank
+
+ univs['BA stack'] = make_stack(
+ 'BA stack', stack_surfs_BA,
universes=[univs['water pin'],
- univs['GTd empty nozzle'],
- univs['GT empty nozzle'],
- univs['CR bare'],
- univs['CR blank bare']])
+ univs['water pin'],
+ univs['water pin'],
+ univs['GTd empty'],
+ univs['GTd empty'],
+ univs['GTd empty grid (bottom)'],
+ univs['BA dashpot grid (bottom)'],
+ univs['BA dashpot'],
+ univs['BA'],
+ univs['BA grid (intermediate)'],
+ univs['BA'],
+ univs['BA grid (intermediate)'],
+ univs['BA'],
+ univs['BA grid (intermediate)'],
+ univs['BA'],
+ univs['BA blank SS'],
+ univs['BA blank SS'],
+ univs['BA blank SS'],
+ univs['BA blank SS'],
+ univs['BA blank SS'],
+ univs['BA blank SS bare'],
+ univs['water pin']])
- # final combination of all axial pieces for control rod bank "b"
- univs['GT CR bank {}'.format(b)] = make_stack(
- 'GT CR bank {}'.format(b), stack_surfs,
+
+ # Fuel pin cells
+ univs['SS pin'] = make_pin(
+ 'SS pin',
+ [surfs['clad OR']],
+ [mats['SS'], mats['H2O']])
+
+ univs['end plug'] = make_pin(
+ 'end plug',
+ [surfs['clad OR']],
+ [mats['Zr'], mats['H2O']])
+
+ univs['pin plenum'] = make_pin(
+ 'pin plenum',
+ surfaces=[surfs['plenum spring OR'],
+ surfs['clad IR'],
+ surfs['clad OR']],
+ materials=[mats['In'],
+ mats['He'],
+ mats['Zr'],
+ mats['H2O']])
+
+ univs['pin plenum grid (intermediate)'] = make_pin(
+ 'pin plenum grid (intermediate)',
+ surfaces=[surfs['plenum spring OR'],
+ surfs['clad IR'],
+ surfs['clad OR']],
+ materials=[mats['In'],
+ mats['He'],
+ mats['Zr'],
+ mats['H2O']],
+ grid='intermediate')
+
+
+ #### 1.6% ENRICHED FUEL PIN CELL
+
+ # Determine z position between each fuel pellet, omitting the surfaces
+ # corresponding to the very bottom and top of the active fuel length
+ n_pellets = 196
+ axial_splits = np.linspace(bottom_fuel_rod, top_active_core, n_pellets + 1)[1:-1]
+ axial_surfs = [openmc.ZPlane(z0=z) for z in axial_splits]
+
+ # Get z-cylinder surfaces for each ring
+ rings = [surfs['fuel ring {}'.format(i)] for i in range(1, n_rings)]
+
+ # Create universe for UO2 alone with axial/radial subdivision
+ uo2_cells = []
+ for axial_region in subdivide(axial_surfs):
+ for ring_region in subdivide(rings):
+ uo2_cells.append(openmc.Cell(
+ fill=mats['UO2 1.6'],
+ region=axial_region & ring_region
+ ))
+ univs['Subdivided Fuel (1.6%)'] = openmc.Universe(cells=uo2_cells)
+
+ outside_pin_surfaces = [surfs['clad IR'], surfs['clad OR']]
+ outside_pin_mats = [mats['He'], mats['Zr'], mats['H2O']]
+
+ univs['Outside pin'] = make_pin(
+ 'Outside pin',
+ surfaces=outside_pin_surfaces,
+ materials=outside_pin_mats)
+
+ univs['Outside pin grid (bottom)'] = make_pin(
+ 'Outside pin grid (bottom)',
+ surfaces=outside_pin_surfaces,
+ materials=outside_pin_mats,
+ grid='bottom')
+
+ univs['Outside pin grid (intermediate)'] = make_pin(
+ 'Outside pin grid (intermediate)',
+ surfaces=outside_pin_surfaces,
+ materials=outside_pin_mats,
+ grid='intermediate')
+
+ # Stack all axial pieces of 1.6% enriched fuel pin cell
+
+ within_fuel_surfs = [
+ surfs['grid1bot'],
+ surfs['grid1top'],
+ surfs['dashpot top'],
+ surfs['grid2bot'],
+ surfs['grid2top'],
+ surfs['grid3bot'],
+ surfs['grid3top'],
+ surfs['grid4bot'],
+ surfs['grid4top']
+ ]
+
+ univs['Fuel pin (1.6%) stack'] = make_pin_stack(
+ 'Fuel pin (1.6%) stack',
+ zsurfaces=within_fuel_surfs,
+ universes=[
+ univs['Outside pin'],
+ univs['Outside pin grid (bottom)'],
+ univs['Outside pin'],
+ univs['Outside pin'],
+ univs['Outside pin grid (intermediate)'],
+ univs['Outside pin'],
+ univs['Outside pin grid (intermediate)'],
+ univs['Outside pin'],
+ univs['Outside pin grid (intermediate)'],
+ univs['Outside pin']
+ ],
+ boundary=surfs['pellet OR'],
+ pin_universe=univs['Subdivided Fuel (1.6%)'])
+
+ fuel_stack_surfs = [
+ surfs['bot support plate'],
+ surfs['top support plate'],
+ surfs['top lower nozzle'],
+ surfs['top lower thimble'],
+ surfs['top active core'],
+ surfs['grid5bot'],
+ surfs['grid5top'],
+ surfs['top pin plenum'],
+ surfs['top FR'],
+ surfs['bot upper nozzle'],
+ surfs['top upper nozzle']
+ ]
+
+ univs['Fuel (1.6%) stack'] = make_stack(
+ 'Fuel (1.6%) stack',
+ surfaces=fuel_stack_surfs,
universes=[univs['water pin'],
- univs['GT CR bank {} dummy nozzle'.format(b)],
- univs['GT CR bank {} dummy nozzle'.format(b)],
- univs['GT CR bank {} dummy'.format(b)],
- univs['GT CR bank {} dummy'.format(b)],
- univs['GT CR bank {} dummy grid (bottom)'.format(b)],
- univs['GT CR bank {} dummy'.format(b)],
- univs['GT CR bank {} dummy'.format(b)],
- univs['GT CR bank {} dummy grid (intermediate)'.format(b)],
- univs['GT CR bank {} dummy'.format(b)],
- univs['GT CR bank {} dummy grid (intermediate)'.format(b)],
- univs['GT CR bank {} dummy'.format(b)],
- univs['GT CR bank {} dummy grid (intermediate)'.format(b)],
- univs['GT CR bank {} dummy'.format(b)],
- univs['GT CR bank {} dummy'.format(b)],
- univs['GT CR bank {} dummy grid (bottom)'.format(b)],
- univs['GT CR bank {} dummy'.format(b)],
- univs['GT CR bank {} dummy'.format(b)],
- univs['GT CR bank {} dummy'.format(b)],
- univs['GT CR bank {} dummy bare'.format(b)],
- univs['GT CR bank {} dummy bare'.format(b)]])
+ univs['SS pin'],
+ univs['SS pin'],
+ univs['end plug'],
+ univs['Fuel pin (1.6%) stack'],
+ univs['pin plenum'],
+ univs['pin plenum grid (intermediate)'],
+ univs['pin plenum'],
+ univs['end plug'],
+ univs['water pin'],
+ univs['SS pin'],
+ univs['water pin']])
-#### BURNABLE ABSORBER PIN CELLS
+ #### 2.4% ENRICHED FUEL PIN CELL
-univs['BA'] = make_pin(
- 'BA',
- surfaces=[surfs['BA IR 1'],
- surfs['BA IR 2'],
- surfs['BA IR 3'],
- surfs['BA IR 4'],
- surfs['BA IR 5'],
- surfs['BA IR 6'],
- surfs['BA IR 7'],
- surfs['BA IR 8']],
- materials=[mats['Air'],
- mats['SS'],
- mats['Air'],
- mats['BSG'],
- mats['Air'],
- mats['SS'],
- mats['H2O'],
- mats['Zr'],
- mats['H2O']])
+ # Create universe for UO2 alone with axial/radial subdivision
+ uo2_cells = []
+ for axial_region in subdivide(axial_surfs):
+ for ring_region in subdivide(rings):
+ uo2_cells.append(openmc.Cell(
+ fill=mats['UO2 2.4'],
+ region=axial_region & ring_region
+ ))
+ univs['Subdivided Fuel (2.4%)'] = openmc.Universe(cells=uo2_cells)
-univs['BA grid (bottom)'] = make_pin(
- 'BA grid (bottom)',
- surfaces=[surfs['BA IR 1'],
- surfs['BA IR 2'],
- surfs['BA IR 3'],
- surfs['BA IR 4'],
- surfs['BA IR 5'],
- surfs['BA IR 6'],
- surfs['BA IR 7'],
- surfs['BA IR 8']],
- materials=[mats['Air'],
- mats['SS'],
- mats['Air'],
- mats['BSG'],
- mats['Air'],
- mats['SS'],
- mats['H2O'],
- mats['Zr'],
- mats['H2O']],
- grid='bottom')
+ # Stack all axial pieces of 2.4% enriched fuel pin cell
-univs['BA grid (intermediate)'] = make_pin(
- 'BA grid (intermediate)',
- surfaces=[surfs['BA IR 1'],
- surfs['BA IR 2'],
- surfs['BA IR 3'],
- surfs['BA IR 4'],
- surfs['BA IR 5'],
- surfs['BA IR 6'],
- surfs['BA IR 7'],
- surfs['BA IR 8']],
- materials=[mats['Air'],
- mats['SS'],
- mats['Air'],
- mats['BSG'],
- mats['Air'],
- mats['SS'],
- mats['H2O'],
- mats['Zr'],
- mats['H2O']],
- grid='intermediate')
+ univs['Fuel pin (2.4%) stack'] = make_pin_stack(
+ 'Fuel pin (2.4%) stack',
+ zsurfaces=within_fuel_surfs,
+ universes=[
+ univs['Outside pin'],
+ univs['Outside pin grid (bottom)'],
+ univs['Outside pin'],
+ univs['Outside pin'],
+ univs['Outside pin grid (intermediate)'],
+ univs['Outside pin'],
+ univs['Outside pin grid (intermediate)'],
+ univs['Outside pin'],
+ univs['Outside pin grid (intermediate)'],
+ univs['Outside pin']
+ ],
+ boundary=surfs['pellet OR'],
+ pin_universe=univs['Subdivided Fuel (2.4%)'])
-univs['BA dashpot'] = make_pin(
- 'BA dashpot',
- surfaces=[surfs['BA IR 1'],
- surfs['BA IR 2'],
- surfs['BA IR 3'],
- surfs['BA IR 4'],
- surfs['BA IR 5'],
- surfs['BA IR 6'],
- surfs['GT dashpot IR'],
- surfs['GT dashpot OR']],
- materials=[mats['Air'],
- mats['SS'],
- mats['Air'],
- mats['BSG'],
- mats['Air'],
- mats['SS'],
- mats['H2O'],
- mats['Zr'],
- mats['H2O']])
-
-univs['BA dashpot grid (bottom)'] = make_pin(
- 'BA dashpot grid (bottom)',
- surfaces=[surfs['BA IR 1'],
- surfs['BA IR 2'],
- surfs['BA IR 3'],
- surfs['BA IR 4'],
- surfs['BA IR 5'],
- surfs['BA IR 6'],
- surfs['GT dashpot IR'],
- surfs['GT dashpot OR']],
- materials=[mats['Air'],
- mats['SS'],
- mats['Air'],
- mats['BSG'],
- mats['Air'],
- mats['SS'],
- mats['H2O'],
- mats['Zr'],
- mats['H2O']],
- grid='bottom')
-
-univs['BA dashpot grid (intermediate)'] = make_pin(
- 'BA dashpot grid (intermediate)',
- surfaces=[surfs['BA IR 1'],
- surfs['BA IR 2'],
- surfs['BA IR 3'],
- surfs['BA IR 4'],
- surfs['BA IR 5'],
- surfs['BA IR 6'],
- surfs['GT dashpot IR'],
- surfs['GT dashpot OR']],
- materials=[mats['Air'],
- mats['SS'],
- mats['Air'],
- mats['BSG'],
- mats['Air'],
- mats['SS'],
- mats['H2O'],
- mats['Zr'],
- mats['H2O']],
- grid='intermediate')
-
-univs['BA blank SS'] = make_pin(
- 'BA blank SS',
- surfaces=[surfs['BA IR 6'],
- surfs['BA IR 7'],
- surfs['BA IR 8']],
- materials=[mats['SS'],
- mats['H2O'],
- mats['Zr'],
- mats['H2O']])
-
-univs['BA blank SS bare'] = make_pin(
- 'BA blank SS bare',
- surfaces=[surfs['BA IR 6']],
- materials=[mats['SS'],
- mats['H2O']])
-
-stack_surfs_BA = [
- surfs['bot support plate'],
- surfs['top support plate'],
- surfs['top lower nozzle'],
- surfs['top lower thimble'],
- surfs['grid1bot'],
- surfs['BA bot'],
- surfs['grid1top'],
- surfs['dashpot top'],
- surfs['grid2bot'],
- surfs['grid2top'],
- surfs['grid3bot'],
- surfs['grid3top'],
- surfs['grid4bot'],
- surfs['grid4top'],
- surfs['top active core'],
- surfs['grid5bot'],
- surfs['grid5top'],
- surfs['top pin plenum'],
- surfs['top FR'],
- surfs['bot upper nozzle'],
- surfs['top upper nozzle']]
-
-# Stack all axial pieces of control rod tubes together for each bank
-
-univs['BA stack'] = make_stack(
- 'BA stack', stack_surfs_BA,
- universes=[univs['water pin'],
- univs['water pin'],
- univs['water pin'],
- univs['GTd empty'],
- univs['GTd empty'],
- univs['GTd empty grid (bottom)'],
- univs['BA dashpot grid (bottom)'],
- univs['BA dashpot'],
- univs['BA'],
- univs['BA grid (intermediate)'],
- univs['BA'],
- univs['BA grid (intermediate)'],
- univs['BA'],
- univs['BA grid (intermediate)'],
- univs['BA'],
- univs['BA blank SS'],
- univs['BA blank SS'],
- univs['BA blank SS'],
- univs['BA blank SS'],
- univs['BA blank SS'],
- univs['BA blank SS bare'],
- univs['water pin']])
+ univs['Fuel (2.4%) stack'] = make_stack(
+ 'Fuel (2.4%) stack',
+ surfaces=fuel_stack_surfs,
+ universes=[univs['water pin'],
+ univs['SS pin'],
+ univs['SS pin'],
+ univs['end plug'],
+ univs['Fuel pin (2.4%) stack'],
+ univs['pin plenum'],
+ univs['pin plenum grid (intermediate)'],
+ univs['pin plenum'],
+ univs['end plug'],
+ univs['water pin'],
+ univs['SS pin'],
+ univs['water pin']])
-#### FUEL PIN CELLS
+ #### 3.1% ENRICHED FUEL PIN CELL
-univs['SS pin'] = make_pin(
- 'SS pin',
- surfaces=[surfs['clad OR']],
- materials=[mats['SS'],
- mats['H2O']])
+ # Create universe for UO2 alone with axial/radial subdivision
+ uo2_cells = []
+ for axial_region in subdivide(axial_surfs):
+ for ring_region in subdivide(rings):
+ uo2_cells.append(openmc.Cell(
+ fill=mats['UO2 3.1'],
+ region=axial_region & ring_region
+ ))
+ univs['Subdivided Fuel (3.1%)'] = openmc.Universe(cells=uo2_cells)
-univs['end plug'] = make_pin(
- 'end plug',
- surfaces=[surfs['clad OR']],
- materials=[mats['Zr'],
- mats['H2O']])
+ # Stack all axial pieces of 3.1% enriched fuel pin cell
-univs['pin plenum'] = make_pin(
- 'pin plenum',
- surfaces=[surfs['plenum spring OR'],
- surfs['clad IR'],
- surfs['clad OR']],
- materials=[mats['In'],
- mats['He'],
- mats['Zr'],
- mats['H2O']])
+ univs['Fuel pin (3.1%) stack'] = make_pin_stack(
+ 'Fuel pin (3.1%) stack',
+ zsurfaces=within_fuel_surfs,
+ universes=[
+ univs['Outside pin'],
+ univs['Outside pin grid (bottom)'],
+ univs['Outside pin'],
+ univs['Outside pin'],
+ univs['Outside pin grid (intermediate)'],
+ univs['Outside pin'],
+ univs['Outside pin grid (intermediate)'],
+ univs['Outside pin'],
+ univs['Outside pin grid (intermediate)'],
+ univs['Outside pin']
+ ],
+ boundary=surfs['pellet OR'],
+ pin_universe=univs['Subdivided Fuel (3.1%)'])
-univs['pin plenum grid (intermediate)'] = make_pin(
- 'pin plenum grid (intermediate)',
- surfaces=[surfs['plenum spring OR'],
- surfs['clad IR'],
- surfs['clad OR']],
- materials=[mats['In'],
- mats['He'],
- mats['Zr'],
- mats['H2O']],
- grid='intermediate')
+ univs['Fuel (3.1%) stack'] = make_stack(
+ 'Fuel (3.1%) stack',
+ surfaces=fuel_stack_surfs,
+ universes=[univs['water pin'],
+ univs['SS pin'],
+ univs['SS pin'],
+ univs['end plug'],
+ univs['Fuel pin (3.1%) stack'],
+ univs['pin plenum'],
+ univs['pin plenum grid (intermediate)'],
+ univs['pin plenum'],
+ univs['end plug'],
+ univs['water pin'],
+ univs['SS pin'],
+ univs['water pin']])
-
-#### 1.6% ENRICHED FUEL PIN CELL
-
-# Determine z position between each fuel pellet, omitting the surfaces
-# corresponding to the very bottom and top of the active fuel length
-n_pellets = 196
-axial_splits = np.linspace(bottom_fuel_rod, top_active_core, n_pellets + 1)[1:-1]
-axial_surfs = [openmc.ZPlane(z0=z) for z in axial_splits]
-
-# Get z-cylinder surfaces for each ring
-rings = [surfs['fuel ring {}'.format(i)] for i in range(1, n_rings)]
-
-# Create universe for UO2 alone with axial/radial subdivision
-uo2_cells = []
-for axial_region in subdivide(axial_surfs):
- for ring_region in subdivide(rings):
- uo2_cells.append(openmc.Cell(
- fill=mats['UO2 1.6'],
- region=axial_region & ring_region
- ))
-univs['Subdivided Fuel (1.6%)'] = openmc.Universe(cells=uo2_cells)
-
-outside_pin_surfaces = [surfs['clad IR'], surfs['clad OR']]
-outside_pin_mats = [mats['He'], mats['Zr'], mats['H2O']]
-
-univs['Outside pin'] = make_pin(
- 'Outside pin',
- surfaces=outside_pin_surfaces,
- materials=outside_pin_mats)
-
-univs['Outside pin grid (bottom)'] = make_pin(
- 'Outside pin grid (bottom)',
- surfaces=outside_pin_surfaces,
- materials=outside_pin_mats,
- grid='bottom')
-
-univs['Outside pin grid (intermediate)'] = make_pin(
- 'Outside pin grid (intermediate)',
- surfaces=outside_pin_surfaces,
- materials=outside_pin_mats,
- grid='intermediate')
-
-# Stack all axial pieces of 1.6% enriched fuel pin cell
-
-within_fuel_surfs = [
- surfs['grid1bot'],
- surfs['grid1top'],
- surfs['dashpot top'],
- surfs['grid2bot'],
- surfs['grid2top'],
- surfs['grid3bot'],
- surfs['grid3top'],
- surfs['grid4bot'],
- surfs['grid4top']
-]
-
-univs['Fuel pin (1.6%) stack'] = make_pin_stack(
- 'Fuel pin (1.6%) stack',
- zsurfaces=within_fuel_surfs,
- universes=[
- univs['Outside pin'],
- univs['Outside pin grid (bottom)'],
- univs['Outside pin'],
- univs['Outside pin'],
- univs['Outside pin grid (intermediate)'],
- univs['Outside pin'],
- univs['Outside pin grid (intermediate)'],
- univs['Outside pin'],
- univs['Outside pin grid (intermediate)'],
- univs['Outside pin']
- ],
- boundary=surfs['pellet OR'],
- pin_universe=univs['Subdivided Fuel (1.6%)'])
-
-fuel_stack_surfs = [
- surfs['bot support plate'],
- surfs['top support plate'],
- surfs['top lower nozzle'],
- surfs['top lower thimble'],
- surfs['top active core'],
- surfs['grid5bot'],
- surfs['grid5top'],
- surfs['top pin plenum'],
- surfs['top FR'],
- surfs['bot upper nozzle'],
- surfs['top upper nozzle']
-]
-
-univs['Fuel (1.6%) stack'] = make_stack(
- 'Fuel (1.6%) stack',
- surfaces=fuel_stack_surfs,
- universes=[univs['water pin'],
- univs['SS pin'],
- univs['SS pin'],
- univs['end plug'],
- univs['Fuel pin (1.6%) stack'],
- univs['pin plenum'],
- univs['pin plenum grid (intermediate)'],
- univs['pin plenum'],
- univs['end plug'],
- univs['water pin'],
- univs['SS pin'],
- univs['water pin']])
-
-
-#### 2.4% ENRICHED FUEL PIN CELL
-
-# Create universe for UO2 alone with axial/radial subdivision
-uo2_cells = []
-for axial_region in subdivide(axial_surfs):
- for ring_region in subdivide(rings):
- uo2_cells.append(openmc.Cell(
- fill=mats['UO2 2.4'],
- region=axial_region & ring_region
- ))
-univs['Subdivided Fuel (2.4%)'] = openmc.Universe(cells=uo2_cells)
-
-# Stack all axial pieces of 2.4% enriched fuel pin cell
-
-univs['Fuel pin (2.4%) stack'] = make_pin_stack(
- 'Fuel pin (2.4%) stack',
- zsurfaces=within_fuel_surfs,
- universes=[
- univs['Outside pin'],
- univs['Outside pin grid (bottom)'],
- univs['Outside pin'],
- univs['Outside pin'],
- univs['Outside pin grid (intermediate)'],
- univs['Outside pin'],
- univs['Outside pin grid (intermediate)'],
- univs['Outside pin'],
- univs['Outside pin grid (intermediate)'],
- univs['Outside pin']
- ],
- boundary=surfs['pellet OR'],
- pin_universe=univs['Subdivided Fuel (2.4%)'])
-
-univs['Fuel (2.4%) stack'] = make_stack(
- 'Fuel (2.4%) stack',
- surfaces=fuel_stack_surfs,
- universes=[univs['water pin'],
- univs['SS pin'],
- univs['SS pin'],
- univs['end plug'],
- univs['Fuel pin (2.4%) stack'],
- univs['pin plenum'],
- univs['pin plenum grid (intermediate)'],
- univs['pin plenum'],
- univs['end plug'],
- univs['water pin'],
- univs['SS pin'],
- univs['water pin']])
-
-
-#### 3.1% ENRICHED FUEL PIN CELL
-
-# Create universe for UO2 alone with axial/radial subdivision
-uo2_cells = []
-for axial_region in subdivide(axial_surfs):
- for ring_region in subdivide(rings):
- uo2_cells.append(openmc.Cell(
- fill=mats['UO2 3.1'],
- region=axial_region & ring_region
- ))
-univs['Subdivided Fuel (3.1%)'] = openmc.Universe(cells=uo2_cells)
-
-# Stack all axial pieces of 3.1% enriched fuel pin cell
-
-univs['Fuel pin (3.1%) stack'] = make_pin_stack(
- 'Fuel pin (3.1%) stack',
- zsurfaces=within_fuel_surfs,
- universes=[
- univs['Outside pin'],
- univs['Outside pin grid (bottom)'],
- univs['Outside pin'],
- univs['Outside pin'],
- univs['Outside pin grid (intermediate)'],
- univs['Outside pin'],
- univs['Outside pin grid (intermediate)'],
- univs['Outside pin'],
- univs['Outside pin grid (intermediate)'],
- univs['Outside pin']
- ],
- boundary=surfs['pellet OR'],
- pin_universe=univs['Subdivided Fuel (3.1%)'])
-
-univs['Fuel (3.1%) stack'] = make_stack(
- 'Fuel (3.1%) stack',
- surfaces=fuel_stack_surfs,
- universes=[univs['water pin'],
- univs['SS pin'],
- univs['SS pin'],
- univs['end plug'],
- univs['Fuel pin (3.1%) stack'],
- univs['pin plenum'],
- univs['pin plenum grid (intermediate)'],
- univs['pin plenum'],
- univs['end plug'],
- univs['water pin'],
- univs['SS pin'],
- univs['water pin']])
+ return univs