You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The first is its name. The logic in this function is pretty confusing, IMO, but to my understanding it does NOT make a table of reaction rates. It makes a table of 1-group macroscopic cross sections. So the name seems confusing and/or wrong. Please, somebody correct me if I'm wrong here, because tracing this method up the tree was pretty confusing.
The second issue is the inefficiency. For n nuclides in c children of the composite (likely a block) that is passed in, this method will find the core via getAncestorWithFlagsn*c times, get the XSID of the via calls to getAncestor().getMicroSuffix() block n*c times, and get the integrated MG flux via calls to getIntegratedMgFluxn*c + 1 times. Each of those operations only need to be called once for a given block. They are being done many extra times because makeReactionRateTable uses getReactionRates to do the work, but getReactionRates uses a helper method which makes all of the aforementioned duplicate calls.
This code was touched during #911 , but it appears that the mentioned inefficiencies were already in place before that, so this has been around for a while.
armi/armi/physics/neutronics/isotopicDepletion/crossSectionTable.py
Lines 164 to 188 in 4d45672
This function has a couple of issues.
The first is its name. The logic in this function is pretty confusing, IMO, but to my understanding it does NOT make a table of reaction rates. It makes a table of 1-group macroscopic cross sections. So the name seems confusing and/or wrong. Please, somebody correct me if I'm wrong here, because tracing this method up the tree was pretty confusing.
The second issue is the inefficiency. For
n
nuclides inc
children of the composite (likely a block) that is passed in, this method will find thecore
viagetAncestorWithFlags
n*c
times, get the XSID of the via calls togetAncestor().getMicroSuffix()
blockn*c
times, and get the integrated MG flux via calls togetIntegratedMgFlux
n*c + 1
times. Each of those operations only need to be called once for a given block. They are being done many extra times becausemakeReactionRateTable
usesgetReactionRates
to do the work, butgetReactionRates
uses a helper method which makes all of the aforementioned duplicate calls.This code was touched during #911 , but it appears that the mentioned inefficiencies were already in place before that, so this has been around for a while.
Kinda-not-really related to #813
The text was updated successfully, but these errors were encountered: