-
Notifications
You must be signed in to change notification settings - Fork 90
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
Better way to subclass thermal scattering labels for plugins #1804
Comments
Can you point me at your solution? I'd like to ponder it, so I can decide if this should be "purely" in a Thanks! |
@john-science, here's what I've been using. It has turned out to not be as cumbersome as I expected. I can still use the |
To use thermal scattering data in the ARMI OpenMC plugin, the labels for the thermal scattering data in OpenMC's syntax need to be generated somewhere. I recently submitted pull request #1792 in which I generate these labels with ARMI's existing ENDF and ACE label generators. However, @jakehader made a good point that this involves introducing some semi-hardcoded names into the framework and it's safer to keep these labels with the plugin that uses them.
Implementing these labels directly in the plugin misses out on many of the features of the ARMI
ThermalScattering
object. The best long-term solution from the plugin side would be a way to store the labels themselves in the plugin but have them behave like the existing ENDF and ACE labels (present in the material library in theThermalScattering
objects inarmi.material.thermalScatteringLaws
at import or configure time, accessible viaarmi.nucDirectory.ThermalScattering.byNbAndCompound
, etc.). I don't know off the top of my head how that could work. Future physics plugins that make use of thermal scattering data will need something similar since they all use slightly difference labeling schemes.For now, I have a temporary solution in the OpenMC plugin, so I think it makes sense to close the pull request and move the discussion here.
The text was updated successfully, but these errors were encountered: