-
Notifications
You must be signed in to change notification settings - Fork 90
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
Fix tight coupling on lattice interface for Snapshots #1206
Conversation
@onufer @jakehader a heads up. |
We're adding this because we're using snapshots to reload from a given statepoint and then run at a different power/flow/temperature condition from the original case. For now, we are still only updating XS at time node 0 for standard runs because the assumption is that a standard run will have similar power/flow/temperature conditions at all time nodes. This is not necessarily true. With detailed cycle histories, one could burn a reactor at 100% power / 100% flow for 50 days, then drop to 50% power / 50% flow and burn for another 50 days, then drop to 5% power / 20% flow and burn 10 days, etc. If we were to deviate far from the power/flow ratio = 1.0, we would likely want to update XS. It feels like this caveat above should be documented somewhere, but I don't know the best place. Could be the docstring for this |
armi/physics/neutronics/latticePhysics/tests/test_latticeInterface.py
Outdated
Show resolved
Hide resolved
armi/physics/neutronics/latticePhysics/tests/test_latticeInterface.py
Outdated
Show resolved
Hide resolved
Co-authored-by: Michael Jarrett <jarremic@umich.edu>
Co-authored-by: Michael Jarrett <jarremic@umich.edu>
What @mgjarrett said about varying power levels in a cycle is incredibly important for the user to understand, and is probably something we need to add better treatment for. |
This is an excellent point. I think it would be a worthy feature request in an issue.
@jhader and I attempted to provide high-level justification for the time node == 0 case in the docstring for |
We can put a warning here: https://terrapower.github.io/armi/user/inputs/settings.html#cycle-history |
Looks like we're getting a massive drop in coverage for I will investigate, but I think we have two options:
@john-science do you have a preference? |
I went with option 2. See 9eb5844. Coverage looks to be fixed. Locally, I am seeing coverage for latticeInterface.py on |
@mgjarrett @keckler - I added a couple of commits reflecting your input on the clarity of the docstring and adding a note to the detailed cycle history docs. |
Description
For tight coupling, setting the requirement that cross sections be regenerated only when timeNode == 0 was made with only Standard run types with constant power, flow, and/or temperature in mind. When doing snapshot runs with tight coupling, this assumption becomes invalid and it is desirable to always regenerate cross sections. This PR addresses this and modifies the unit testing for the lattice physics interface to test for this.
The unit tests within the lattice physics interface were also somewhat lacking. So some additional unit tests were added to get the coverage up.
A few slight edits to documentations were also added.
Checklist
doc/release/0.X.rst
) are up-to-date with any bug fixes or new features.doc
folder.setup.py
.