From 11a4638849560641b6778dda7d30d5b4f751582b Mon Sep 17 00:00:00 2001 From: Ethan Peterson Date: Tue, 26 Sep 2023 03:49:46 -0400 Subject: [PATCH] Faster indexing in `MicroXS` object (#2702) Co-authored-by: Paul Romano --- openmc/deplete/microxs.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/openmc/deplete/microxs.py b/openmc/deplete/microxs.py index 18f4317f0a..59c7b18e12 100644 --- a/openmc/deplete/microxs.py +++ b/openmc/deplete/microxs.py @@ -189,6 +189,8 @@ class MicroXS: self.data = data self.nuclides = nuclides self.reactions = reactions + self._index_nuc = {nuc: i for i, nuc in enumerate(nuclides)} + self._index_rx = {rx: i for i, rx in enumerate(reactions)} # TODO: Add a classmethod for generating MicroXS directly from cross section # data using a known flux spectrum @@ -224,8 +226,8 @@ class MicroXS: def __getitem__(self, index): nuc, rx = index - i_nuc = self.nuclides.index(nuc) - i_rx = self.reactions.index(rx) + i_nuc = self._index_nuc[nuc] + i_rx = self._index_rx[rx] return self.data[i_nuc, i_rx] def to_csv(self, *args, **kwargs):