terrapower / armi

An open-source nuclear reactor analysis automation framework that helps design teams increase efficiency and quality
https://terrapower.github.io/armi/
Apache License 2.0
212 stars 82 forks source link

`composite.getReactionRates()` doesn't work on the `core` level #1754

Open keckler opened 3 days ago

keckler commented 3 days ago

Something appears to be wrong with this method: https://github.com/terrapower/armi/blob/9d6e2b0097ac2e203c7726fdaa44a1a854648938/armi/reactor/composites.py#L3060-L3092

I recently loaded up a database and tried to examine some reaction rates as follows:

>  r.core.getReactionRates("U235")
Loading microscopic cross section library `ISOTXS`
 {'nG': 0, 'nF': 0, 'n2n': 0, 'nA': 0, 'nP': 0, 'n3n': 0}

> r.core.getAssemblyWithStringLocation('002-001').getReactionRates("U235")
{'nG': 4.219163274625927e+16,
 'nF': 1.5933660772471552e+17,
 'n2n': 86100493155576.52,
 'nA': 0.0,
 'nP': 0.0,
 'n3n': 0}

>  r.core.getAssemblyWithStringLocation('002-001').getReactionRates("U238")
{'nG': 1.3747239159395538e+17,
 'nF': 2.0985393232144132e+16,
 'n2n': 706063666454843.1,
 'nA': 0.0,
 'nP': 0.0,
 'n3n': 0}

It doesn't make sense that the returned reaction rates for the core as a whole are zero, but non-zero values are returned for individual assemblies from the same core.