Refactored Version of Electron Transport Capability#387
Refactored Version of Electron Transport Capability#387ilhamv merged 27 commits intomcdc-project:devfrom
Conversation
ilhamv
left a comment
There was a problem hiding this comment.
Thanks, Melek - This is great!
I made some minor edits. And here are my not-so-minor comments/suggestions:
- I'm wondering if the electron energy cutoff should be material-dependent rather than a single global value. This should be a separate, follow-up PR, though. Let's open up an Issue for this enhancement plan after we get this PR merged in.
- Is
MU_CUTOFFexclusively associated with the data library used? Should we make it part of the element data instead? - What is
FINE_STRUCTURE_CONSTANT? Since the constant is only used in a single function, hard-coding the constant in that function would be more desirable. Unless it is more than likely that we are gonna use the constant somewhere else. - The Lockwood regression test takes too long (about 6 minutes?)... Can you adjust the problem or the parameters so that it runs within 10 seconds? (Note that the longer runs are for V&V tests, not regression.)
- Will it be a good idea to put the electron data library generator as well in the
mcdc/tools? Also, about the h5 element data library, it would be helpful for all physical quantities to have the unit as an attribute (e.g., xs_energy_grid), like the one that we have in the nuclide data library. Especially since the element and nuclide seem to use different energy units (eV and MeV, respectively). - Can you tell me why the error catcher in
get_version()inoutput.pyis necessary?
|
Hi @ilhamv, Thank you so much for your review.
|
|
Great. So, 3, 4, and 6 will be addressed in this PR for merge, while 1, 2, and 5 will be tracked in Issues. |
❗ This PR is a refactor of #355 and closes #355. It should be merged after #383.
This pull request introduces foundational support for electron transport in the codebase, including new constants, data structures, and getter/setter modules for electron-related physics and tallying. The changes lay the groundwork for handling electron interactions in simulations, similar to existing neutron transport features.
The most important changes are:
Electron Physics Support and Constants
mcdc/constant.py, as well as fundamental physical constants for electrons (mass, cutoff energy, fine structure constant, etc.). [1] [2] [3]mcdc/main.pyto initialize electron data for elements when electron transport is enabled.Electron Data Structures and Accessors
mcdc_getandmcdc_setpackages, includingelectron_reaction.py,electron_bremsstrahlung_reaction.py,electron_elastic_scattering_reaction.py,electron_excitation_reaction.py,electron_ionization_reaction.py, andelement.py. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]Native Material Extensions
mcdc/mcdc_get/native_material.py, analogous to existing nuclide data. [1] [2]Collision and Tally Infrastructure
These changes establish the infrastructure needed for electron transport and tallying, bringing the codebase closer to supporting coupled neutron-electron physics.