pyPENELOPE is an open-source software to facilitate the use of the Monte Carlo code PENELOPE and its main program PENEPMA in the field of microanalysis. It consists in a graphical user interface (GUI) to setup materials, geometry, simulation parameters and position of the detectors as well as to display the simulation’s results. An application programming interface (API) is also available to create a large series of simulations using object-oriented programming and to interpret efficiently the results from these simulations. For more about the features of pyPENELOPE, please refer to the Features page.

pyPENELOPE was developed by Philippe T. Pinard [1], Hendrix Demers [2], Francesc Salvat [3] and Raynald Gauvin [1] and PENELOPE by Francesc Salvat [3], José M. Fernández-Varea [3], E. Acosta [4], Josep Sempau [5] and Xavier LLovet [6].


PENELOPE (Penetration and ENErgy LOss of Positrons and Electrons) is a a general-purpose Monte Carlo code system for the simulation of coupled electron-photon transport in arbitrary materials. PENELOPE covers the energy range from 1 GeV down to, nominally, 50 eV. The physical interaction models implemented in the code are based on the most reliable information available at present, limited only by the required generality of the code. These models combine results from first-principles calculations, semi-empirical models and evaluated data bases. It should be borne in mind that although PENELOPE can run particles down to 50 eV, the interaction cross sections for energies below 1 keV may be affected by sizeable uncertainties; the results for these energies should be considered as semi-quantitative.

PENELOPE incorporates a flexible geometry package called PENGEOM that permits automatic tracking of particles in complex geometries consisting of homogeneous bodies limited by quadratic surfaces. The PENELOPE code system is distributed by the OECD/NEA Data Bank. The distribution package includes a report [1] that provides detailed information on the physical models and random sampling algorithms adopted in PENELOPE, on the PENGEOM geometry package, and on the structure and operation of the simulation routines.

PENELOPE is coded as a set of FORTRAN subroutines, which perform the random sampling of interactions and the tracking of particles (either electrons, positrons or photons). In principle, the user should provide a main steering program to follow the particle histories through the material structure and to keep score of quantities of interest.

What is PENEPMA?

To facilitate the application of PENELOPE to microanalysis (EPMA), a dedicated main program called PENEPMA was written to perform simulation of x-ray spectra and calculates different quantities of interest. Photon interactions are simulated in chronological succession, allowing the calculation of x-ray fluorescence in complex geometries. PENEPMA makes extensive use of interaction forcing (a variance-reduction technique which artificially increases the probability of occurrence of relevant interactions) to improve the efficiency.

  1. OECD/NEA Data Bank. (2006). {penelope}-2006: A code system for Monte Carlo simulation of electron and photon transport. Issy-les-Moulineaux, France: Salvat, F., Fernández-Vera, J., & Sempau, J. .

[1](1, 2) Mining and Materials Engineering Department, McGill University, 3610 University Street, Montréal, Canada, H3A 2B2.
[2]Département de génie électrique et génie informatique, Université de Sherbrooke, 2500, boul. de l’Université, Sherbrooke, Canada, J1K 2R1.
[3](1, 2, 3) Facultat de Fisica (ECM), Universitat de Barcelona, Diagonal 647, 08028 Barcelona, Spain.
[4]Facultad de Matemática, Astronomía y Física, Universidad Nacional de Crdoba. Ciudad Universitaria, 5000 Córdoba, Argentina.
[5]Institut de Tecniques Energetiques, Universitat Politecnica de Catalunya, Diagonal 647, 08028 Barcelona, Spain.
[6]Serveis Científico-Tècnics, Universitat de Barcelona, Lluís Solé i Sabarís, 1-3, 08028 Barcelona, Spain.