1.         NAME AND TITLE

PENELOPE2014:           Code System for Monte Carlo Simulation of Electron and Photon Transport.

Auxiliary Programs:

emfields Software package for simulating radiation transport in static electro-magnetic fields

gview Software for quadratic geometry visualisation

shower Software for displaying particle tracks on the screen of the computer

\pendbase\ Files necessary for creating material cross-section data files.


Facultat de Fisica (ECM), Universitat de Barcelona and Universitat Politècnica de Catalunya de Barcelona, Spain, through the Nuclear Energy Agency Data Bank, Issy-les-Moulineaux, France.


Fortran; PC under Windows or Linux (RSICC ID: C00782PCX8601 NEADB ID: NEA-1525/22).


PENELOPE performs Monte Carlo simulation of coupled electron-photon transport in arbitrary materials and complex quadric geometries. A mixed procedure is used for the simulation of electron and positron interactions (elastic scattering, inelastic scattering and bremsstrahlung emission), in which ‘hard’ events (i.e. those with deflection angle and/or energy loss larger than pre-selected cutoffs) are simulated in a detailed way, while ‘soft’ interactions are calculated from multiple scattering approaches. Photon interactions (Rayleigh scattering, Compton scattering, photoelectric effect and electron-positron pair production) and positron annihilation are simulated in a detailed way. PENELOPE reads the required physical information about each material (which includes tables of physical properties, interaction cross sections, relaxation data, etc.) from the input material data file. The material data file is created by means of the auxiliary program MATERIAL, which extracts atomic interaction data from the database of ASCII files.

PENELOPE mailing list archives and additional information about the code can be found at

The following features are specific to the 2001 and later versions of the code:

1) The simulation parameters (Eabs, C1, C2, Wcc and Wcr) are defined independently for each material. This allows the user to specify regions of interest where the simulation is performed in greater detail.

2) The argument DSMAX of subroutine JUMP specifies the maximum allowed path length between hard interactions of electrons and positrons. By selecting a suitably small value for this parameter, the user can control the number of hinges in thin regions (which must be larger than 10 or so, to ensure accuracy). This argument is also used for simulating the transport of charged particles in the presence of static external electric and magnetic fields. DSMAX has no effect when set equal to a very large number (e.g. 10**35).

3) The structure of the common /TRACK/ differs from previous versions. The variable ILB(5), which describes the origin of secondary particles, can be used to study partial contributions from particles originated by a given process.

The following features are specific to the 2003 and later versions of the code:

1) The generation of fluorescent radiation (x rays and Auger electrons) resulting from ionization of inner shells by impact of electrons and positrons is described as an independent process. The adopted ionization cross sections were calculated by using the relativistic Born approximation with a generalized oscillator strength model built from the partial photoelectric cross section of the active electron shell. This gives a more accurate description of the generation of characteristic x rays by electron and positron impact.

2) The energies of characteristic x rays are set equal to their experimental values (in previous versions of the code they were calculated from the ionization energies of the active electron shells).

3) The simulation algorithm for electron and positron inelastic collisions has been re-coded to allow more flexibility in the description of the physics and also to improve the simulation speed. Apart from a certain gain in speed (which is higher for heavy elements) this feature is not “visible” from the user’s main program.

4) The program TABLES.F, which produces tables of interaction properties (photon mass attenuation coefficients, electron/positron mean free paths, stopping powers, radiation yields, ranges,...) for arbitrary materials, has been included in the distribution package.

The following features have been added to the 2005 version of the code:

1) Version 2005 includes the new program, PENMAIN, that works like a blackbox for solving a large variety of problems with quadric geometries. With PENMAIN occasional (and normal) users can solve problems without having to write a single program line.

2) The program TABLES gives access to additional details of the interactions physics, both in a numeric and graphical way, e.g. the energy loss of electrons, or the photon attenuation coefficients in a material.

3) TIMER subroutines have been modified, according to a suggestion from a user from the NEA Data Bank, and are portable now (so far these work correctly with all compilers, under Windows or Linux).

4) Also following a suggestion from a NEA Data Bank user, unit 6 is no longer the standard output unit, except when the program makes a fatal error and stops. Now it is possible to write messages on the screen (like number of simulated showers) at predefined intervals, and consequently, it is possible to follow the program execution.

5) The electron elastic differential cross-sections are now obtained through partial wave analysis (PWA). Before only the total cross-section and the two first momenta of the differential cross-sections were considered..

