1 Introduction
1.1 History
Using the MAD language with extensions, OPAL is derived from MAD9P and is based on the CLASSIC library [1], which was started in 1995 by an international collaboration. IPPL (Independent Parallel Particle Layer) provides the parallel particles and fields using a data-parallel approach and was inspired by POOMA [2].
OPAL-T can be used to model guns, injectors, ERLs, and complete XFELs.
1.2 Project Resources and Getting Started
The public project pages collect the current landing-page material for OPAL. The OPAL manual is published online, and the OPAL mailing list can be joined via the subscription page. For a broader overview of current use cases and publications, see papers and presentations.
If you are starting with example problems, the following entry points are the most useful:
- Cyclotron examples
- RF photo injector examples
- AWA EEX beamline examples
- AWA drive linac examples
- Regression-test examples
- FFA examples Users working at PSI can additionally consult Using OPAL at PSI.
1.3 Tools
The project pages list a small set of supporting tools around the core simulation codes:
- The runOPAL Python scripts allows you to run, automated, several OPAL jobs and obtain the data in a conceived way. Scans of multiple dimensions are easy to perform.
- The pyOPALTools.md Python package contains many tools for pre- and postprocessing, and analysing and plotting output data.
- The Conversion Utilities
1.4 Parallel Processing Capabilities
OPAL is built to harness the power of parallel processing for an improved quantitative understanding of particle accelerators. This goal can only be achieved with detailed 3D modelling capabilities and a sufficient number of simulation particles to obtain meaningful statistics on beam properties such as emittance, slice emittance, and halo extension.
The following example is representative:
| Distribution | Particles | Mesh | Greens Function | Time steps |
|---|---|---|---|---|
| Gauss 3D | \(10^8\) | \(1024^3\) | Integrated | 10 |
Figure 1.1 shows the parallel efficiency time as a function of used cores for this test example. The data were obtained on a Cray XT5 at the Swiss Center for Scientific Computing.
1.5 Quality Management
Documentation and quality assurance are given very high priority because adequate documentation is a key factor in the usefulness of a code such as OPAL for present and future particle accelerators. With source control, Doxygen documentation, and a maintained user manual, the aim is to provide both users and co-developers with state-of-the-art documentation.
One non-trivial test case is the PSI DC gun. Figure 1.2 shows a comparison between IMPACT-T and OPAL-T.
Misprints and obscurity are almost inevitable in a document of this size. Comments and active contributions from readers are therefore welcome.
1.6 Output
The phase space is stored in the H5hut file format [3] and can be analyzed using H5root and H5PartROOT-style post-processing workflows [4]. The frequency of phase-space and statistical output is controlled by the relevant OPTION statement flags such as PSDUMPFREQ and STATDUMPFREQ.
A SDDS-compatible ASCII file with statistical beam parameters is written to a file with extension .stat.
For postprocessing we recommend pyOPALTools, which contains many tools for pre-processing, post-processing, analysis, and plotting output data.
1.7 Change History
Change history is recorded in the OPAL release notes.
1.8 Known Issues and Limitations
The current OPAL issue tracker is:
1.9 Acknowledgments
The contributions of various individuals and groups are acknowledged in the relevant chapters. A few individuals have or had particularly strong influence on the development of OPAL, including Chris Iselin, John Jowett, Julian Cummings, Ji Qiang, Robert Ryne, Stefan Adam, Christian Baumgarten, J. Scott Berg, Yuanjie Bi, David Bruhwiler, Chris Cortes, Martin Duy Tat, Matthias Frey, Philippe Ganz, Colwyn Gulliford, Yves Ineichen, Tulin Kaman, Christopher Mayes, Xiaoying Pang, Valeria Rizzoglio, Chuan Wang, Jianjun Yang, and Hao Zha.
1.10 Citation
Please cite OPAL using [5].