Argonne National Laboratory

Accelerator Operations & Physics

Advance Photon Source
A U.S. Department of Energy, Office of Science,
Office of Basic Energy Sciences national synchrotron x-ray research facility

US Department of Energy
Argonne Home > Advanced Photon Source > Accelerator Systems Division > Accelerator Operations & Physics

Home of Accelerator Operations & Physics Software Package Source Code

License Agreement
This web page provides access to software packages produced by the Accelerator Operations and Physics Group.

Note that some of this software (notably the SDDS code) is also distributed by the EPICS collaboration. However, those versions are usually out of date and we suggest that SDDS users download from this site. The directory structures are the same in the two distributions.

Documentation on these software packages can be found here.

For Windows users, an installation guide for SDDS and the simulation programs is available here
For Linux users, an installation guide for SDDS and the simulation programs is available here
Software Trees

Configuration files for EPICS build system
You'll need these files if you don't have the epics/base/configure area already. The files are used by gnumake to customize builds to specific operating systems.
You'll need these files if you don't have the epics/extensions/configure area already. The files are used by gnumake to customize builds to specific operating systems. You'll probably have to modify the RELEASE file for your specific system.

SDDS Source

SDDS Binaries

Java SDDS Source Code
  • Java SDDS Release (February 8, 2016)
    This version works with Java JDK 1.7 and 1.8 This version works independently from the C code. Documentation for the Java SDDS libarary can be found here.

Java SDDS Binaries

Matlab SDDS Source Code
  • Matlab SDDS Release (April 1, 2015)
    This version requires the Java SDDS Binary be installed in the Matlab class path. These files are also included in the SDDS Source distribution. Installation instructions are also available.

Python SDDS Binaries

Retrieving and Building SDDSepics toolkit
Here are the files needed to compile the EPICS control system specific SDDS applications. Simply click on the item and your browser will download the software (prompting you for a destination directory). You can untar this into the directory structure created by the SDDS tar file above, or vice versa. It is simply another module in the same build system.

SDDSepics Source

SDDSepics Binaries

SDDS/EPICS Demonstration Scripts
gzip'd tar file contains a number of Tcl/Tk scripts and data files for running demonstrations of the SDDS and the SDDS/EPICS Toolkits. It uses these toolkits and our extensions to Tcl/Tk. The demonstrations involve simulation of a storage ring using the portable channel access server, collection and analysis of data from the storage ring, measurement of the response matrix, and correction of the orbit. You should download and unpack this file first, then consult the README file for more detailed instructions. At present, these demos are only supported on LINUX and other UNIX platforms.

Configuration files for elegant, spiffe, genesis, and shower
The files are used by gnumake to customize builds to specific operating systems. You'll probably have to modify these files for your specific system.

PEM, Tcl/Tk Interpreter, and Tcl/Tk Library Source
This file contains the source for the Procedure Execution Manager (PEM), the OAG Tcl/Tk interpreter (with SDDS, CA, and operating system extensions), and the OAG Tcl/Tk procedure library. The oag directory created by the untarring the SDDS code and the OAG code must be at the same level in your directory structure.

Clinchor calculates the growth rates of longitudinal and transverse coupled bunch modes in an electron storage ring. The manual is available here.
Some example files are here.

elegant is an accelerator code that computes beta functions, matrices, orbits, floor coordinates, amplification factors, dynamic aperture, and more. It does 6-D tracking with matrices and/or canonical integrators, and supports a variety of time-dependent elements. It also does optimization (e.g., matching), including optimization of tracking results. It is the principle accelerator code used at APS. To get started with elegant, you can use the following example files and scripts as a guide.
The manual is available here.
Check out the Pelegant setup guide for multi-CPU-core computers.
Another source of information and help is the on-line forum.

Shield is a computer code for performing shielding analyses around a high-energy electron accelerator. It makes use of simple analytic expressions for the production and attenuation of photons and neutrons resulting from electron beams striking thick targets, such as dumps, stoppers, collimators, and other beam devices. This version is based on SHEILD11 (SLAC).

Spiffe is a fully-electromagnetic 2-1/2 dimensional particle-in-cell code for simulation of rf guns and similar systems with cylindrical symmetry.

Genesis is a time dependent Free Electron Laser (FEL) simulation code written by Sven Reiche. Detailed information can be found here. This code was modified so that it can output SDDS files which can be plotted using sddsplot. Also the output files from elegant can be converted into input files for Genesis by using the elegant2genesis program in the SDDS ToolKit.

Shower is a C-interface to EGS4, a Monte Carlo electromagnetic shower simulation program. EGS4 (developped at SLAC) is a set of subroutines that generates and tracks particle in a electromagnetic shower. In the conventional EGS4 code system, the user must supply their own input and output routines and problem geometry definition written in the MORTRAN language. This arduous process has been replaced by the C-code interface provided here by reading and writing input and output particle information as data files, the geometry definition as a file of namelist type commands, and other information in an addition summary data file. All data files are in SDDS format, and therefore compatible with other processing and tracking programs.

SDDS interface to IDL
This API (sddsIDL) provides the capability for an IDL program to read and write SDDS formatted files.

MOGA optimization software for rings
The file below supplies a set of example input files and instructions for using our genetic optimization script to perform multi-objective optimization of Touschek lifetime and dynamic acceptance in storage rings.

Vorpal Visualization tool
This application (tcl/tk code) provides the interface for converting vorpal outputs to sdds files, postprocessing and displaying the results. It requires sdds toolkits which including hdf2sdds and OAG tcl/tk libaries.

Argonne National Laboratory License Agreement

Modified by