|
|
image::images/logo.png[]
|
|
|
= Object Oriented Parallel Accelerator Library (_OPAL_)
|
|
|
include::wiki.attributes[]
|
|
|
|
|
|
== 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 {mail_mailing_list} to discuss problems and issues. Subscribe to the {link_mailing_list}[**mailing list**].
|
|
|
|
|
|
Please report bugs and feature requests to the {link_issue_tracker}[issue tracker] or to the mailing list.
|
|
|
|
|
|
## Documentation & Help
|
|
|
|
|
|
### OPAL documentation
|
|
|
|
|
|
[%header,width="80%",cols="2,2,2,2"]
|
|
|
|========
|
|
|
| Version
|
|
|
| Manual
|
|
|
| Source code documentation
|
|
|
| Release notes
|
|
|
|
|
|
| _OPAL_ development
|
|
|
| {link_manual}/master[HTML], {link_manual}/master/Manual.pdf[PDF]
|
|
|
| {link_doxydoc}/master[HTML]
|
|
|
| link:RelaseNotes/OPAL-2021.1[Wiki]
|
|
|
|
|
|
| _OPAL_ 2021.1
|
|
|
| {link_manual}/2021.1[HTML], {link_manual}/2021.1/Manual.pdf[PDF]
|
|
|
| {link_doxydoc}/2021.1[HTML]
|
|
|
| link:RelaseNotes/OPAL-2021.1[Wiki]
|
|
|
|
|
|
| _OPAL_ 2.4
|
|
|
| {link_manual}/2.4[HTML], {link_manual}/2.4/Manual.pdf[PDF]
|
|
|
| {link_doxydoc}/2.4[HTML]
|
|
|
| link:RelaseNotes/OPAL-2.4[Wiki]
|
|
|
|
|
|
| _OPAL_ 2.2
|
|
|
| {link_manual}/2.2[HTML], {link_manual}/2.2/Manual.pdf[PDF]
|
|
|
| {link_doxydoc}/2.2[HTML]
|
|
|
| link:RelaseNotes/OPAL-2.2[Wiki]
|
|
|
|
|
|
| _OPAL_ 2.0
|
|
|
| {link_manual}/2.0[HTML], {link_manual}/2.0/Manual.pdf[PDF]
|
|
|
| {link_doxydoc}/2.0[HTML]
|
|
|
| link:RelaseNotes/OPAL-2.0[Wiki]
|
|
|
|
|
|
|========
|
|
|
|
|
|
=== Start with Examples
|
|
|
|
|
|
1. link:Cyclotron[Cyclotron]
|
|
|
1. link:RFPhotoInjector[RF Photo Injector]
|
|
|
1. link:RegressionTestExamples[Examples from regression tests]
|
|
|
1. link:FFA[FFA]
|
|
|
1. {link_manual}/{OPAL_VER}/Manual.html#chp.tutorial[Tutorial from Manual]
|
|
|
|
|
|
== Download
|
|
|
|
|
|
=== Source tar-balls and binary packages
|
|
|
|
|
|
[%header,width="80%",cols="2,2,2,2"]
|
|
|
|========
|
|
|
| Version
|
|
|
| Source
|
|
|
| Linux binary
|
|
|
| macOS binary
|
|
|
|
|
|
| _OPAL_ 2021.1.0
|
|
|
| {link_src}/OPAL-2021.1.0.tar.xz[tar.xz], {link_src}/OPAL-2021.1.0.tar.xz.md5[md5]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| _OPAL_ 2.4.0
|
|
|
| {link_src}/OPAL-2.4.0.tar.xz[tar.xz], {link_src}/OPAL-2.4.0.tar.xz.md5[md5]
|
|
|
| {link_pkg}/OPAL-2.4.0-2{linux_pkg}, {link_pkg}/OPAL-2.4.0-2{linux_md5}
|
|
|
| {link_pkg}/OPAL-2.4.0-2{macos_pkg}, {link_pkg}/OPAL-2.4.0-2{macos_md5}
|
|
|
|
|
|
| _OPAL_ 2.2.1
|
|
|
| {link_src}/OPAL-2.2.1.tar.xz[tar.xz], {link_src}/OPAL-2.2.1.tar.xz.md5[md5]
|
|
|
| {link_pkg}/OPAL-2.1.1-1{linux_pkg}, {link_pkg}/OPAL-2.2.1-1{linux_md5}
|
|
|
|
|
|
|
|
|
|
| _OPAL_ 2.2.0
|
|
|
| {link_src}/OPAL-2.2.0.tar.xz[tar.xz], {link_src}/OPAL-2.2.0.tar.xz.md5[md5]
|
|
|
| {link_pkg}/OPAL-2.2.0-1{linux_pkg}, {link_pkg}/OPAL-2.2.0-1{linux_md5}
|
|
|
| {link_pkg}/OPAL-2.2.0-1{macos_pkg}, {link_pkg}/OPAL-2.2.0-1{macos_md5}
|
|
|
|
|
|
| _OPAL_ 2.0.2
|
|
|
| {link_src}/OPAL-2.0.2.tar.xz[tar.xz], {link_src}/OPAL-2.0.2.tar.xz.md5[md5]
|
|
|
| {link_pkg}/OPAL-2.0.2-1{linux_pkg}, {link_pkg}/OPAL-2.0.2-1{linux_md5}
|
|
|
| {link_pkg}/OPAL-2.0.2-1{macos_pkg}, {link_pkg}/OPAL-2.0.2-1{macos_md5}
|
|
|
|
|
|
|========
|
|
|
|
|
|
Documentation about installing and running the _OPAL_ binary package is available link:OPAL-binary-package[here].
|
|
|
|
|
|
A ChangeLog of the binary packages is available link:OPAL-binary-package-ChangeLog[here].
|
|
|
|
|
|
Older version can be found link:OPAL-binary-package-old-versions[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
|
|
|
[source,sh,subs="attributes"]
|
|
|
----
|
|
|
git clone {link_repo}.git
|
|
|
----
|
|
|
|
|
|
or clone a specific branch/tag with
|
|
|
[source,sh,subs="attributes"]
|
|
|
----
|
|
|
git clone --single-branch --depth 1 --branch BRANCH_OR_TAG {link_repo}.git [DIR]
|
|
|
----
|
|
|
|
|
|
== Using and Compiling _OPAL_
|
|
|
|
|
|
* link:OPALAtPSI[Use _OPAL_ at PSI]
|
|
|
* link:For%20Developers/Compile-OPAL[Compile _OPAL_]
|
|
|
* link:For%20Developers/Compile-OPAL-at-CSCS[Compile _OPAL_ at CSCS]
|
|
|
|
|
|
|
|
|
== Tools
|
|
|
=== The runOPAL.py Script
|
|
|
|
|
|
The link:runOPAL[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 {link_pyopaltools}/wikis/home[pyOPALTools] Python package contains many tools for pre- and postprocessing, and analysing and plotting output data.
|
|
|
See also link:postprocessing[Post Processing].
|
|
|
|
|
|
=== Conversion utilities
|
|
|
|
|
|
* link:OPAL-conversion-utilities[_OPAL_ conversion utilities]
|
|
|
|
|
|
== OPAL for Developers
|
|
|
|
|
|
* **Development**
|
|
|
** link:For-Developers/Codingstyle[Coding Style and Conventions]
|
|
|
** link:For-Developers/unit-tests[Building, executing and writing unit tests]
|
|
|
** link:For-Developers/OPAL-Development-Workflow[Development workflow, Git and Gitlab usage]
|
|
|
** link:For-Developers/Release-Procedure[Release Procedure]
|
|
|
* **Documentation**
|
|
|
** {link_doxydoc}/master[_OPAL_ source code documentation]
|
|
|
** link:For-Developers/ippl_user_guide.pdf[IPPL Documentation]
|
|
|
** link:For-Developers/Most-Used-Directories-in-the-Code[Most Used Directories in the Code]
|
|
|
** link:For-Developers/tech-ideas[Technology & Ideas]
|
|
|
** link:For-Developers/Periodic-Tele-cons[Workshops and virtual meetings]
|
|
|
* **Build-, Unit- and Regression Tests**
|
|
|
** on {link_opal_base}/master[_OPAL_ development branch]
|
|
|
** on {link_opal_base}/OPAL-2021.1[_OPAL_ 2021.1 branch]
|
|
|
** on {link_opal_base}/OPAL-2.4[_OPAL_ 2.4 branch]
|
|
|
|
|
|
== link:OPALPresentations[OPAL Physics Resources] |
|
|
\ No newline at end of file |