Replies: 3 comments 6 replies
-
Having Components as leafs feels like a good design choice. A lot of the comments reinforce some (maybe incorrect) thinking I've had about the ARMI design
This approach also explains some of the difficulties in #477 where And my two cents would be that
feels natural and self-describing |
Beta Was this translation helpful? Give feedback.
-
I have various and sundry thoughts:
Does this help us getting any closer to modeling your typical light water reactor? Long term, do we need to add any flexibility to our geometry/component models to make that leap? (Long term thinking, for sure. But we're talking architecture, and I know that's on our high-level goals.) |
Beta Was this translation helpful? Give feedback.
-
Ok so as I've been thinking more about #228 and #477 while working through #525 and reading @drewj-usnctech's feedback, I think this little quoted point is really important and probably has to go through. I am fairly close in #525 to being able to re-implement the ParticleFuel class from #447. What we need is to be able to make a The
The blocks have shape, and the components have shape, but composites can't currently have shape. Thus I think we need to change blocks and components both under the hood so that they and all other subclasses of ArmiObject HAVE shapes rather than being shapes. This will be a pretty major refactor but can probably be done without changing any actual results or input. Then this kind of thing will be pretty simple within the normal data model:
|
Beta Was this translation helpful? Give feedback.
-
I was trying to make a "block of blocks" on the composite model (to do a handy unit cell conversion for Hallam while maintaining identity of the constituents) and a lot of issues related to the composite model come up that may make sense to work on to a degree. Specifically I want to make a new 1-D converted block that is made up of several rings, each containing homogenized versions of multiple components.
This kind of issue has caused other various troubles in the past:
It could also be useful e.g. for TRISO fuel #228
Thus we think it's a good time to polish up the composite pattern a bit to be a bit more arbitrarily nested.
Essential Truths:
Component
objects should be considered the Leafs of our tree. (Right now we do have a Leaf object incomposites.py
but it is 2 lines long).Core
andAssembly
are extremely valuable abstractions for many things ARMI can do, but they should not be essential in the generic tree ofArmiObjects
.Block
objects are relatively close toComposite
objects in traditional composite patterns already.Actions to take now
Attempt to reconcile the Composite and Block classes:
Allow components to be specified in input without a block (Allow components to be input outside of a block in blueprints #504)
Delete Leaf and write docs formalizing Component as our leaf
Clean up ArmiObject to not know about children.
See if a bunch of Component methods don't make sense directly on ArmiObject
Think of better name for ArmiObject.
Important related issues that may need concurrent resolution:
HexBlock
).Beta Was this translation helpful? Give feedback.
All reactions