|
|
= Object Oriented Parallel Accelerator Library (_OPAL_)
|
|
|
include::attributes.asciidoc[]
|
|
|
|
|
|
== 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 {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.
|
|
|
|
|
|
---
|
|
|
|
|
|
## Download, Documentation, Help, Presentations & Papers
|
|
|
|
|
|
[%header,width="80%",cols="2,2,2,2,2,2"]
|
|
|
|========
|
|
|
| Version/ +
|
|
|
Source code
|
|
|
| Linux binary +
|
|
|
package
|
|
|
| macOS binary +
|
|
|
package
|
|
|
| Manual
|
|
|
| Source code +
|
|
|
documentation
|
|
|
| Release +
|
|
|
notes
|
|
|
|
|
|
| _OPAL_ development
|
|
|
| n.a.
|
|
|
| n.a.
|
|
|
| {link_manual}/master[HTML], {link_manual}/master/Manual.pdf[PDF]
|
|
|
| {link_doxydoc}/master[HTML]
|
|
|
| link:ReleaseNotes/OPAL-2023.1[Wiki]
|
|
|
|
|
|
| {link_src}/OPAL-2022.1.0.tar.xz[_OPAL_ 2022.1.0] ({link_src}/OPAL-2022.1.0.tar.xz.md5[md5])
|
|
|
| {link_pkg}/OPAL-2022.1.0-1{linux_pkg} ({link_pkg}/OPAL-2022.1.0-1{linux_md5})
|
|
|
| {link_pkg}/OPAL-2022.1.0-1{macos_pkg} ({link_pkg}/OPAL-2022.1.0-1{macos_md5}) +
|
|
|
{link_pkg}/OPAL-2022.1.0-1{macos_arm_pkg} ({link_pkg}/OPAL-2022.1.0-1{macos_arm_md5})
|
|
|
| {link_manual}/2022.1[HTML], {link_manual}/2022.1/Manual.pdf[PDF]
|
|
|
| {link_doxydoc}/2022.1[HTML]
|
|
|
| link:ReleaseNotes/OPAL-2022.1[Wiki]
|
|
|
|
|
|
| {link_src}/OPAL-2021.1.0.tar.xz[_OPAL_ 2021.1.0] ({link_src}/OPAL-2021.1.0.tar.xz.md5[md5])
|
|
|
| {link_pkg}/OPAL-2021.1.0-1{linux_pkg} ({link_pkg}/OPAL-2021.1.0-1{linux_md5})
|
|
|
| {link_pkg}/OPAL-2021.1.0-1{macos_pkg} ({link_pkg}/OPAL-2021.1.0-1{macos_md5})
|
|
|
| {link_manual}/2021.1[HTML], {link_manual}/2021.1/Manual.pdf[PDF]
|
|
|
| {link_doxydoc}/2021.1[HTML]
|
|
|
| link:ReleaseNotes/OPAL-2021.1[Wiki]
|
|
|
|
|
|
| {link_src}/OPAL-2.4.0.tar.xz[_OPAL_ 2.4.0] ({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})
|
|
|
| {link_manual}/2.4[HTML], {link_manual}/2.4/Manual.pdf[PDF]
|
|
|
| {link_doxydoc}/2.4[HTML]
|
|
|
| link:ReleaseNotes/OPAL-2.4[Wiki]
|
|
|
|
|
|
| {link_src}/OPAL-2.2.1.tar.xz[_OPAL_ 2.2.1] ({link_src}/OPAL-2.2.1.tar.xz.md5[md5])
|
|
|
| {link_src}/OPAL-2.2.1.tar.xz[tar.xz] ({link_src}/OPAL-2.2.1.tar.xz.md5[md5])
|
|
|
| {link_pkg}/OPAL-2.2.1-1{linux_pkg} ({link_pkg}/OPAL-2.2.1-1{linux_md5})
|
|
|
| {link_manual}/2.2[HTML], {link_manual}/2.2/Manual.pdf[PDF]
|
|
|
| {link_doxydoc}/2.2[HTML]
|
|
|
| link:ReleaseNotes/OPAL-2.2[Wiki]
|
|
|
|
|
|
| {link_src}/OPAL-2.0.2.tar.xz[_OPAL_ 2.0.2] ({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})
|
|
|
| {link_manual}/2.0[HTML], {link_manual}/2.0/Manual.pdf[PDF]
|
|
|
| {link_doxydoc}/2.0[HTML]
|
|
|
| link:ReleaseNotes/OPAL-2.0[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
|
|
|
[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]
|
|
|
----
|
|
|
|
|
|
=== _OPAL_ binary packages
|
|
|
|
|
|
* link:OPAL-binary-package[installing and running a _OPAL_ binary package].
|
|
|
* link:OPAL-binary-package-ChangeLog[ChangeLog of the binary packages].
|
|
|
* link:OPAL-binary-package-old-versions[Deprecated versions].
|
|
|
|
|
|
=== Start with Examples
|
|
|
|
|
|
* link:Examples/Cyclotron[Cyclotron]
|
|
|
* link:Examples/RFPhotoInjector[AWA RF Photo Injector]
|
|
|
* link:Examples/AWAEEXBeamline[AWA EEX Beamline]
|
|
|
* link:Examples/AWADriveLinac[AWA Drive Linac]
|
|
|
|
|
|
* link:Examples/RegressionTestExamples[Examples from regression tests]
|
|
|
* link:Examples/FFA[FFA]
|
|
|
* {link_manual}/{OPAL_VER}/Manual.html#chp.tutorial[Tutorial from Manual]
|
|
|
|
|
|
=== Presentations & Papers
|
|
|
|
|
|
* link:OPAL-References[OPAL Physics Resources]
|
|
|
|
|
|
---
|
|
|
|
|
|
== Using _OPAL_ at PSI
|
|
|
|
|
|
* link:Using-OPAL-at-PSI[Using _OPAL_ at PSI]
|
|
|
|
|
|
== Compiling _OPAL_
|
|
|
|
|
|
* link:For%20Developers/Supported-OS-and-required-Software-to-build-OPAL[Supported OS and required Software to build _OPAL_]
|
|
|
* link:For%20Developers/Setup-build-environment-at-PSI[Setup build environment at PSI]
|
|
|
* link:For%20Developers/Compile-required-software[Compile required software (_OPAL_ build recipes)]
|
|
|
* link:For%20Developers/Compile-OPAL[Compile _OPAL_]
|
|
|
* link:For%20Developers/Compile-OPAL-at-CSCS[Compile _OPAL_ at CSCS]
|
|
|
|
|
|
---
|
|
|
|
|
|
== Tools
|
|
|
|
|
|
* 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.
|
|
|
* 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].
|
|
|
* 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:Workshops-and-virtual-meetings[Workshops and virtual meetings]
|
|
|
|
|
|
**Build-, Unit- and {link_regression}[Regression Tests]**
|
|
|
|
|
|
* on {link_opal_base}/master[_OPAL_ development branch]
|
|
|
* on {link_opal_base}/OPAL-2022.1[_OPAL_ 2022.1 branch]
|
|
|
* on {link_opal_base}/OPAL-2021.1[_OPAL_ 2021.1 branch]
|
|
|
= Object Oriented Parallel Accelerator Library (_OPAL_)
|
|
|
include::attributes.asciidoc[]
|
|
|
|
|
|
== 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 {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.
|
|
|
|
|
|
---
|
|
|
|
|
|
## Download, Documentation, Help, Presentations & Papers
|
|
|
|
|
|
[%header,width="80%",cols="2,2,2,2,2,2"]
|
|
|
|========
|
|
|
| Version/ +
|
|
|
Source code
|
|
|
| Linux binary +
|
|
|
package
|
|
|
| macOS binary +
|
|
|
package
|
|
|
| Manual
|
|
|
| Source code +
|
|
|
documentation
|
|
|
| Release +
|
|
|
notes
|
|
|
|
|
|
| _OPAL_ development
|
|
|
| n.a.
|
|
|
| n.a.
|
|
|
| {link_manual}/master[HTML], {link_manual}/master/Manual.pdf[PDF]
|
|
|
| {link_doxydoc}/master[HTML]
|
|
|
| link:ReleaseNotes/OPAL-2023.1[Wiki]
|
|
|
|
|
|
| {link_src}/OPAL-2024.1.0.tar.xz[_OPAL_ 2024.1.0] ({link_src}/OPAL-2024.1.0.tar.xz.md5[md5])
|
|
|
|
|
|
|
|
|
|
|
| {link_manual}/2024.1[HTML], {link_manual}/2024.1/Manual.pdf[PDF]
|
|
|
| {link_doxydoc}/2024.1[HTML]
|
|
|
| link:ReleaseNotes/OPAL-2024.1[Wiki]
|
|
|
|
|
|
| {link_src}/OPAL-2022.1.0.tar.xz[_OPAL_ 2022.1.0] ({link_src}/OPAL-2022.1.0.tar.xz.md5[md5])
|
|
|
| {link_pkg}/OPAL-2022.1.0-1{linux_pkg} ({link_pkg}/OPAL-2022.1.0-1{linux_md5})
|
|
|
| {link_pkg}/OPAL-2022.1.0-1{macos_pkg} ({link_pkg}/OPAL-2022.1.0-1{macos_md5}) +
|
|
|
{link_pkg}/OPAL-2022.1.0-1{macos_arm_pkg} ({link_pkg}/OPAL-2022.1.0-1{macos_arm_md5})
|
|
|
| {link_manual}/2022.1[HTML], {link_manual}/2022.1/Manual.pdf[PDF]
|
|
|
| {link_doxydoc}/2022.1[HTML]
|
|
|
| link:ReleaseNotes/OPAL-2022.1[Wiki]
|
|
|
|
|
|
| {link_src}/OPAL-2021.1.0.tar.xz[_OPAL_ 2021.1.0] ({link_src}/OPAL-2021.1.0.tar.xz.md5[md5])
|
|
|
| {link_pkg}/OPAL-2021.1.0-1{linux_pkg} ({link_pkg}/OPAL-2021.1.0-1{linux_md5})
|
|
|
| {link_pkg}/OPAL-2021.1.0-1{macos_pkg} ({link_pkg}/OPAL-2021.1.0-1{macos_md5})
|
|
|
| {link_manual}/2021.1[HTML], {link_manual}/2021.1/Manual.pdf[PDF]
|
|
|
| {link_doxydoc}/2021.1[HTML]
|
|
|
| link:ReleaseNotes/OPAL-2021.1[Wiki]
|
|
|
|
|
|
| {link_src}/OPAL-2.4.0.tar.xz[_OPAL_ 2.4.0] ({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})
|
|
|
| {link_manual}/2.4[HTML], {link_manual}/2.4/Manual.pdf[PDF]
|
|
|
| {link_doxydoc}/2.4[HTML]
|
|
|
| link:ReleaseNotes/OPAL-2.4[Wiki]
|
|
|
|
|
|
| {link_src}/OPAL-2.2.1.tar.xz[_OPAL_ 2.2.1] ({link_src}/OPAL-2.2.1.tar.xz.md5[md5])
|
|
|
| {link_src}/OPAL-2.2.1.tar.xz[tar.xz] ({link_src}/OPAL-2.2.1.tar.xz.md5[md5])
|
|
|
| {link_pkg}/OPAL-2.2.1-1{linux_pkg} ({link_pkg}/OPAL-2.2.1-1{linux_md5})
|
|
|
| {link_manual}/2.2[HTML], {link_manual}/2.2/Manual.pdf[PDF]
|
|
|
| {link_doxydoc}/2.2[HTML]
|
|
|
| link:ReleaseNotes/OPAL-2.2[Wiki]
|
|
|
|
|
|
| {link_src}/OPAL-2.0.2.tar.xz[_OPAL_ 2.0.2] ({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})
|
|
|
| {link_manual}/2.0[HTML], {link_manual}/2.0/Manual.pdf[PDF]
|
|
|
| {link_doxydoc}/2.0[HTML]
|
|
|
| link:ReleaseNotes/OPAL-2.0[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
|
|
|
[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]
|
|
|
----
|
|
|
|
|
|
=== _OPAL_ binary packages
|
|
|
|
|
|
* link:OPAL-binary-package[installing and running a _OPAL_ binary package].
|
|
|
* link:OPAL-binary-package-ChangeLog[ChangeLog of the binary packages].
|
|
|
* link:OPAL-binary-package-old-versions[Deprecated versions].
|
|
|
|
|
|
=== Start with Examples
|
|
|
|
|
|
* link:Examples/Cyclotron[Cyclotron]
|
|
|
* link:Examples/RFPhotoInjector[AWA RF Photo Injector]
|
|
|
* link:Examples/AWAEEXBeamline[AWA EEX Beamline]
|
|
|
* link:Examples/AWADriveLinac[AWA Drive Linac]
|
|
|
|
|
|
* link:Examples/RegressionTestExamples[Examples from regression tests]
|
|
|
* link:Examples/FFA[FFA]
|
|
|
* {link_manual}/{OPAL_VER}/Manual.html#chp.tutorial[Tutorial from Manual]
|
|
|
|
|
|
=== Presentations & Papers
|
|
|
|
|
|
* link:OPAL-References[OPAL Physics Resources]
|
|
|
|
|
|
---
|
|
|
|
|
|
== Using _OPAL_ at PSI
|
|
|
|
|
|
* link:Using-OPAL-at-PSI[Using _OPAL_ at PSI]
|
|
|
|
|
|
== Compiling _OPAL_
|
|
|
|
|
|
* link:For%20Developers/Supported-OS-and-required-Software-to-build-OPAL[Supported OS and required Software to build _OPAL_]
|
|
|
* link:For%20Developers/Setup-build-environment-at-PSI[Setup build environment at PSI]
|
|
|
* link:For%20Developers/Compile-required-software[Compile required software (_OPAL_ build recipes)]
|
|
|
* link:For%20Developers/Compile-OPAL[Compile _OPAL_]
|
|
|
* link:For%20Developers/Compile-OPAL-at-CSCS[Compile _OPAL_ at CSCS]
|
|
|
|
|
|
---
|
|
|
|
|
|
== Tools
|
|
|
|
|
|
* 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.
|
|
|
* 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].
|
|
|
* 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:Workshops-and-virtual-meetings[Workshops and virtual meetings]
|
|
|
|
|
|
**Build-, Unit- and {link_regression}[Regression Tests]**
|
|
|
|
|
|
* on {link_opal_base}/master[_OPAL_ development branch]
|
|
|
* on {link_opal_base}/OPAL-2022.1[_OPAL_ 2022.1 branch]
|
|
|
* on {link_opal_base}/OPAL-2021.1[_OPAL_ 2021.1 branch]
|
|
|
* on {link_opal_base}/OPAL-2.4[_OPAL_ 2.4 branch] |
|
|
\ No newline at end of file |