Elsevier Science Home
Computer Physics Communications Program Library
Full text online from Science Direct
Programs in Physics & Physical Chemistry
CPC Home

[Licence| Download | New Version Template] aezg_v1_0.tar.gz(146028 Kbytes)
Manuscript Title: An object-oriented implementation of a parallel Monte Carlo code for radiation transport
Authors: Pedro Duarte Santos, Andrea Lani
Program title: COOLFluiD-MC
Catalogue identifier: AEZG_v1_0
Distribution format: tar.gz
Journal reference: Comput. Phys. Commun. 202(2016)233
Programming language: C++.
Computer: From desktops to large HPC distributed systems.
Operating system: Mac OS X, Linux.
Has the code been vectorised or parallelized?: Parallelized through MPI
RAM: Depending on the problem size from a few Megabytes to several Gigabytes.
Keywords: Monte Carlo, radiative transfer, ray tracing, C++, object-oriented, CFD, unstructured grids.
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.

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 seconds 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).