Skip to content

Commit f7f40a7

Browse files
committed
Adding the option to specify a universe level when coloring by cell.
1 parent fa699db commit f7f40a7

3 files changed

Lines changed: 33 additions & 5 deletions

File tree

openmc_plotter/docks.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,14 @@ def _createOptionsBox(self):
145145
self.colorbyBox.currentTextChanged[str].connect(
146146
self.main_window.editColorBy)
147147

148+
# Universe level (applies to cell coloring)
149+
self.universeLevelBox = QComboBox(self)
150+
self.universeLevelBox.addItem('lowest')
151+
for i in range(self.model.max_universe_levels):
152+
self.universeLevelBox.addItem(str(i))
153+
self.universeLevelBox.currentTextChanged[str].connect(
154+
self.main_window.editUniverseLevel)
155+
148156
# Alpha
149157
self.domainAlphaBox = QDoubleSpinBox(self)
150158
self.domainAlphaBox.setValue(self.model.activeView.domainAlpha)
@@ -180,6 +188,7 @@ def _createOptionsBox(self):
180188
self.opLayout.addRow('Height:', self.heightBox)
181189
self.opLayout.addRow('Basis:', self.basisBox)
182190
self.opLayout.addRow('Color By:', self.colorbyBox)
191+
self.opLayout.addRow('Universe Level', self.universeLevelBox)
183192
self.opLayout.addRow('Plot alpha:', self.domainAlphaBox)
184193
self.opLayout.addRow('Visible:', self.visibilityBox)
185194
self.opLayout.addRow('Outlines:', self.outlinesBox)
@@ -250,6 +259,13 @@ def updateHeight(self):
250259

251260
def updateColorBy(self):
252261
self.colorbyBox.setCurrentText(self.model.activeView.colorby)
262+
if self.model.activeView.colorby != 'cell':
263+
self.universeLevelBox.setEnabled(False)
264+
else:
265+
self.universeLevelBox.setEnabled(True)
266+
267+
def updateUniverseLevel(self):
268+
self.universeLevelBox.setCurrentIndex(self.model.activeView.level + 1)
253269

254270
def updatePlotAlpha(self):
255271
self.domainAlphaBox.setValue(self.model.activeView.domainAlpha)

openmc_plotter/main_window.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
from .overlays import ShortcutsOverlay
2727
from .tools import ExportDataDialog
2828

29+
_COORD_LEVELS = 0
2930

3031
def _openmcReload():
3132
# reset OpenMC memory, instances
@@ -35,7 +36,6 @@ def _openmcReload():
3536
openmc.lib.settings.output_summary = False
3637
openmc.lib.init(["-c"])
3738

38-
3939
class MainWindow(QMainWindow):
4040
def __init__(self, font=QtGui.QFontMetrics(QtGui.QFont()), screen_size=QtCore.QSize()):
4141
super().__init__()
@@ -627,6 +627,15 @@ def editColorBy(self, domain_kind, apply=False):
627627
if apply:
628628
self.applyChanges()
629629

630+
def editUniverseLevel(self, level, apply=False):
631+
if level == 'lowest':
632+
self.model.activeView.level = -1
633+
else:
634+
self.model.activeView.level = int(level)
635+
self.dock.updateUniverseLevel()
636+
if apply:
637+
self.applyChanges()
638+
630639
def toggleOverlaps(self, state, apply=False):
631640
self.model.activeView.color_overlaps = bool(state)
632641
self.colorDialog.updateOverlap()

openmc_plotter/plotmodel.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ def __init__(self):
9696
# Retrieve OpenMC Cells/Materials
9797
self.modelCells = openmc.lib.cells
9898
self.modelMaterials = openmc.lib.materials
99+
self.max_universe_levels = openmc.lib._coord_levels()
99100

100101
# Cell/Material ID by coordinates
101102
self.ids = None
@@ -170,7 +171,9 @@ def getDefaultView(self):
170171
else:
171172
zcenter = 0.00
172173

173-
default = PlotView([xcenter, ycenter, zcenter], width, height)
174+
level = self.max_universe_levels
175+
176+
default = PlotView([xcenter, ycenter, zcenter], width, height, level)
174177
return default
175178

176179
def resetColors(self):
@@ -653,13 +656,13 @@ class PlotView(openmc.lib.plot._PlotBase):
653656
Label of the currently selected tally
654657
"""
655658

656-
def __init__(self, origin, width, height):
659+
def __init__(self, origin, width, height, level):
657660
""" Initialize PlotView attributes """
658661

659662
super().__init__()
660663

661664
# View Parameters
662-
self.level = -1
665+
self.level = level
663666
self.origin = origin
664667
self.width = width
665668
self.height = height
@@ -791,7 +794,7 @@ def urc(self):
791794
else:
792795
x = self.origin[0] + self.width / 2.0
793796
y = self.origin[1]
794-
z = self.origin[2] + height / 2.0
797+
z = self.origin[2] + self.height / 2.0
795798
return x, y, z
796799

797800
def adopt_plotbase(self, view):

0 commit comments

Comments
 (0)