MC/DC: Monte Carlo Dynamic Code¶
MC/DC is a performant, scalable, and machine-portable Python-based Monte Carlo neutron transport software in active development. It supports fully transient (aka dynamic) Monte Carlo transport and implements novel methods and algorithms for neutron transport. MC/DC is purpose built to be a rapid methods development platform for for modern HPCs and is targeting CPUs and GPUs.
MC/DC has support for continuous energy and multi-group transport. It can solve more traditional k-eigenvalue problems (used to determine neutron population growth rates in reactors) as well as fully dynamic simulations. It has a novel continuous geometry movement function that models transient elements (e.g., control rods or pulsed neutron experiments) more accurately than the step functions used by other codes. It also supports some simple domain decomposition, with more complex algorithms currently being implemented.
MC/DC is machine portable and is validated to run on:
linux-64 (x86)
win-64 (x86 windows)
osx-64 (x86, intel based macs)
osx-arm64 (apple silicon based macs)
linux-ppc64 (IBM POWER9)
linux-nvidia-cuda
linux-amd-rocm
MC/DC has been run on some of the largest super computers in the world including the Dane, Lassen (#72), and Tuolumne (#10) machines from LLNL and been scaled upto 1000 nodes. Primary development is done by the Center for Exascale Monte Carlo Neutron Transport (CEMeNT)
with support from the following institutions
Work on within MC/DC has resulted in a number of journal publications and conference publications/presentations. A full list of publications can be found on the CEMeNT website .
Contents¶
Indices and tables¶
To build the docs¶
Install dependencies (we recommend:
conda install sphinxandpip install furo sphinx_toolbox). Note that these dependencies are not installed as part of base MC/DC.From the MCDC/docs/ directory, run
make htmlto compile.Launch
build/html/index.htmlwith your browser of choice.
To Cite MC/DC¶
If you use MC/DC and would like to provide proper attribution please cite our article in the Journal of Open Source software
@article{morgan2024mcdc,
title = {Monte {Carlo} / {Dynamic} {Code} ({MC}/{DC}): {An} accelerated
{Python} package for fully transient neutron transport and
rapid methods development},
author = {Morgan, Joanna Piper and Variansyah, Ilham and Pasmann, Samuel L. and
Clements, Kayla B. and Cuneo, Braxton and Mote, Alexander and
Goodman, Charles and Shaw, Caleb and Northrop, Jordan and Pankaj, Rohan and
Lame, Ethan and Whewell, Benjamin and McClarren, Ryan G. and Palmer, Todd S.
and Chen, Lizhong and Anistratov, Dmitriy Y. and Kelley, C. T. and
Palmer, Camille J. and Niemeyer, Kyle E.},
journal = {Journal of Open Source Software},
volume = {9},
number = {96},
year = {2024},
pages = {6415},
url = {https://joss.theoj.org/papers/10.21105/joss.06415},
doi = {10.21105/joss.06415},
}
If you are developing or working with specific numerical methods please take greater care to cite the specific publications where that work is presented. A selected list can be found on our Publications page. Also check out an even longer list of associated publications on our center’s publications page .