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)
osx-64 (x86, intel based macs)
osx-arm64 (apple silicon based macs)
linux-ppc64 (IBM POWER9)
linux-nvidia-cuda
win-64 (runs but not recommend!)
Primary development is done by the Center for Exascale Monte Carlo Neutron Transport (CEMeNT).

with support from the following institutions







Work within MC/DC has resulted in a large number of journal and conference publications, presentations. A full exhaustive list of publications can be found on the CEMeNT site
Contents¶
Indices and tables¶
To build the docs¶
Install dependencies (we recommend:
conda install sphinx
andpip install furo sphinx_toolbox
). Note that these dependencies are not installed as part of base MC/DC.From the MCDC/docs/ directory, run
make html
to compile.Launch
build/html/index.html
with your browser of choice.
To Cite MC/DC¶
If you use or devlope in MC/DC and would like to publish your results please cite our article in the Journal of Open Source software
@article{morgan2024mcdc,
booktitle = {}
title = {},
author = {},
date = {},
doi = {},
}