-
Notifications
You must be signed in to change notification settings - Fork 94
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
Adding a check on the grid/component consistency in the blueprints #2045
Open
keckler
wants to merge
11
commits into
main
Choose a base branch
from
gridsCheck
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
11 commits
Select commit
Hold shift + click to select a range
18ee2cb
Add a check on the grid/component consistency in the blueprints
keckler 46e0451
Test the new check
keckler 2b269e9
Remove stale hack in c5g7 blueprints that was fixed by #346
keckler 10e5c92
Update armi/reactor/blueprints/blockBlueprint.py
keckler ad1fff7
Redo the check and the test to catch when an expected latticeID is no…
keckler 0aca2ed
Make test failure more specific and correct impacted test
keckler 5d8fe7b
Add check that all ids in lattice are in a corresponding block, and t…
keckler 59c8e05
Merge branch 'gridsCheck' of https://github.com/terrapower/armi into …
keckler 5e3a7ac
ruff
keckler c893c55
Update downstream test
keckler 22dd4b9
Merge branch 'main' of https://github.com/terrapower/armi into gridsC…
keckler File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -140,6 +140,7 @@ def construct( | |
|
||
self._checkByComponentMaterialInput(materialInput) | ||
|
||
allLatticeIds = set() | ||
for componentDesign in self: | ||
filteredMaterialInput, byComponentMatModKeys = self._filterMaterialInput( | ||
materialInput, componentDesign | ||
|
@@ -184,6 +185,30 @@ def construct( | |
# learn mult from grid definition | ||
c.setDimension("mult", len(c.spatialLocator)) | ||
|
||
idsInGrid = list(gridDesign.gridContents.values()) | ||
if componentDesign.latticeIDs: | ||
for latticeID in componentDesign.latticeIDs: | ||
allLatticeIds.add(str(latticeID)) | ||
# the user has given this component latticeIDs. check that | ||
# each of the ids appears in the grid, otherwise | ||
# their blueprints are probably wrong | ||
if len([i for i in idsInGrid if i == str(latticeID)]) == 0: | ||
raise ValueError( | ||
f"latticeID {latticeID} in block blueprint '{self.name}' is expected " | ||
"to be present in the associated block grid. " | ||
"Check that the component's latticeIDs align with the block's grid." | ||
) | ||
|
||
# for every id in grid, confirm that at least one component had it | ||
if gridDesign: | ||
idsInGrid = list(gridDesign.gridContents.values()) | ||
for idInGrid in idsInGrid: | ||
if str(idInGrid) not in allLatticeIds: | ||
raise ValueError( | ||
f"ID {idInGrid} in grid {gridDesign.name} is not in any components of block {self.name}. " | ||
"All IDs in the grid must appear in at least one component." | ||
) | ||
Comment on lines
+202
to
+210
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Just a thought. This method is suddenly quite long. Could we move this to a private helper method that just does the error handling? What do you think? |
||
|
||
# check that the block level mat mods use valid options in the same way | ||
# as we did for the by-component mods above | ||
validMatModOptions = self._getBlockwiseMaterialModifierOptions( | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a thought.
This method is suddenly quite long.
Could we move this to a private helper method that just does the error handling? What do you think?