|
Brown, J. M. C., Dimmock, M. R., Gillam, J. E., & Paganin, D. M. (2014). A low energy bound atomic electron Compton scattering model for Geant4. Nucl. Instrum. Methods Phys. Res. B, 338, 77–88.
Abstract: A two-body fully relativistic three-dimensional scattering framework has been utilised to develop an alternative Compton scattering computational model to those adapted from Ribberfors' work for Monte Carlo modelling of Compton scattering. Using a theoretical foundation that ensures the conservation of energy and momentum in the relativistic impulse approximation, this new model, the Monash University Compton scattering model, develops energy and directional algorithms for both the scattered photon and ejected Compton electron from first principles. The Monash University Compton scattering model was developed to address the limitation of the Compton electron directionality algorithms of other computational models adapted from Ribberfors' work. Here the development of the Monash University Compton scattering model, including its implementation in a Geant4 low energy electromagnetic physics class, G4LowEPComptonModel, is outlined. Assessment of the performance of G4LowEPComptonModel was undertaken in two steps: (1) comparison with respect to the two standard Compton scattering classes of Geant4 version 9.5, G4LivermoreComptonModel and G4PenelopeComptonModel, and (2) experimental comparison with respect to Compton electron kinetic energy spectra obtained from the Compton scattering of 662 key photons off the K-shell of gold. Both studies illustrate that the Monash University Compton scattering model, and in turn G4LowEPComptonModel, is a viable replacement for the majority of computational models that have been adapted from Ribberfors' work. It was also shown that the Monash University Compton scattering model is able to reproduce the Compton scattering triply differential cross-section Compton electron kinetic energy spectra of 662 keV photons K-shell scattering off of gold to within experimental uncertainty.
|
|
Gimenez-Alventosa, V., Gimenez, V., & Oliver, S. (2021). PenRed: An extensible and parallel Monte-Carlo framework for radiation transport based on PENELOPE. Comput. Phys. Commun., 267, 108065–12pp.
Abstract: Monte Carlo methods provide detailed and accurate results for radiation transport simulations. Unfortunately, the high computational cost of these methods limits its usage in real-time applications. Moreover, existing computer codes do not provide a methodology for adapting these kinds of simulations to specific problems without advanced knowledge of the corresponding code system, and this restricts their applicability. To help solve these current limitations, we present PenRed, a general-purpose, standalone, extensible and modular framework code based on PENELOPE for parallel Monte Carlo simulations of electron-photon transport through matter. It has been implemented in C++ programming language and takes advantage of modern object-oriented technologies. In addition, PenRed offers the capability to read and process DICOM images as well as to construct and simulate image-based voxelized geometries, so as to facilitate its usage in medical applications. Our framework has been successfully verified against the original PENELOPE Fortran code. Furthermore, the implemented parallelism has been tested showing a significant improvement in the simulation time without any loss in precision of results. Program summary Program title: PenRed: Parallel Engine for Radiation Energy Deposition. CPC Library link to program files: https://doi .org /10 .17632/rkw6tvtngy.1 Licensing provision: GNU Affero General Public License (AGPL). Programming language: C++ standard 2011. Nature of problem: Monte Carlo simulations usually require a huge amount of computation time to achieve low statistical uncertainties. In addition, many applications necessitate particular characteristics or the extraction of specific quantities from the simulation. However, most available Monte Carlo codes do not provide an efficient parallel and truly modular structure which allows users to easily customise their code to suit their needs without an in-depth knowledge of the code system. Solution method: PenRed is a fully parallel, modular and customizable framework for Monte Carlo simulations of the passage of radiation through matter. It is based on the PENELOPE [1] code system, from which inherits its unique physics models and tracking algorithms for charged particles. PenRed has been coded in C++ following an object-oriented programming paradigm restricted to the C++11 standard. Our engine implements parallelism via a double approach: on the one hand, by using standard C++ threads for shared memory, improving the access and usage of the memory, and, on the other hand, via the MPI standard for distributed memory infrastructures. Notice that both kinds of parallelism can be combined together in the same simulation. Moreover, both threads and MPI processes, can be balanced using the builtin load balance system (RUPER-LB [30]) to maximise the performance on heterogeneous infrastructures. In addition, PenRed provides a modular structure with methods designed to easily extend its functionality. Thus, users can create their own independent modules to adapt our engine to their needs without changing the original modules. Furthermore, user extensions will take advantage of the builtin parallelism without any extra effort or knowledge of parallel programming. Additional comments including restrictions and unusual features: PenRed has been compiled in linux systems withg++ of GCC versions 4.8.5, 7.3.1, 8.3.1 and 9; clang version 3.4.2 and intel C++ compiler (icc) version 19.0.5.281. Since it is a C++11-standard compliant code, PenRed should be able to compile with any compiler with C++11 support. In addition, if the code is compiled without MPI support, it does not require any non standard library. To enable MPI capabilities, the user needs to install whatever available MPI implementation, such as openMPI [24] or mpich [25], which can be found in the repositories of any linux distribution. Finally, to provide DICOM processing support, PenRed can be optionally compiled using the dicom toolkit (dcmtk) [32] library. Thus, PenRed has only two optional dependencies, an MPI implementation and the dcmtk library.
|
|
Oliver, S., Rodriguez Bosca, S., & Gimenez-Alventosa, V. (2024). Enabling particle transport on CAD-based geometries for radiation simulations with penRed. Comput. Phys. Commun., 298, 109091–11pp.
Abstract: Geometry construction is a fundamental aspect of any radiation transport simulation, regardless of the Monte Carlo code being used. Typically, this process is tedious, time-consuming, and error-prone. The conventional approach involves defining geometries using mathematical objects or surfaces. However, this method comes with several limitations, especially when dealing with complex models, particularly those with organic shapes. Furthermore, since each code employs its own format and methodology for defining geometries, sharing and reproducing simulations among researchers becomes a challenging task. Consequently, many codes have implemented support for simulating over geometries constructed via Computer-Aided Design (CAD) tools. Unfortunately, this feature is lacking in penRed and other PENELOPE physics-based codes. Therefore, the objective of this work is to implement such support within the penRed framework. New version program summary Program Title: Parallel Engine for Radiation Energy Deposition (penRed) CPC Library link to program files: https://doi.org/10.17632/rkw6tvtngy.2 Developer's repository link: https://github.com/PenRed/PenRed Code Ocean capsule: https://codeocean.com/capsule/1041417/tree Licensing provisions: GNU Affero General Public License v3 Programming language: C++ standard 2011. Journal reference of previous version: V. Gimenez-Alventosa, V. Gimenez Gomez, S. Oliver, PenRed: An extensible and parallel Monte-Carlo framework for radiation transport based on PENELOPE, Computer Physics Communications 267 (2021) 108065. doi:https://doi.org/10.1016/j.cpc.2021.108065. Does the new version supersede the previous version?: Yes Reasons for the new version: Implements the capability to simulate on CAD constructed geometries, among many other features and fixes. Summary of revisions: All changes applied through the code versions are summarized in the file CHANGELOG.md in the repository package. Nature of problem: While Monte Carlo codes have proven valuable in simulating complex radiation scenarios, they rely heavily on accurate geometrical representations. In the same way as many other Monte Carlo codes, penRed employs simple geometric quadric surfaces like planes, spheres and cylinders to define geometries. However, since these geometric models offer a certain level of flexibility, these representations have limitations when it comes to simulating highly intricate and irregular shapes. Anatomic structures, for example, require detailed representations of organs, tissues and bones, which are difficult to achieve using basic geometric objects. Similarly, complex devices or intricate mechanical systems may have designs that cannot be accurately represented within the constraints of such geometric models. Moreover, when the complexity of the model increases, geometry construction process becomes more difficult, tedious, time-consuming and error-prone [2]. Also, as each Monte Carlo geometry library uses its own format and construction method, reproducing the same geometry among different codes is a challenging task. Solution method: To face the problems stated above, the objective of this work is to implement the capability to simulate using irregular and adaptable meshed geometries in the penRed framework. This kind of meshes can be constructed using Computer-Aided Design (CAD) tools, the use of which is very widespread and streamline the design process. This feature has been implemented in a new geometry module named “MESH_BODY” specific for this kind of geometries. This one is freely available and usable within the official penRed package1. It can be used since penRed version 1.9.3b and above.
|