Cornell Accelerator Software Overview and Definitions
The Cornell accelerator software can roughly be divided into two parts:
- General accelerator and X-ray simulation software (associated with the Bmad library/toolkit).
- Software specifically intended for use with the Cornell CESR accelerator.
This software is known as the ACC Code Libraries
and is housed in a Subversion (SVN) repository called the ACC Code Repository
The ACC Code Libraries
are compiled into what are called Releases
exist on the CLASSE Linux cluster and are for in-house use only. Distributions
are meant for off-site use.
- ACC: It could stand for 'Accelerator Consolidated Code' or just short for 'ACCelerator', depending on your taste. In any case, ACC is used as a prefix for various Cornell accelerator software system component names.
- ACC Code Library or ACC Code Libraries: The collection of libraries contained in the ACC Code Repository
- ACC Build System: A collection of scripts (based on CMake, python and bash) used to produce binaries in the form of libraries and executables. This build system is used to produce Releases and Distributions, as well as compiling/linking user developed code.
- ACC Code Repository : The subversion (SVN) source code repository used to organize, track, and manage development activity. The ACC Code Repository contains:
- The main lab-developed accelerator simulation source code.
- A large collection of accelerator lattice files.
- Some data acquisition and hardware code.
- Third-party libraries developed elsewhere used to support operation of the above. These libraries are called packages.
- Active Release: For a particular shell session (terminal window) on the CLASSE linux system, the Active Release is the Release the ACC Build System will link against when building code.
- Bmad : The particular ACC Code Library used for accelerator and X-ray simulation. The name Bmad can also be used to refer to the Bmad library and other ACC Code Libraries which are needed for building simulation programs. Generally what is meant is clear from the context.
- CLASSE: Cornell Laboratory for Accelerator-based Sciences and Education.
- Distribution : A stand-alone subset of the ACC Code Libraries used for accelerator andX-ray simulations.
- Distributions are available for download from the web. No CLASSE account is required.
- New Distributions are generated approximately weekly.
- Distributions contain a subset of the code in a Release. The code that is left out of Distributions is CESR specific and therefore not of interest to outside people.
- Distributions can be built on Linux or Mac OS X (intel) computers. Note: The ACC Build System does not work on Windows but it is possible to build some subset of a Distribution.
- Once a Distribution is in place, source code updates can be done using "svn update".
- All "OFF-site" work is done using Distributions.
- Docker Container: Refers to a virtual environment in which Distributions can be run.
- Off-Site: Refers to work done with Distribution builds. Generally, off-site refers to work done on computers that are not part of the Linux computer system at CLASSE. Distribution builds can be done on the CLASSE Linux computer system but, in practice, this is seldom done since working with Releases is easier).
- On-Site: Refers to work done with Release builds. Releases are only generated on the Linux computer system at CLASSE.
- Packages: Third party libraries (for example the LAPACK, Numerical Recipes, etc.) that are part of the ACC Code Repository are called Packages.
- Release : A build of the ACC Code Library on the Linux computer system on the CLASSE network. Releases are generated every morning except for Sunday mornings.