Description
When running a depletion simulation, we are storing nuclide number data twice; once in the number
attribute (an instance of the AtomNumber
class), and then again on the C side via the shared library. This double storage means OpenMC uses more memory than it needs to. This could become troublesome for problems that use large depletion chains with thousands of nuclides, reactions, and materials.
One potential way of addressing this is refactoring AtomNumber
into two classes with the same interface: an AtomNumberPython
class that is a copy of the current AtomNumber
class, and an AtomNumberC
class that has the same interface as AtomNumberPython
but exclusively interfaces with the C shared library.
This issue can be closed when a PR exists that eliminates the duplicate storage.