Faster indexing in MicroXS object (#2702)

Co-authored-by: Paul Romano <paul.k.romano@gmail.com>
This commit is contained in:
Ethan Peterson 2023-09-26 03:49:46 -04:00 committed by GitHub
parent 9cf2f22f24
commit 11a4638849
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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):