|
KM3NeT Collaboration(Aiello, S. et al), Alves Garre, S., Calvo, D., Carretero, V., Colomer, M., Corredoira, I., et al. (2020). gSeaGen: The KM3NeT GENIE-based code for neutrino telescopes. Comput. Phys. Commun., 256, 107477–15pp.
Abstract: The gSeaGen code is a GENIE-based application developed to efficiently generate high statistics samples of events, induced by neutrino interactions, detectable in a neutrino telescope. The gSeaGen code is able to generate events induced by all neutrino flavours, considering topological differences between tracktype and shower-like events. Neutrino interactions are simulated taking into account the density and the composition of the media surrounding the detector. The main features of gSeaGen are presented together with some examples of its application within the KM3NeT project. Program summary Program Title: gSeaGen CPC Library link to program files: http://dx.doi.org/10.17632/ymgxvy2br4.1 Licensing provisions: GPLv3 Programming language: C++ External routines/libraries: GENIE [1] and its external dependencies. Linkable to MUSIC [2] and PROPOSAL [3]. Nature of problem: Development of a code to generate detectable events in neutrino telescopes, using modern and maintained neutrino interaction simulation libraries which include the state-of-the-art physics models. The default application is the simulation of neutrino interactions within KM3NeT [4]. Solution method: Neutrino interactions are simulated using GENIE, a modern framework for Monte Carlo event generators. The GENIE framework, used by nearly all modern neutrino experiments, is considered as a reference code within the neutrino community. Additional comments including restrictions and unusual features: The code was tested with GENIE version 2.12.10 and it is linkable with release series 3. Presently valid up to 5 TeV. This limitation is not intrinsic to the code but due to the present GENIE valid energy range. References: [1] C. Andreopoulos at al., Nucl. Instrum. Meth. A614 (2010) 87. [2] P. Antonioli et al., Astropart. Phys. 7 (1997) 357. [3] J. H. Koehne et al., Comput. Phys. Commun. 184 (2013) 2070. [4] S. Adrian-Martinez et al., J. Phys. G: Nucl. Part. Phys. 43 (2016) 084001.
|
|
|
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.
|
|