armi: Database cannot recall user materials

After you build and run a case, one can use the database to reload the reactor state. It appears that if you define a component with a custom material like material: customMaterialModule:myCustomMaterial, then the database loader cannot find the custom material when you try to load up the saved reactor.

I’ll post an example in a bit.

About this issue

  • Original URL
  • State: open
  • Created 2 years ago
  • Comments: 15 (15 by maintainers)

Most upvoted comments

IMO, the current situation could very easily lead to bugs.

For instance, we have a material in the framework called Air.

If I were to have a module in my run path called my_custom_materials, and in that I have a custom implementation of air, also called Air, I could point to it for my run: material: my_custom_materials:Air

All of this is completely legit. During the run, ARMI would correctly discover and use the custom version of Air, as expected.

But then during a reload from the DB, if one were to not explicitly set the custom module ahead of the “normal” material modules using setMaterialNamespaceOrder, their DB load would be the framework implementation of Air, which is WRONG!

This would be solved if the module path were stored in the DB, so that instead of looking for just Air during the reload, ARMI would look for my_custom_materials:Air.