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
232 stars 89 forks source link

There are too many (hex) assembly-specific tools in Core #1448

Open john-science opened 1 year ago

john-science commented 1 year ago

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 Core named something like AssemblyCore or even HexAssemblyCore?

john-science commented 7 months ago

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:

We should also separate out all assumptions that the core is pin-type, or that all assemblies are hex-shaped.