-
Notifications
You must be signed in to change notification settings - Fork 93
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
Accounting for symmetry in volume-integrated parameters #2017
Conversation
Working on running a test case to demonstrate that the parameters are correctly accounted for in assemblies that are split between symmetric portions of the core. |
The core.add method uses assembly.moveTo to place assemblies in the reactor. Since moveTo now accounts for changes in symmetry factor, having an additional adjustment in the core.add method is incorrect and would double account for any change in symmetry factor.
@bsculac Are you hoping this PR will make it into the (imminent) ARMI 0.5.0 release? |
I don't think it needs to hold up the release. I'm not sure I'll have enough time to wrap it up before code freeze, I'm out until after Thanksgiving. |
the unit test was comparing the power in a block between two timesteps. the block was being moved from a non-central location to the central location, where only 1/3rd of the assembly should be in the reactor. The assert in the test was incorrect in that it was saying the power in the assembly should be the same before and after the move. This is wrong for a few reasons, first being that the power is no longer valid after the move. But aside from that, the power should be 1/3rd what it was because the assembly is only 1/3rd in the core. Really it should be zeroed out but other non-power parameters that are volume calculated should be reduced by the amount that the assembly actually exists in the reactor. Additionally, the power in the central assembly in the example was calculated assuming the full assembly exists in the core. the example was modified to correctly calculate the power in the central assembly, which then required FuelHandler._getParamMax to account for the symmetry factor of the assembly, otherwise the ordering was incorrect and the shuffling in the example occured in a different order.
John and I talked about this for a bit. I think we arrived at two conclusions:
@john-science please correct me if I've misrepresented our discussion, or if you'd like to add anything. |
Co-authored-by: John Stilley <1831479+john-science@users.noreply.github.com>
Co-authored-by: John Stilley <1831479+john-science@users.noreply.github.com>
…r/armi into symmetry_parameter_fix
What is the change?
The block parameters
initialB10ComponentVolume
,massHmBOL
, andmolesHmBOL
did not have a location tag that would cause them to be multiplied by the symmetry factor when expanding to full core, so the VOLUME_INTEGRATED tag was added. This should cause these values to be correctly accounted for when assemblies are placed on symmetry boundaries. A survey of other parameters was made, and the VOLUME_INTEGRATED tag was added as needed to cause all block parameters that should change with the volume of the block to have the tag.The assembly method
moveTo
is modified to have a check for the symmetry factor of the source and destination locations. The ratio of the symmetry factors is used to adjust the volume integrated parameters in the blocks within the assembly to account for the blocks being split between different sections of the core.The
moveTo
method is used for placing the assembly in the core and for movement within the core, so this change should account for all the modifications needed to correctly represent block parameters that change based on the volume of the block. Note that this does not change values that are calculated on the fly, such as the volume with thegetVolume
method.Changes that are made based on discovered knock on effects from this change:
getParamMax
assembly method did not account for the symmetry factor when making comparisons between assemblies. It would therefore return incorrect values for parameters which were stored in a way that accounted for the symmetry factor. See https://github.com/terrapower/armi/pull/2017/files#diff-447b13bcb80d46b6c7901b9dae9ec8bcdf6f4f5f176a61b7beae558fd368dba2R216-R224Why is the change being made?
Incorrect values were calculated for
initialB10ComponentVolume
and downstream values dependent on it for assemblies located in the center of 1/3rd symmetric cores.Checklist
doc
folder.pyproject.toml
.