The method of characteristics (MOC) is a numerical integration technique for partial differential equations, and has seen widespread use for reactor physics lattice calculations. The exponential growth in computing power has finally brought the possibility for high-fidelity full core MOC calculations within reach. The OpenMOC code is being developed at the Massachusetts Institute of Technology to investigate algorithmic acceleration techniques and parallel algorithms for MOC. OpenMOC is a free, open source code written using modern software languages such as C/C++ and CUDA with an emphasis on extensible design principles for code developers and an easy to use Python interface for code users. The present work describes the OpenMOC code and illustrates its ability to model large problems accurately and efficiently.
The shift towards multi-core architectures has ushered in a new era of shared memory parallelism for scientific applications. This transition has introduced challenges for the nuclear engineering community as it seeks to design high-fidelity full-core reactor physics simulation tools. This paper describes the parallel transport sweep algorithm in the OpenMOC method of characteristics (MOC) neutron transport code for multi-core platforms using OpenMP. Strong and weak scaling studies are performed for both Intel Xeon and IBM Blue Gene/Q multi-core processors. The results demonstrate 100% parallel efficiency for 12 threads on 12 cores on Intel Xeon platforms, and over 90% parallel efficiency with 64 threads on 16 cores on the IBM Blue Gene/Q. These results illustrate the potential for hardware acceleration for MOC neutron transport on modern multi-core and future many-core architectures. In addition, this work highlights the pitfalls of programming for multi-core architectures, with a focal point on false sharing.
The angular dependence of flux-weighted multigroup cross sections is commonly neglected when generating multigroup libraries. The error of this flux separability approximation is typically not isolated from other error sources due to a lack of availability of library generation and corresponding solvers that cannot relax this approximation. These errors can now be isolated and quantified with the availability of a multigroup Monte Carlo transport and multigroup library-generation capability in the OpenMC Monte Carlo transport code. This work will discuss relevant details of the OpenMC implementation, provide an example case useful for detailing the type of errors one can expect from making the flux separability approximation, and end with more realistic problems which show the impact of the approximation and highlight how it can strongly arise from an energy-dependent resonance absorption effect. Since the angle-dependence is intrinsically linked to the energy group structure, these examples also show that relaxing the flux separability approximation with angle-dependent cross sections could be used to reduce either the fine-tuning required to set a multigroup energy structure for a specific reactor type or the number of energy groups required to obtain a desired level of accuracy for a given problem. This trade-off could increase the costs of generating multigroup cross sections, and has the potential to require more memory for storing the multigroup library during the transport calculations, but it can significantly reduce the computational time required since the runtime of a discrete ordinates or method of characteristics neutron transport solver scales roughly linearly with the number of groups.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.