Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Submit feedback
  • Sign in
S
src
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 71
    • Issues 71
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 5
    • Merge Requests 5
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Analytics
    • Analytics
    • CI / CD
    • Code Review
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • OPAL
  • src
  • Wiki
  • Home

Home

Last edited by kraus Oct 16, 2020
Page history

Object Oriented Parallel Accelerator Library (OPAL)

Introduction

OPAL (Object Oriented Parallel Accelerator Library) is a parallel open source tool for charged-particle optics in linear accelerators and rings, including 3D space charge. Using the MAD language with extensions, OPAL can run on a laptop as well as on the largest high performance computing systems. OPAL is built from the ground up as a parallel application exemplifying the fact that high performance computing is the third leg of science, complementing theory and experiment.

The OPAL framework makes it easy to add new features in the form of new C++ classes. OPAL comes in the following flavours:

  • OPAL-cycl: tracks particles with 3D space charge including neighbouring turns in cyclotrons and FFAs with time as the independent variable.
  • OPAL-t: models beam lines, linacs, rf-photo injectors and complete XFELs excluding the undulator.
  • OPAL-map: map tracking (experimental).

The code is managed through the Git distributed version control system. A suite of unit tests have been developed for various parts of OPAL, validating each part of the code independently. Unit tests use the google testing framework. System tests validate the overall integration of different elements. Documentation is written in Asciidoc. Tools are available to readily convert Asciidoc into formats such as PDF and HTML for display.

Please use the OPAL mailing list opal@ … (opal AT lists.psi.ch) to discuss problems and issues. Subscribe to the mailing list

Please report bugs and feature requests to the issue tracker or to the mailing list.

Documentation & Help

OPAL documentation

Version Manual Source code
documentation
Release notes
OPAL development HTML, PDF HTML Wiki
OPAL 2.4 HTML, PDF HTML Wiki
OPAL 2.2 HTML, PDF HTML Wiki
OPAL 2.0 HTML, PDF HTML Wiki

Download

Version Source Linux
binary
macOS
binary
Release notes
of binary package
OPAL 2.4.0 tar.xz, md5 tar.xz, md5 tar.xz, md5 Wiki
OPAL-2.2.1 tar.xz, md5 tar.xz, md5 n.a. Wiki
OPAL-2.2.0 tar.xz, md5 tar.xz, md5 tar.xz, md5 Wiki
OPAL-2.0.2 tar.xz, md5 tar.xz, md5 tar.xz, md5 Wiki

Documentation about installing and running the OPAL binary package is available here.

Git repository

Instead of downloading the source tar-ball you can get the OPAL source via Git. Either clone the whole Git repository (~ 2 GB!) with

git clone https://gitlab.psi.ch/OPAL/src.git

or clone a specific branch/tag with

git clone --single-branch --depth 1  --branch BRANCH_OR_TAG https://gitlab.psi.ch/OPAL/src.git [DIR]

Using and Compiling OPAL

  • Use OPAL at PSI
  • Compile OPAL
  • Compile OPAL at CSCS

Start with Examples

  1. Cyclotron
  2. RF Photo Injector
  3. Examples from regression tests
  4. FFA
  5. Tutorial from Manual

Tools

The runOPAL.py Script

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.

Post Processing and pyOPALTools

The pyOPALTools Python package contains many tools for pre- and postprocessing, and analysing and plotting output data. See also Post Processing.

Conversion utilities

  • OPAL conversion utilities

OPAL for Developers

  • Development
    • Coding Style and Conventions
    • Building, executing and writing unit tests
    • Development workflow, Git and Gitlab usage
    • Release Procedure
  • Documentation
    • OPAL source code documentation
    • IPPL Documentation
    • Most Used Directories in the Code
  • Technology & Ideas
  • Periodic Tele-cons
  • regression tests for current OPAL versions

OPAL Physics Resources

Clone repository
  • FFA school prerequisites
  • FFA
  • For-Developers
    • CodingStyle
    • Compile OPAL at CSCS
    • Compile OPAL
    • File Format for stat Storage
    • Most Used Directories in the Code
    • OPAL Development Workflow
    • Periodic Tele cons
    • Pmodules
    • Release Procedure
    • opaldks
    • tech ideas
  • For-Developers/Periodic-Tele-cons
    • 20191210
    • 20200420
View All Pages