Skip to content

GitLab

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

Last edited by gsell Nov 02, 2022
Page history

Home

logo

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.

  • 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 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.


Download, Documentation, Help, Presentations & Papers

Version/
Source code
Linux binary
package
macOS binary
package
Manual Source code
documentation
Release
notes

OPAL development

n.a.

n.a.

HTML, PDF

HTML

Wiki

OPAL 2022.1.0 (md5)

tar.xz (md5)

tar.xz(x86_64) (md5)
tar.xz(M1) (md5)

HTML, PDF

HTML

Wiki

OPAL 2021.1.0 (md5)

tar.xz (md5)

tar.xz(x86_64) (md5)

HTML, PDF

HTML

Wiki

OPAL 2.4.0 (md5)

tar.xz (md5)

tar.xz(x86_64) (md5)

HTML, PDF

HTML

Wiki

OPAL 2.2.1 (md5)

tar.xz (md5)

tar.xz (md5)

HTML, PDF

HTML

Wiki

OPAL 2.0.2 (md5)

tar.xz (md5)

tar.xz(x86_64) (md5)

HTML, PDF

HTML

Wiki

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]

OPAL binary packages

  • installing and running a OPAL binary package.

  • ChangeLog of the binary packages.

  • Deprecated versions.

Start with Examples

  • Cyclotron

  • AWA RF Photo Injector

  • AWA EEX Beamline

  • AWA Drive Linac

  • Examples from regression tests

  • FFA

  • Tutorial from Manual

Presentations & Papers

  • OPAL Physics Resources


Using OPAL at PSI

  • Using OPAL at PSI

Compiling OPAL

  • Supported OS and required Software to build OPAL

  • Setup build environment at PSI

  • Compile required software (OPAL build recipes)

  • Compile OPAL

  • Compile OPAL at CSCS


Tools

  • 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 Python package contains many tools for pre- and postprocessing, and analysing and plotting output data. See also Post Processing.

  • 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

  • Workshops and virtual meetings

Build-, Unit- and Regression Tests

  • on OPAL development branch

  • on OPAL 2022.1 branch

  • on OPAL 2021.1 branch

  • on OPAL 2.4 branch

Clone repository
  • Examples
    • FFA
    • RFPhotoInjector
    • cyclotron
    • regressiontestexamples
  • FFA school prerequisites
  • For Developers
    • CodingStyle
    • Compile OPAL at CSCS
    • Compile OPAL
    • Compile required software
    • File Format for stat Storage
    • Most Used Directories in the Code
    • OPAL Development Workflow
    • Pmodules
    • Release Procedure
    • Setup build environment at PSI
View All Pages