Synergia Miniapps

Synergia Miniapps


minigia  is a set of Synergia miniapps.  Synergia is a hybrid Python/C++ package for single or multiple bunch accelerator simulations utilizing PIC methods. It includes:

  • Fully nonlinear and symplectic independent-particle physics, as well as symplectic linear maps and arbitrary-order polynomial maps.
  • Collective effects, including space charge and wake fields, in various approximations ranging from the very simple to computationally-intense, three-dimensional field calculations.

minigia contains skeleton portions of Synergia infrastructure. The code is simple enough to be easily refactored from bottom to top.

  • Independent_particle contains computationally-intensive portions of the independent particle code in Synergia
  • space_charge contains computationally-intensive portions of the space charge code in Synergia (work in progress)

minigia was used to develop the vectorizable and multithreaded independent particle code in Synergia. On Kinght’s Corner, this code shows a factor of 5768 speedup over the code running on a single core. (Please see the image below. Green: original Synergia. Blue: new Synergia without vectorization. Red: new Synergia with vectorization)

HEP miniapps

For general information about HEP miniapps, please see


An HEP Collision Point