|
= Object Oriented Parallel Accelerator Library (_OPAL_)
|
|
= Object Oriented Parallel Accelerator Library (_OPAL_)
|
|
include::attributes.asciidoc[]
|
|
include::attributes.asciidoc[]
|
|
|
|
|
|
== Introduction
|
|
== 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.
|
|
_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.
|
|
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.
|
|
_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.
|
|
The _OPAL_ framework makes it easy to add new features in the form of new C++ classes.
|
|
_OPAL_ comes in the following flavours:
|
|
_OPAL_ comes in the following flavours:
|
|
|
|
|
|
* _OPAL-cycl_:
|
|
* _OPAL-cycl_:
|
|
tracks particles with 3D space charge including neighbouring turns in
|
|
tracks particles with 3D space charge including neighbouring turns in
|
|
cyclotrons and FFAs with time as the independent variable.
|
|
cyclotrons and FFAs with time as the independent variable.
|
|
* _OPAL-t_:
|
|
* _OPAL-t_:
|
|
models beam lines, linacs, rf-photo injectors and
|
|
models beam lines, linacs, rf-photo injectors and
|
|
complete XFELs.
|
|
complete XFELs.
|
|
* _OPAL-map_:
|
|
* _OPAL-map_:
|
|
map tracking (experimental).
|
|
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.
|
|
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 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.
|
|
Please report bugs and feature requests to the {link_issue_tracker}[issue tracker] or to the mailing list.
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|
## Download, Documentation, Help, Presentations & Papers
|
|
## Download, Documentation, Help, Presentations & Papers
|
|
|
|
|
|
[%header,width="80%",cols="2,2,2,2,2,2"]
|
|
[%header,width="80%",cols="2,2,2,2,2,2"]
|
|
|========
|
|
|========
|
|
| Version/ +
|
|
| Version/ +
|
|
Source code
|
|
Source code
|
|
| Linux binary +
|
|
| Linux binary +
|
|
package
|
|
package
|
|
| macOS binary +
|
|
| macOS binary +
|
|
package
|
|
package
|
|
| Manual
|
|
| Manual
|
|
| Source code +
|
|
| Source code +
|
|
documentation
|
|
documentation
|
|
| Release +
|
|
| Release +
|
|
notes
|
|
notes
|
|
|
|
|
|
| _OPAL_ development
|
|
| _OPAL_ development
|
|
| n.a.
|
|
| n.a.
|
|
| n.a.
|
|
| n.a.
|
|
| {link_manual}/master[HTML], {link_manual}/master/Manual.pdf[PDF]
|
|
| {link_manual}/master[HTML], {link_manual}/master/Manual.pdf[PDF]
|
|
| {link_doxydoc}/master[HTML]
|
|
| {link_doxydoc}/master[HTML]
|
|
| link:ReleaseNotes/OPAL-2023.1[Wiki]
|
|
| 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_src}/OPAL-2024.1.0.tar.xz[_OPAL_ 2024.1.0] ({link_src}/OPAL-2024.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}/2024.1[HTML], {link_manual}/2024.1/Manual.pdf[PDF]
|
|
| {link_manual}/2022.1[HTML], {link_manual}/2022.1/Manual.pdf[PDF]
|
|
| {link_doxydoc}/2024.1[HTML]
|
|
| {link_doxydoc}/2022.1[HTML]
|
|
| link:ReleaseNotes/OPAL-2024.1[Wiki]
|
|
| link:ReleaseNotes/OPAL-2022.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_src}/OPAL-2021.1.0.tar.xz[_OPAL_ 2021.1.0] ({link_src}/OPAL-2021.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-2021.1.0-1{linux_pkg} ({link_pkg}/OPAL-2021.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-2021.1.0-1{macos_pkg} ({link_pkg}/OPAL-2021.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}/2021.1[HTML], {link_manual}/2021.1/Manual.pdf[PDF]
|
|
| {link_manual}/2022.1[HTML], {link_manual}/2022.1/Manual.pdf[PDF]
|
|
| {link_doxydoc}/2021.1[HTML]
|
|
| {link_doxydoc}/2022.1[HTML]
|
|
| link:ReleaseNotes/OPAL-2021.1[Wiki]
|
|
| link:ReleaseNotes/OPAL-2022.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_src}/OPAL-2021.1.0.tar.xz[_OPAL_ 2021.1.0] ({link_src}/OPAL-2021.1.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-2021.1.0-1{linux_pkg} ({link_pkg}/OPAL-2021.1.0-1{linux_md5})
|
|
| {link_pkg}/OPAL-2.4.0-2{macos_pkg} ({link_pkg}/OPAL-2.4.0-2{macos_md5})
|
|
| {link_pkg}/OPAL-2021.1.0-1{macos_pkg} ({link_pkg}/OPAL-2021.1.0-1{macos_md5})
|
|
| {link_manual}/2.4[HTML], {link_manual}/2.4/Manual.pdf[PDF]
|
|
| {link_manual}/2021.1[HTML], {link_manual}/2021.1/Manual.pdf[PDF]
|
|
| {link_doxydoc}/2.4[HTML]
|
|
| {link_doxydoc}/2021.1[HTML]
|
|
| link:ReleaseNotes/OPAL-2.4[Wiki]
|
|
| link:ReleaseNotes/OPAL-2021.1[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.4.0.tar.xz[_OPAL_ 2.4.0] ({link_src}/OPAL-2.4.0.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.4.0-2{linux_pkg} ({link_pkg}/OPAL-2.4.0-2{linux_md5})
|
|
| {link_pkg}/OPAL-2.2.1-1{linux_pkg} ({link_pkg}/OPAL-2.2.1-1{linux_md5})
|
|
| {link_pkg}/OPAL-2.4.0-2{macos_pkg} ({link_pkg}/OPAL-2.4.0-2{macos_md5})
|
|
| {link_manual}/2.2[HTML], {link_manual}/2.2/Manual.pdf[PDF]
|
|
| {link_manual}/2.4[HTML], {link_manual}/2.4/Manual.pdf[PDF]
|
|
| {link_doxydoc}/2.2[HTML]
|
|
| {link_doxydoc}/2.4[HTML]
|
|
| link:ReleaseNotes/OPAL-2.2[Wiki]
|
|
| link:ReleaseNotes/OPAL-2.4[Wiki]
|
|
|
|
|
|
| {link_src}/OPAL-2.0.2.tar.xz[_OPAL_ 2.0.2] ({link_src}/OPAL-2.0.2.tar.xz.md5[md5])
|
|
| {link_src}/OPAL-2.2.1.tar.xz[_OPAL_ 2.2.1] ({link_src}/OPAL-2.2.1.tar.xz.md5[md5])
|
|
| {link_pkg}/OPAL-2.0.2-1{linux_pkg} ({link_pkg}/OPAL-2.0.2-1{linux_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.0.2-1{macos_pkg} ({link_pkg}/OPAL-2.0.2-1{macos_md5})
|
|
| {link_pkg}/OPAL-2.2.1-1{linux_pkg} ({link_pkg}/OPAL-2.2.1-1{linux_md5})
|
|
| {link_manual}/2.0[HTML], {link_manual}/2.0/Manual.pdf[PDF]
|
|
| {link_manual}/2.2[HTML], {link_manual}/2.2/Manual.pdf[PDF]
|
|
| {link_doxydoc}/2.0[HTML]
|
|
| {link_doxydoc}/2.2[HTML]
|
|
| link:ReleaseNotes/OPAL-2.0[Wiki]
|
|
| 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})
|
|
=== Git repository
|
|
| {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]
|
|
Instead of downloading the source tar-ball you can get the _OPAL_ source via Git. Either clone the whole Git repository (~ 2 GB!) with
|
|
| {link_doxydoc}/2.0[HTML]
|
|
[source,sh,subs="attributes"]
|
|
| link:ReleaseNotes/OPAL-2.0[Wiki]
|
|
----
|
|
|
|
git clone {link_repo}.git
|
|
|========
|
|
----
|
|
|
|
|
|
=== Git repository
|
|
or clone a specific branch/tag with
|
|
|
|
[source,sh,subs="attributes"]
|
|
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 --single-branch --depth 1 --branch BRANCH_OR_TAG {link_repo}.git [DIR]
|
|
----
|
|
----
|
|
git clone {link_repo}.git
|
|
|
|
----
|
|
=== _OPAL_ binary packages
|
|
|
|
|
|
or clone a specific branch/tag with
|
|
* link:OPAL-binary-package[installing and running a _OPAL_ binary package].
|
|
[source,sh,subs="attributes"]
|
|
* link:OPAL-binary-package-ChangeLog[ChangeLog of the binary packages].
|
|
----
|
|
* link:OPAL-binary-package-old-versions[Deprecated versions].
|
|
git clone --single-branch --depth 1 --branch BRANCH_OR_TAG {link_repo}.git [DIR]
|
|
|
|
----
|
|
=== Start with Examples
|
|
|
|
|
|
=== _OPAL_ binary packages
|
|
* link:Examples/Cyclotron[Cyclotron]
|
|
|
|
* link:Examples/RFPhotoInjector[AWA RF Photo Injector]
|
|
* link:OPAL-binary-package[installing and running a _OPAL_ binary package].
|
|
* link:Examples/AWAEEXBeamline[AWA EEX Beamline]
|
|
* link:OPAL-binary-package-ChangeLog[ChangeLog of the binary packages].
|
|
* link:Examples/AWADriveLinac[AWA Drive Linac]
|
|
* link:OPAL-binary-package-old-versions[Deprecated versions].
|
|
|
|
|
|
* link:Examples/RegressionTestExamples[Examples from regression tests]
|
|
=== Start with Examples
|
|
* link:Examples/FFA[FFA]
|
|
|
|
* {link_manual}/{OPAL_VER}/Manual.html#chp.tutorial[Tutorial from Manual]
|
|
* link:Examples/Cyclotron[Cyclotron]
|
|
|
|
* link:Examples/RFPhotoInjector[AWA RF Photo Injector]
|
|
=== Presentations & Papers
|
|
* link:Examples/AWAEEXBeamline[AWA EEX Beamline]
|
|
|
|
* link:Examples/AWADriveLinac[AWA Drive Linac]
|
|
* link:OPAL-References[OPAL Physics Resources]
|
|
|
|
|
|
* link:Examples/RegressionTestExamples[Examples from regression tests]
|
|
---
|
|
* link:Examples/FFA[FFA]
|
|
|
|
* {link_manual}/{OPAL_VER}/Manual.html#chp.tutorial[Tutorial from Manual]
|
|
== Using _OPAL_ at PSI
|
|
|
|
|
|
=== Presentations & Papers
|
|
* link:Using-OPAL-at-PSI[Using _OPAL_ at PSI]
|
|
|
|
|
|
* link:OPAL-References[OPAL Physics Resources]
|
|
== 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]
|
|
== Using _OPAL_ at PSI
|
|
* link:For%20Developers/Compile-required-software[Compile required software (_OPAL_ build recipes)]
|
|
|
|
* link:For%20Developers/Compile-OPAL[Compile _OPAL_]
|
|
* link:Using-OPAL-at-PSI[Using _OPAL_ at PSI]
|
|
* link:For%20Developers/Compile-OPAL-at-CSCS[Compile _OPAL_ at CSCS]
|
|
|
|
|
|
== Compiling _OPAL_
|
|
---
|
|
|
|
|
|
* link:For%20Developers/Supported-OS-and-required-Software-to-build-OPAL[Supported OS and required Software to build _OPAL_]
|
|
== Tools
|
|
* 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)]
|
|
* 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.
|
|
* link:For%20Developers/Compile-OPAL[Compile _OPAL_]
|
|
* The {link_pyopaltools}/wikis/home[pyOPALTools] Python package contains many tools for pre- and postprocessing, and analysing and plotting output data.
|
|
* link:For%20Developers/Compile-OPAL-at-CSCS[Compile _OPAL_ at CSCS]
|
|
See also link:postprocessing[Post Processing].
|
|
|
|
* link:OPAL-conversion-utilities[_OPAL_ conversion utilities]
|
|
---
|
|
|
|
|
|
---
|
|
== Tools
|
|
|
|
|
|
== OPAL for Developers
|
|
* 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.
|
|
**Development**
|
|
See also link:postprocessing[Post Processing].
|
|
|
|
* link:OPAL-conversion-utilities[_OPAL_ conversion utilities]
|
|
* 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]
|
|
== OPAL for Developers
|
|
|
|
|
|
**Documentation**
|
|
**Development**
|
|
|
|
|
|
* {link_doxydoc}/master[_OPAL_ source code documentation]
|
|
* link:For-Developers/Codingstyle[Coding Style and Conventions]
|
|
* link:For-Developers/ippl_user_guide.pdf[IPPL Documentation]
|
|
* link:For-Developers/unit-tests[Building, executing and writing unit tests]
|
|
* link:For-Developers/Most-Used-Directories-in-the-Code[Most Used Directories in the Code]
|
|
* link:For-Developers/OPAL-Development-Workflow[Development workflow, Git and Gitlab usage]
|
|
* link:For-Developers/tech-ideas[Technology & Ideas]
|
|
* link:For-Developers/Release-Procedure[Release Procedure]
|
|
* link:Workshops-and-virtual-meetings[Workshops and virtual meetings]
|
|
|
|
|
|
**Documentation**
|
|
**Build-, Unit- and {link_regression}[Regression Tests]**
|
|
|
|
|
|
* {link_doxydoc}/master[_OPAL_ source code documentation]
|
|
* on {link_opal_base}/master[_OPAL_ development branch]
|
|
* link:For-Developers/ippl_user_guide.pdf[IPPL Documentation]
|
|
* on {link_opal_base}/OPAL-2022.1[_OPAL_ 2022.1 branch]
|
|
* link:For-Developers/Most-Used-Directories-in-the-Code[Most Used Directories in the Code]
|
|
* on {link_opal_base}/OPAL-2021.1[_OPAL_ 2021.1 branch]
|
|
* 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] |
|
* on {link_opal_base}/OPAL-2.4[_OPAL_ 2.4 branch] |
|
|
|
\ No newline at end of file |