An object-oriented implementation of a parallel Monte Carlo code for radiation transport

Abstract This paper describes the main features of a state-of-the-art Monte Carlo solver for radiation transport which has been implemented within COOLFluiD, a world-class open source object-oriented platform for scientific simulations. The Monte Carlo code makes use of efficient ray tracing algorithms (for 2D, axisymmetric and 3D arbitrary unstructured meshes) which are described in detail. The solver accuracy is first verified in testcases for which analytical solutions are available, then validated for a space re-entry flight experiment (i.e. FIRE II) for which comparisons against both experiments and reference numerical solutions are provided. Through the flexible design of the physical models, ray tracing and parallelization strategy (fully reusing the mesh decomposition inherited by the fluid simulator), the implementation was made efficient and reusable. Program summary Program title: COOLFluiD-MC Catalogue identifier: AEZG_v1_0 Program summary URL: http://cpc.cs.qub.ac.uk/summaries/AEZG_v1_0.html Program obtainable from: CPC Program Library, Queen’s University, Belfast, N. Ireland Licensing provisions: GNU General Public License, version 3 No. of lines in distributed program, including test data, etc.: 1990165 No. of bytes in distributed program, including test data, etc.: 149533288 Distribution format: tar.gz Programming language: C++. Computer: From desktops to large HPC distributed systems. Operating system: Mac OS X, Linux. Has the code been vectorized or parallelized?: Parallelized through MPI RAM: Depending on the problem size from a few Megabytes to several Gigabytes. Classification: 21.2. External routines: MPI, boost, PETSc, ParMETIS, cmake Nature of problem: Radiative processes play a fundamental role in countless science and engineering contexts, including combustion, astrophysics, atmospheric space re-entry, experiments in plasma facilities (e.g. shock tubes, arc jets). The problem we are interested in is the computation of radiative heat transfer on arbitrarily complex geometries, in particular to characterize thermal loads acting on the surface of space vehicles. Solution method: Our C++ code implements a flexible and efficient Monte Carlo algorithm making use of state-of-the-art ray tracing techniques designed for and validated on arbitrary unstructured meshes. The code is organized as a collection of dynamically linked libraries connected to the computational kernel of the open source COOLFluiD platform. The Monte Carlo method is parallelized through mesh decomposition, while reusing the same partitioned mesh (and associated data structures) on which fluid dynamics equations are solved. Unusual features: The radiation transfer code of COOLFluiD-MC offers a unique combination of ray tracing algorithms suitable for handling 2D, 2D axisymmetric and 3D simulations on arbitrary unstructured grids. The parallelization strategy is scalable and based on domain decomposition. The overall object-oriented design allows for easy integration of new models and algorithms which can be plugged in dynamically through self-registration techniques. Additional comments: The code is part of a much larger set of COOLFluiD libraries, which are fully available on Github at https://github.com/andrealani/COOLFluiD and include multiple numerical solvers, physico-chemical models, processing algorithms and interfaces to third party scientific software. The CPC distribution also includes a state-of-the-art fully implicit Finite Volume solver for Euler and Navier–Stokes systems which is used to produce the flow solution for the radiative transport algorithm described in the paper. The aerothermodynamic solver, which is used for the final testcase (FIREII) in our paper, is based on the same core Finite Volume modules but on different physico-chemical and radiation models. The latter cannot be made available through the CPC library since they rely on third party libraries (MUTATION version 2.0 and PARADE version 3.1) which cannot be distributed due to NDA. !!!!! The distribution file for this program is over 149 Mbytes and therefore is not delivered directly when download or Email is requested. Instead a html file giving details of how the program can be obtained is sent. !!!!! Running time: Depending on the size of the computational grid, if it is 2D or 3D, on the number of processors used, the running time can vary from a few seconds up to hours or days. The testcases that are included with this version of the code, all using relatively small 2D or 3D meshes, run in 1–10 s each on 8 CPU-cores. The user is, however, totally free to run the same cases on a different number of cores (more or less, according to his/her convenience).

[1]  Andrea Lani,et al.  An object oriented and high performance platform for aerothermodynamics simulation , 2008 .

[2]  Andrea Lani,et al.  A Residual Distribution Method for Symmetrized Systems in Thermochemical Nonequilibrium , 2011 .

[3]  G. Marsaglia Choosing a Point from the Surface of a Sphere , 1972 .

[4]  Tomas Akenine-Möller,et al.  Fast, minimum storage ray/triangle intersection , 1997, J. Graphics, GPU, & Game Tools.

[5]  Rafael Ramis,et al.  MULTI2D - a computer code for two-dimensional radiation hydrodynamics , 2009, Comput. Phys. Commun..

[6]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[7]  B. F. Castro Buschmann, Frank; Meunier, Regine; Rohnert, Hans; Sommerlad, Peter; Stal, Michael. Pattern-oriented software architecture: a system of patterns, John Wiley & Sons Ltd, 1996 , 1997 .

