armi icon indicating copy to clipboard operation
armi copied to clipboard

Dedicated Composite sub-class for modeling particle fuel

Open drewj-usnctech opened this issue 2 years ago • 3 comments

I've been thinking about how our downstream clients will detect the presence of particle fuel. Looking at discussions in

  • #1030
  • #1008
  • https://github.com/terrapower/armi/discussions/960

🚨 a lot of the earlier description / design / acceptance criteria is duplicated in and moved to #1134 🚨

Encourage a specific Composite subclass where the children are all spheres to model one particle fuel object. Some specific design concepts / requirements

  1. Children are only allowed to be Sphere Components
  2. Multiplicity of each child is one as there is one layer of each material with a certain radii in a kernel. For your "standard" TRISO (#228), this would be
    • fuel kernel
    • porous graphite layer
    • inner pyrolytic graphite
    • inert layer of SiC
    • outer pyrolytic graphite (same Material as inner pyrolytic graphite, but with different id and od parameters
  3. Multiplicity of the ParticleFuel itself can be greater than one to signify the number of a given particle in the parent Compact - #1134
  4. Multiplicity must be able to be serialized / deserialized from database
    • so stored as a parameter?
  5. Layers are not allowed to be overlapping
  6. Support for linked dimensions (as fuel kernel expands, inner diameter of next layer increases)
    • Not trying to add in a fully feature TRISO expansion routine, but linked dimensions will help support that
  7. Iteration goes from innermost layer to outermost layer
  8. Item access via __getitem__ picks up the given layer, so pf[0] would be the innermost, pf[-1] would be the outermost, etc.

drewj-usnctech avatar Jan 03 '23 18:01 drewj-usnctech