6) The atomic disexcitation process following the vacancies in the M layer is now described. Before only the X rays and Auger electrons resulting from the vacancies in the K and L layers were described.

7) Some improvements have been introduced in the geometry subroutine (PENGEOM). For instance, now it is possible to clone objects.

8) Consequently, some changes had to be made in the geometry viewers. For instance GVIEW allows one to visualize materials and shapes (before only materials).

Improvements in the 2006 version compared to version 2005.

1) The correction for the energy dependence of the stopping power and the energy straggling parameter for soft interactions of electrons and positrons has been improved.

2) The sampling algorithm for Rayleigh scattering (which caused the g77 compiler to issue multiple warning messages) has been reformulated and improved.

3) Numerical interpolations, particularly those of elastic-scattering differential cross sections, are more accurate.

4) The structure of several common blocks has been modified to make interaction properties accessible from the program TABLES, and to facilitate future extensions of the interaction database. The names of interaction physics routines have been modified to allow the use of multiple models for each interaction mechanism.

5) The geometry package PENGEOM has been expanded. The present version can handle complex quadric geometries with up to 9,999 surfaces and 5,000 bodies. This extension required slight changes in the FORMAT of the geometry definition files (old files can be adapted with little editing work).

The geometry enclosure is defined as a sphere of 1.0e7 cm radius. This corrects a bug in the 2005 version (which caused inconsistencies when the whole material system was enclosed in a single module and this module was not simply connected).

6) The manual (penelope-2006-NEA.pdf) has been expanded and adapted to the present structure of the code.

Improvements in the 2008 version compared to version 2006.

This new version incorporates substantial changes and additions to the previous versions, which aim at improving both reliability and generality of the code system. As for the physics, the ionization of inner shells by electron and positron impact is now described by using a numerical database of total cross sections for K, L and M shells, which was calculated from the theory described by Bote and Salvat (2008). Also included are photon polarization effects in Rayleigh and Compton scattering, as well as refinements in the modeling of Rayleigh photon scattering and of inelastic collisions of electrons and positrons. The distribution package includes two examples of main programs: pencyl (for transport in cylindrical geometries), and penmain (for generic quadric geometries). In the present version, these codes are more flexible and allow a number of new options (e.g., extended sources, photon polarization, and calculation of energy distributions of average fluence in selected bodies). The geometry viewers have also been improved to allow the easy identification of body labels.

Improvements in the 2008.1 version compared to version 2008.

1) The implementation of Bielajew’s random hinge method has been modified. Soft angular deflections are sampled by assuming that the energy of the particle along the step decreases at a constant rate.

2) In the source file penelope.f, the RITA subroutines have been modified to allow a more accurate calculation of moments from the interpolating rational function.

3) In PENGEOM, surfaces defined as SURFACE* are never altered. That is, these surfaces are effectively fixed in space. In previous versions, when a SURFACE* was used in the definition of a module, possible translations or rotations of that module affected the surface.

4) A bug in PENGEOM (version 2008 only), which caused inconsistencies for geometries with infinite bodies, has been corrected. Note that now the enclosure is assumed to have a finite volume.

5) A (short) list of errata of the 2008 manual has been included in the .\doc directory.

Improvements in the 2011 version compared to version 2008.1

The 2011 version contains improvements in the description of inelastic collisions of electrons and positrons. The geometry package has been reformulated to permit the description of nanometric structures. Programs for the calculation of mass energy-absorption coefficients for photons, and linear energy transfers for charged particles have been included in the distribution package. The manual has also been revised, and a new chapter on radiation fields and dosimetry has been added.

The main differences with the previous version of PENELOPE and PENELOPE2014:

