Section Navigation

Simulation Codes

The following list contains the codes we use for our research. Note, that although we have access to the source text of half of the codes, we are currently developing only the UCLA version of Parmela and Genesis 1.3.

Code Description Platform Parallel Source Available Documentation
Parmela (UCLA) Particle Tracking Linux, Mac no yes tutorial
Homdyn Particle Tracking Linux, Mac no no manual, tutorial
Tredi Particle Tracking Linux yes yes tutorial
QUINDI Particle Tracking and Lienard-Weichert Linux yes yes manual
Genesis 1.3 Particle Tracking Linux, Mac no yes manual, tutorial
Elegant Particle Tracking Linux, Mac, Win no no manual, tutorial
Spur Lienard-Weichert Linux, Mac yes yes none
fieldEye Lienard-Weichert Linux yes yes none
Ampere Maxwell Solver Win no no none
Poisson/Superfish Maxwell Solver Linux no yes manual, tutorial
Gdfidl Maxwell Solver Linux no yes manual, tutorial
Radia Maxwell Solver Mac, Win no no tutorial, online manual
HFSS Maxwell Solver Win no no none
Magic Plasma Dynamics Win no no online tutorial
OopicPro Plasma Dynamics Linux yes yes online manual, tutorial


Parmela is a 3D particle tracker to simulate the dynamics in rf guns and injector beam lines. It includes space charge and image charge routines. It covers many analytic expressions of beam line components such as rf cavities, solenoid magnets, dipole and quadrupole magnets and allows for importing field maps from Poisson and Superfish.

Official Website


Homdyn is based on analytical formulae of the beam dynamics in rf photo injector. Instead of macro particles the electron beam is described by longitudinal slices with various lengths and radii, following the envelope equations for the electron beam.

Contact: M. Ferrario


Tredi is a fully 3D particle Tracking code, based on the Lienard-Wiechard potential for the electro-magnetic interaction between the macro particles. The code supports parallel computer architecture and requires the HDF5 file format for input and output files. Because it does not rely on any approximation it is an all-purpose code for any part of a linear accelerator.

Official Website

Luca Giannessi's (Author) Website


QUINDI is a first principles beam diagnostics simulator which calculates the radiative spectrum from a relativistic electron bunch passing through a magnetic array.

Official Website

Genesis 1.3

Genesis 1.3 is a 3D time-dependent Free-Electron Laser code, simulating the interaction of an electron beam with a radiation field, coupled by the field of an undulator or wiggler. Its algorithm is based on the paraxial equation of the radiation field and enforces the right statistic in the longitudinal position despite the lower number of macro particles than the electrons to be simulated.

Official Website


Elegant is a multi-purpose 3D particle Tracking code through a linear accelerator. The beam line elements are described by transport elements up to 3rd order. Although it excludes space charge, Elegant has an analytical model for the coherent synchrotron radiation in a bending system and its interaction back on the beam. Elegant works in the SDDS environment, complemented with the SDDS tool set, to pre- and postprocess Elegant runs.

Official Website


Spur (SPontaneous Undulator Radiation) calculates the radiation properties of the spontaneous radiation at a given 2D target behind the undulator for an arbitrary undulator lattice. The calculations are based on Lienard-Wichert potentials. The code is optimized for the motion of the electrons in an undulator, where the trajectory is analytically calculated for each half-period. The code is still under development.

Contact: S. Reiche


fieldEye is a first-principal code, which extracts out of the supplied trajectories of electrons the position, velocity and acceleration. With this information the Lienard-Wiechert potentials are solved to calculate the emitted radiation at arbitrary positions. The code is still under development.

Contact: A. Flacco


Ampere is a 3D magnetostatic field solver. The field is solved on a discretized environment, using the boundary element method. The code has its strength in designing electromagnets with and without permeable material. Ampere is a commercial program.

Official Website


Although the codes serves different purposes, the underlying field solver of the discretized field equations is the same. Poisson solves magnetostatic problems, while Superfish calculates the eigenvalues and -solutions of rf cavities. Both codes are 2D, but can distinguish between radial (r, z) or cartesian (x,y) symmetry.

Official Website


Gdfidl is a finite difference solver for the Maxwell and Helmholz equations. It is capable of finding the eigenvalues and vectors for arbitrary rf structures. It can also calculate the induced geometric wakefields by a passing charge. A novel memory management eliminates the calculation of dead spaces (e.g. grid points within metals) and thus gains a speed-up, compared to similar program. Gdfidl is a commercial program.

Offcial Website


Radia is a set of library functions for Mathematica for magnetostatic problems. It supplies routines to define magnetic structure, solve the field equations and to plot the field profiles. As a plug-in for Mathematica it allows easy set-up of the script to define and solve the magnetic problem.

Official Website


HFSS is a 3D electromagnetic simulation tool for RF, wireless, packaging, and optoelectronic design. Based on a finite element method with adaptive mesh refinement, the eigenmodes and frequencies of an rf system are solved, including dispersion, mode conversion, and losses due to materials and radiation. HFSS is a commercial program.

Official Website


Magic is a package of three application to simulate plasma dynamics: a 2D solver, a 3D solver and a postprocessor. The solver are particle-in-cell codes, including the electromagnetic interaction between the particles and external fields. The problem is solved in the time-domain, based on a finite-difference algorithm. Magic is a commercial program.

Official Website


OopicPro is a 2D particle-in-cell code for plasma simulation. It supports slab and cylindrical structures and solved the equations of motion and field equation with a finite-difference method in time-domain. The code support parallel computer architecture, using the MPI interface between the individual nodes.

Official Website