OpenMC: A state-of-the-art Monte Carlo code for research and development
Introduction
OpenMC is a relatively young Monte Carlo particle transport code, having been developed starting in 2011 and first released to the public in December 2012. While the code does not benefit from decades of experience and feedback from users as do other popular Monte Carlo codes such as MCNP (Brown et al., 2010) and TRIPOLI (Diop et al., 2007), it nevertheless possesses a number of features that may be very attractive to both users and developers.
Development of OpenMC was spearheaded by the Computational Reactor Physics Group (CRPG) at Massachusetts Institute of Technology (MIT) as part of a project to develop scalable parallel algorithms for future exascale supercomputers. While this was the original focus of the code development efforts, there are now a wide variety of research and development efforts underway using OpenMC (Romano et al., 2013b, Nelson and Martin, 2013, Siegel et al., 2013, Siegel et al., 2014b, Siegel et al., 2014a, Forget et al., 2014). In the last year, the development team has also grown to span multiple organizations.
Various aspects of the OpenMC code have been described previously (Romano and Forget, 2013, Romano et al., 2013a). However, due to the developmental nature of the code, many changes have been, and continue to be, made. The objective of the present work is to give a fairly complete and up-to-date overview of the present capabilities and features of OpenMC.
Section snippets
Physics
At the present time, OpenMC is capable of simulating only neutrons either in fixed source1 or k-eigenvalue problems. The data governing the interaction of neutrons with various nuclei are represented using the ACE format (X-5 Monte Carlo Team, 2008) which is also used by MCNP and Serpent (Leppänen, 2012). ACE-format data can be generated with the NJOY nuclear data processing system (MacFarlane et al., 2012) which converts raw ENDF/B data
Design and development
OpenMC is written in standard Fortran 2008. While C and C++ were considered as other possible languages for development, ultimately Fortran 2008 was chosen due to MIT’s research focus on parallel algorithms coupled with the availability of co-array features in the Fortran 2008 standard. For input processing, OpenMC relies on the FoX XML library (Walker, 2014) which provides a complete implementation of the W3C document object model (DOM). Almost all important data are encapsulated in derived
Licensing
OpenMC is licensed under the MIT/X open source license. This permissive license allows any user to copy, modify, redistribute, and even sell the software if they so wish. Unlike copyleft licenses such as the GNU General Public License, it does not require that modifications to the code be released under the same license, and thus commercial entities are free to use any part of the code within their own proprietary software without having to release it for free.
Conclusions
OpenMC has been developed from scratch with a focus on high-performance algorithms and modern software development practices. While the code is relatively young, it is already being used in a number of advanced R&D projects including the Consortium for Advanced Simulation of LWRs and the ANL Center for Exascale Simulation of Advanced Reactors. OpenMC is available as free software under an open source license, enabling wider collaboration within the nuclear science and engineering community.
Acknowledgments
This research was performed under appointment of the first and third authors to the Rickover Fellowship Program in Nuclear Engineering sponsored by Naval Reactors Division of the U.S. Department of Energy. This work was also supported in part by the Consortium for Advanced Simulation of Light Water Reactors, an Energy Innovation Hub for Modeling and Simulation of Nuclear Reactors under U.S. Department of Energy Contract No. DE-AC05-00OR22725, and by the Office of Advanced Scientific Computing
References (37)
- et al.
Direct Doppler broadening in Monte Carlo simulations using the multipole representation
Ann. Nucl. Energy
(2014) Two practical methods for unionized energy grid construction in continuous-energy Monte Carlo neutron transport calculation
Ann. Nucl. Energy
(2009)- et al.
The OpenMC Monte Carlo particle transport code
Ann. Nucl. Energy
(2013) - et al.
Data decomposition of Monte Carlo particle transport simulations via tally servers
J. Comput. Phys.
(2013) - et al.
Improved cache performance in monte carlo transport calculations using energy banding
Comput. Phys. Commun.
(2014) - et al.
The effect of load imbalances on the performance of Monte Carlo codes in LWR analysis
J. Comput. Phys.
(2013) - Balay, S., Brown, J., Buschelman, K., Gropp, W.D., Kaushik, D., Knepley, M.G., McInnes, L.C., Smith, B.F., Zhang, H.,...
- Brandl, G., 2013. Sphinx python documentation generator. http://sphinx-doc.org (accessed April 29,...
- Brown, F.B., Kiedrowski, B., Bull, J., 2010. MCNP5-1.60 release notes. LA-UR-10-06235, Los Alamos National...
Pro Git
(2009)