Closed macatillo closed 1 month ago
Oof sorry about that. That is most likely coming from a residual call to b.getSmearDensity
, probably at armi/reactor/blocks.py:813:40: self.p.smearDensity = self.getSmearDensity()
.
We've modeled BFS-73-1 before too and surely got the same warning. That shouldn't happen at the framework level so I'll see what we can do to move that call into a more specific pin-type fuel plugin.
For the time being, I can at least assure you that you can safely ignore the warning. The code just won't have a meaningful value set to the block-level smearDensity
param.
Thanks for the report.
I wonder if these types of reports for calculating design-specific information, like smear density, should be the responsibility of the reports plugin where the API could expose certain functions to call based on the design(s) being analyzed.
Things like smear density, hydraulic diameter, wetted perimeter, etc. are design type specific but also depend on user modeling choices. Providing a warning indicates that there is a problem with the input, but maybe this is a choice by the user to not model a grid for a block and just to treat it as a homogenized blob.
I think we should discern between real warnings and input suggestions in the logging. This is somewhat related to how we handle the settings validation too. It's probably worth considering a separate log for this information rather than the stdout
log or a different message verbosity (i.e., note
) especially since warnings can be easily overlooked if there are too many that don't have actionable feedback to the user.
I had never seen this ticket before, so sorry I'm late to the party.
First off, Nick was correct, the error happens in Block.completeInitialLoading()
on this line:
The real problem here is that this is a method on the Block
base class that assumes the Block
is pinned. As @drewj-tp recently pointed out, there should be another layer of abstraction here, like PinnedBlock
that could have the pin logic here moved into it.
A stop-gap measure would be to insert a check in getSmearDensity()
to see if the Block
in question is pinned:
if self.getNumPins() == 0:
return 0.0
When using non-pin type fuel, the user is warned on "No component matched" for Flags.WIRE and Flags.CLAD. It is not clear where the warning is originating from or what can be done to fix it.
This is occurring in a non-standard fast reactor benchmark (BFS-73-1), where there are no pins/clad defined and the core uses a stack up of "disks" or "plates".