[8]  Andrea Lani,et al.  Simulation of Field-Aligned Ideal MHD Flows Around Perfectly Conducting Cylinders Using an Artificial Compressibility Approach , 2008 .

[9]  S. K. Fraley,et al.  A Monte Carlo Primer: A Practical Approach to Radiation Transport , 2001 .

[10]  C. Park,et al.  Nonequilibrium Hypersonic Aerothermodynamics , 1989 .

[11]  Gérard Degrez,et al.  A model for inductive plasma wind tunnels , 2004 .

[12]  J. Douglas Faires,et al.  Numerical Analysis , 1981 .

[13]  J. Howell The Monte Carlo Method in Radiative Heat Transfer , 1998 .

[14]  A. Soufiani,et al.  Narrow-band model for nonequilibrium air plasma radiation , 2010 .

[15]  Andrea Lani,et al.  The COOLFluiD Framework: Design Solutions for High Performance Object Oriented Scientific Computing Software , 2005, International Conference on Computational Science.

[16]  Andrea Lani,et al.  Conservative Residual Distribution Method for Viscous Double Cone Flows in Thermochemical Nonequilibrium , 2013 .

[17]  T. Barth Aspects of Unstructured Grids and Finite-Volume Solvers for the Euler and Navier-Stokes Equations , 1994 .

[18]  Andrea Lani,et al.  Modeling of non-equilibrium phenomena in expanding flows by means of a collisional-radiative model , 2013 .

[19]  Andrea Lani,et al.  Collisional radiative coarse-grain model for ionization in air , 2013 .

[20]  M. Modest,et al.  Multi-scale k-distribution model for gas mixtures in hypersonic nonequilibrium flows , 2011 .

[21]  Peter S. Pacheco Parallel programming with MPI , 1996 .

[22]  G. Raithby,et al.  COMPUTATION OF RADIANT HEAT TRANSFER ON A NONORTHOGONAL MESH USING THE FINITE-VOLUME METHOD , 1993 .

[23]  Y. Yener,et al.  Radiation between two concentric spheres separated by a participating medium , 1991 .

[24]  M. Modest Radiative heat transfer , 1993 .

[25]  J. Jeans,et al.  The Equations of Radiative Transfer of Energy , 1917 .

[26]  Andrea Lani,et al.  COOLFluiD: An open computational platform for multi-physics simulation and research , 2013 .

[27]  Andrea Lani,et al.  A GPU-enabled Finite Volume solver for global magnetospheric simulations on unstructured grids , 2014, Comput. Phys. Commun..

[28]  P. Lalande,et al.  Radiative properties and radiative transfer in high pressure thermal air plasmas , 2012 .

[29]  J.M.A. Longo,et al.  Assessment of CFD capability for prediction of hypersonic shock interactions , 2012 .

[30]  Andrea Lani,et al.  A finite volume implicit time integration method for solving the equations of ideal magnetohydrodynamics for the hyperbolic divergence cleaning approach , 2011, J. Comput. Phys..

[31]  W. K. Widger,et al.  integration of the Planck blackbody radiation function , 1976 .

[32]  M. Pinar Mengüç,et al.  Thermal Radiation Heat Transfer , 2020 .

[33]  Cameron Hughes,et al.  Parallel and distributed programming using C , 2003 .

[34]  Douglas C. Schmidt,et al.  Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects , 2013 .

[35]  Richard N. Zare,et al.  Ionization mechanisms in two-temperature air plasmas , 1999 .

[36]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture: A System of Patterns: John Wiley & Sons , 1987 .

[37]  W. Reiher Hammersley, J. M., D. C. Handscomb: Monte Carlo Methods. Methuen & Co., London, and John Wiley & Sons, New York, 1964. VII + 178 S., Preis: 25 s , 1966 .

[38]  M. Modest,et al.  A Spectrally Accurate Two-Dimensional Axisymmetric, Tightly Coupled Photon Monte Carlo Radiative Transfer Equation Solver for Hypersonic Entry Flows , 2012 .

[39]  Andrea Lani,et al.  The COOLFluiD Parallel Architecture , 2005, PVM/MPI.

[40]  J. Anderson,et al.  Hypersonic and High-Temperature Gas Dynamics , 2019 .

[41]  Suhas V. Patankar,et al.  RAY EFFECT AND FALSE SCATTERING IN THE DISCRETE ORDINATES METHOD , 1993 .

[42]  Daoqi Yang,et al.  C++ and Object-Oriented Numeric Computing for Scientists and Engineers , 2000, Springer New York.

[43]  Leonidas J. Guibas,et al.  Robust Monte Carlo methods for light transport simulation , 1997 .

[44]  John R. Howell,et al.  Comparison of Monte Carlo Strategies for Radiative Transfer in Participating Media , 1998 .