1. Global parameters (maximum number of materials, dimension of the energy interpolation grid, size of the secondary stack) are defined in module 'PENELOPE_mod'.
2. Particle state variables are stored in module 'TRACK_mod', which is used in the main program and in the tracking routines.
3. Ionizations of inner shells by electron and positron impact are described as proper inelastic collisions. This ensures that the net deposited energy in each interaction event is positive.
4. Cross sections for ionization of N subshells calculated from the relativistic distorted wave Born approximation have been included in the database.
5. For electrons and positrons, the energy loss DESOFT due to soft interactions between two consecutive hard interactions (which is delivered through module 'PENELOPE_mod'), can be deposited uniformly along the step. That is, instead of depositing DESOFT at the hinge we can use a kind of continuous-slowing-down model, and provide a more realistic description of the slowing down due to energy-loss events.
6. This feature is used in 'penmain.f' to evaluate the average energy loss along track segments that end at interfaces, thus giving improved stability for geometries involving thin bodies. It also reduces the dependence of results on the value of the user parameter DSMAX. Manifest improvements are found, e.g., in the case of electron transport through a stack of very thin foils.
7. The geometry package 'pengeom.f' has been modified. Array dimensions are now defined in the module 'PENGEOM_mod'. Element labels have been extended to 4-character alphanumeric strings.
8. The variance-reduction routines 'penvared.f' have been reformulated. The new routines include the techniques of bremsstrahlung splitting, and Woodcock delta scattering of photons. X-ray slitting can also be applied in 'penmain.f'.
9. The program 'penmain.f' includes additional options (bremsstrahlung and x-ray splitting, modifiable geometry parameters), as well as a refined calculation of absorbed dose in inhomogeneous volumes.
10. Two programs, 'penmain-sum.f' and 'pencyl-sum.f', are provided for combining results from independent simulation runs of the same problem (poor man's parallelisation).
11. Optionally, the program 'penmain.f' can keep track of the age of particles, measured from the start of the primary particle that initiates each shower.


The Monte Carlo method is used. A sufficiently large number of particle histories is simulated, and relevant quantities are obtained as averages. The mixed simulation algorithm for electrons and positrons implemented in PENELOPE reproduces the actual transport process to a high degree of accuracy and is very stable even at low energies. This is partly due to the use of a sophisticated transport mechanics model based on the so-called random hinge method, with energy-loss corrections for soft events. Other differentiating features of the simulation are a consistent description of angular deflections in inelastic collisions and of energy-loss straggling in soft stopping events. Binding effects and Doppler broadening in Compton scattering are also taken into account.


Electron and positron kinetic energies must be in the range from 100 eV to 1 GeV, and plural or multiple scattering conditions have to be fulfilled, i.e. the number of both elastic and inelastic interactions in the material must be larger than about 10. Photon energies should be in the range from 100 eV (or the M-shell absorption edge, whichever is the largest) to 1 GeV. Photo-nuclear reactions are disregarded.


The running time largely depends on the number of histories to be simulated, the kind of incident particle, its initial energy and the considered geometry. The adopted simulation parameters (energy cutoffs, etc.) also influence the computing time. As an example, a broad-beam depth-dose distribution of 10 MeV electrons incident on a water phantom, obtained by simulating 100.000 histories, can be obtained with a running time of some 320 s on an Intel Pentium III at 733 MHz with 128 MB RAM.


There are no specific requirements for the PENELOPE kernel. However the time subroutine, which is used in the example programs, must be adapted to the user's operating system. The included time routines are those of standard Fortran 90.


Linux-based PC, PC Windows, UNIX W.S.

10.        REFERENCES

a: Included in documentation:

Francesc Salvat: PENELOPE-2014 - A Code System for Monte Carlo Simulation of Electron and Photon Transport Workshop Barcelona, Spain 29 June-3 July 2015 (NEA/NSC/DOC(2015)

Francesc Salvat: The PENELOPE code system. Specific features and recent improvements. Joint International Conference on Supercomputing in Nuclear Applications and Monte Carlo 2013 (SNA + MC 2013) pp.1-12 La Cite des Sciences et de l'Industrie, Paris, France, October 27, 2013

b: Background information:

Francesc Salvat and J. M. Fernandez-Varea, “Overview of physical interaction models for photon and electron transport used in Monte Carlo codes,” Metrologia 46 (2009) S112/S138, online at

F. Salvat, J. M. Fernandez-Varea, E. Acosta and J. Sempau, “PENELOPE, A Code System for Monte Carlo Simulation of Electron and Photon Transport,” Proceedings of a Workshop/Training Course, OECD/NEA, 5-7 November 2001 NEA/NSC/DOC(2001)19. ISBN:92-64-18475-9.

J. Sempau, et al., “An algorithm for Monte Carlo simulation of the coupled electron-photon transport,” Nuclear Instruments and Methods B 132 (1997) 377–390.

J. Sempau, J. M. Fernandez-Varea, E. Acosta and F. Salvat, “Experimental benchmarks of the Monte Carlo code PENELOPE,” Nuclear Instruments and Methods B 207 (2003) 107–123.


The package is transmitted on a CD which includes the referenced documents cited in 10a. Windows executables for GVIEW2D, GVIEW3D  and SHOWER, source and example files.


August 2011, June 2015