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] aeyh_v1_0.tar.gz(4943 Kbytes)
Manuscript Title: PENGEOM - A general-purpose geometry package for Monte Carlo simulation of radiation transport in material systems defined by quadric surfaces.
Authors: Julio Almansa, Francesc Salvat-Pujol, Gloria Díaz-Londoño, Artur Carnicer, Antonio M. Lallena, Francesc Salvat
Program title: Pengeom
Catalogue identifier: AEYH_v1_0
Distribution format: tar.gz
Journal reference: Comput. Phys. Commun. 199(2016)102
Programming language: Fortran, Java.
Computer: PC with Java Runtime Environment installed.
Operating system: Windows, Linux.
RAM: 210 MiB
Keywords: Constructive quadric geometry, Monte Carlo particle transport, Ray tracing, Geometry visualization.
Classification: 21.1, 14.

Nature of problem:
The Fortran subroutines perform all geometry operations in Monte Carlo simulations of radiation transport with arbitrary interaction models. They track particles through material systems consisting of homogeneous bodies limited by quadric surfaces. Particles are moved in steps (free flights) of a given length, which is dictated by the simulation program, and are halted when they cross an interface between media of different compositions or when they enter selected bodies.

Solution method:
The pengeom subroutines are tailored to optimize simulation speed and accuracy. Fast tracking is accomplished by the use of quadric surfaces, which facilitate the calculation of ray intersections, and of modules (connected volumes limited by quadric surfaces) organized in a hierarchical structure. Optimal accuracy is obtained by considering fuzzy surfaces, with the aid of a simple algorithm that keeps control of multiple intersections of a ray and a surface. The Java GUI PenGeomJar provides a geometry toolbox; it allows building and debugging the geometry definition file, as well as visualizing the resulting geometry in two and three dimensions.

By default pengeom can handle systems with up to 5,000 bodies and 10,000 surfaces. These numbers can be increased by editing the Fortran source file.

Unusual features:
All geometrical operations are performed internally. The connection between the steering main program and the tracking routines is through a Fortran module, which contains the state variables of the transported particle, and the input-output arguments of the subroutine step. Rendering of two- and three-dimensional images is performed by using the pengeom subroutines, so that displayed images correspond to the definitions passed to the simulation program.

Additional comments:
Java editor and viewer (PenGeomJar), geometry examples, translator to POV-Ray format, detailed manual. The Fortran subroutine package pengeom is part of the penelope code system. [1].

Running time:
The running time much depends on the complexity of the material system. The most complicated example provided, phantom, an anthropomorphic phantom, has 264 surfaces and 169 bodies and modules, with different levels of grouping; the largest module contains 51 daughters. The rendering of a 3D image of phantom with 1680x1050 pixels takes about 25 seconds (i.e., about 1.5·10-5 seconds per ray) on an Intel Core I7-3520M CPU, with Windows 7 and subroutines compiled with gfortran.

[1] F. Salvat, J. M. Fernández-Varea, J. Sempau, penelope-2011: A code System for Monte Carlo Simulation of Electron and Photon Transport, OECD/NEA Data Bank, Issy-les-Moulineaux, France, 2011. Available from http://www.nea.fr/lists/penelope.html.