-
Notifications
You must be signed in to change notification settings - Fork 89
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Resolving axial component linkages for blocks with multiple identical component definitions #769
Comments
@albeanth are there any thoughts on this? I am getting to a point where this is actively blocking, so I'm hoping we can make an effort to resolve this. More than willing to help here. |
The nice thing about the option that I mentioned above (to base the linking off of a block's grid) is that blocks that look "normal" already get a grid auto-defined when the block is instantiated: Lines 2054 to 2115 in 7603143
|
Thanks for pinging on this again @keckler. @albeanth let's set up a discussion internally about how to handle this and maybe make a simple use case that can serve as a unit test. I feel like grids would be a natural way to connect components together but I have to admit that I haven't even studied the current implementation to know if this is a good fit or if this would be a significant change. |
In the current implementation of the
axialExpansionChanger
, linkages between axially-continuous components are inferred via a set of criteria:armi/armi/reactor/converters/axialExpansionChanger.py
Lines 480 to 529 in a4b54ca
However, at least one case slips through the cracks of this logic. If one defines a block with multiple independent pins that have the same exact geometry and material class, but that utilize different enrichments (or something else defined via the material modifications).
In such a case, the
axialExpansionChanger
will not be able to disambiguate the identical components, and when trying to link them to the components in the blocks above/below, it won't know which ones to link up and it will crash.This might sound like an unlikely scenario, but I am trying to model more than one assembly that has these properties.
My first thought is that in such a complicated scenario, we might force the user to use an explicitly-defined grid for their block, as is demonstrated in the LWR blueprints tutorial:
https://terrapower.github.io/armi/tutorials/walkthrough_lwr_inputs.html
That would make the various pin positions completely unambiguous, and the linkage relationships should be completely obvious.
@albeanth @jakehader @onufer
The text was updated successfully, but these errors were encountered: