MC/DC: Monte Carlo Dynamic Code¶
MC/DC is a performant, scalable, and portable Python-based Monte Carlo radiation transport software package. It is purpose-built as a rapid methods development platform capable of leveraging modern high-performance computing systems, supporting both CPUs and GPUs.
MC/DC supports continuous-energy and multi-group neutron transport calculations. It is capable of running fixed-source and eigenvalue transport simulations on models built from constructive solid geometry. For continuous-energy neutron transport, MC/DC translates ACE nuclear data libraries into its native HDF5 format. Photon, electron, and charged-particle transport are currently under development, with the goal of making MC/DC a multi-radiation/particle transport software package.
While MC/DC’s Python environment promotes rapid iterative testing of ideas, its Numba-based compilation framework improves runtime performance and enables portability. Harmonize serves as the GPU execution framework, optimizing device utilization within stochastic simulations; and MPI4Py is used to achieve parallel scalability across nodes in large computer clusters. In addition to running on commonly used desktops and workstations, MC/DC has been tested on large heterogeneous high-performance systems, including Lassen (IBM POWER9 and NVIDIA Volta V100) and Tuolumne (AMD MI300A APU).
MC/DC development was initiated by the Center for Exascale Monte Carlo Neutron Transport (CEMeNT), a Focused Investigatory Center of the Predictive Science Academic Alliance Program–III (PSAAP-III). MC/DC is currently under active development by the Center for Advancing the Radiation Resilience of Electronics (CARRE), a Predictive Simulation Center of PSAAP-IV. MC/DC is open source (BSD 3-Clause) and welcomes external contributions via GitHub.
Recommended citation
Morgan, Joanna Piper, et al. “Monte Carlo/Dynamic Code (MC/DC): An accelerated Python package for fully transient neutron transport and rapid methods development.” Journal of Open Source Software 9.96 (2024): 6415. https://joss.theoj.org/papers/10.21105/joss.06415
Contents¶
User Documentation
Developer Documentation
References