Give all ArmiObjects shape; change Blocks and Components to have shapes rather than be shapes #540
Labels
architecture
Issues related to big picture system architecture
complex
Expected to be a complex issue
In discussion in #503, we came up with a need for a Composite containing a blend of a graphite matrix with a number of TRISO ComponentGroups. In order to do this, we need
Composite
to be able to have a shape. However, at the moment, only Blocks and Components have the concept of shape.Thus, we think we need to refactor the reactor model to allow all ArmiObjects to have a
.shape
attribute that provides dimensional information rather than getting this shape information from the Block subclasses (e.g.HexBlock
) and the Component subclasses (e.g.Circle
).This will allow for more flexible model generation and code reuse.
I think we can do this major refactor without changing any behavior of the code, and also without changing input.
It will basically involve:
shapes
subpackage inreactor
.shape
attribute to ArmiObject.shape
object.shape
objectAfter this is done, then we can go back into #525 and allow the creation of a true TRISO fuel compact right in the block input, and related.
I think the hardest part is figuring out how to have the DB store the dimensional dimensional params for this ArmiObject.
The text was updated successfully, but these errors were encountered: