armi
armi copied to clipboard
There are too many (hex) assembly-specific tools in Core
The Core class in ARMI is meant to be useful to represent all reactor cores:
https://github.com/terrapower/armi/blob/f580e3fe2120f93a0fbb0b5daa8424c9394c4698/armi/reactor/reactors.py#L226
But there are several major items in this class for assembly-based reactors:
https://github.com/terrapower/armi/blob/f580e3fe2120f93a0fbb0b5daa8424c9394c4698/armi/reactor/reactors.py#L418
https://github.com/terrapower/armi/blob/f580e3fe2120f93a0fbb0b5daa8424c9394c4698/armi/reactor/reactors.py#L479
https://github.com/terrapower/armi/blob/f580e3fe2120f93a0fbb0b5daa8424c9394c4698/armi/reactor/reactors.py#L489
https://github.com/terrapower/armi/blob/f580e3fe2120f93a0fbb0b5daa8424c9394c4698/armi/reactor/reactors.py#L539
Wouldn't it better if we had a subclass of
Corenamed something likeAssemblyCoreor evenHexAssemblyCore?
ARMI was developed with sodium-cooled fast reactors and molten salt reactors as its primary users. Thus, ARMI has some lingering assumptions that work best for those reactors. We would like to find and eliminate all such assumptions, particularly to improve our support for:
- water-cooled reactors
- TRISO-fuel reactors
- molten chloride fast reactors
- And so many more...
We should also separate out all assumptions that the core is pin-type, or that all assemblies are hex-shaped.