= The _OPAL_ Framework: Version 2024.1
Andreas Adelmann (PSI); Arnau AlbĂ  (PSI); Pedro Calvo (CIEMAT); Matthias Frey (U. St Andrews); Achim Gsell (PSI); Uldis Locans (PSI); Christof Metzger-Kraus; Sriramkrishnan Muralikrishnan (JSC); Nicole Neveu (SLAC); Philippe Piot (NIU); Chris Rogers (RAL); Steve Russell (LANL); Suzanne Sheehy (Oxford); Jochem Snuverink (PSI); Daniel Winklehner (MIT)
ifdef::backend-docbook5,backend-html5[]
:docinfo1:
:toc: left
:numbered:
:description: _OPAL_ User Manual
:keywords: _OPAL_
:revdate: @REVDATE@
:adoc: adoc
endif::[]

ifdef::env-gitlab[]
include::env-gitlab.attributes[]
endif::[]

include::Manual.attributes[]

ifdef::backend-html5[]

[cols="<19,<27,<.^27,<27",frame="none",grid="none"]
|===
| image:logos/psi_logo.png[width=121]
| image:logos/ciemat_logo.jpg[width=242]
| image:logos/SLAC-lab-hires.png[width=220]
| image:logos/UKRI_STF_logo.png[width=176]

| image:logos/MIT-logo-with-spelling-design1-large-black-red.svg[width=175]
| image:logos/Logo_FZ_Juelich_1561x454_rgb_jpg.jpg[width=165]
| image:logos/St_Andrews_logo.png[width=165]
| image:logos/NIU_horz_3Clr.png[width=165]
|===

'''

endif::[]

:sectnums:
== Abstract

_OPAL_ 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, no space charge yet)

It should be noted that not all features of _OPAL_ are available in all
flavours.


ifdef::env-gitlab[]
:sectnums!:
== Table of Contents
. {link_manual_src}/introduction.{adoc}[Introduction]
. {link_manual_src}/conventions.{adoc}[Conventions]
. {link_manual_src}/pitfalls.{adoc}[Pitfalls and Limitations]
. {link_manual_src}/tutorial.{adoc}[Tutorial]
. {link_manual_src}/opalt.{adoc}[OPAL-T]
. {link_manual_src}/opalcycl.{adoc}[OPAL-CYCL]
. {link_manual_src}/opalmap.{adoc}[OPAL-MAP]
. {link_manual_src}/format.{adoc}[Command Format]
. {link_manual_src}/control.{adoc}[Control Statements]
. {link_manual_src}/elements.{adoc}[Elements]
. {link_manual_src}/field-output.{adoc}[Field Output Commands]
. {link_manual_src}/lines.{adoc}[Beam Lines]
. {link_manual_src}/beam-command.{adoc}[Beam Command]
. {link_manual_src}/distribution.{adoc}[Distribution Command]
. {link_manual_src}/fieldsolvers.{adoc}[Field Solver]
. {link_manual_src}/track.{adoc}[Tracking]
. {link_manual_src}/wakefields.{adoc}[Wakefields]
. {link_manual_src}/geometry.{adoc}[Geometry]
. {link_manual_src}/partmatter.{adoc}[Physics Models Used in the Particle Matter Interaction Model]
. {link_manual_src}/optimiser.{adoc}[Multi Objective Optimization]
. {link_manual_src}/sampler.{adoc}[Sampler]

.Appendices
[upperalpha]
. {link_manual_src}/syntax.{adoc}[OPAL Language Syntax]
. {link_manual_src}/fieldmaps.{adoc}[OPAL-T Field Maps]
. {link_manual_src}/opal-madx.{adoc}[OPAL-MADX Conversion Guide]
. {link_manual_src}/autophase.{adoc}[Auto-phasing Algorithm]
. {link_manual_src}/benchmarks.{adoc}[Benchmarks]
endif::[]

ifdef::backend-docbook5,backend-html5[]
include::introduction.adoc[]
include::conventions.adoc[]
include::pitfalls.adoc[]
include::tutorial.adoc[]
include::opalt.adoc[]
include::opalcycl.adoc[]
include::opalmap.adoc[]
include::format.adoc[]
include::control.adoc[]
include::elements.adoc[]
include::field-output.adoc[]
include::lines.adoc[]
include::beam-command.adoc[]
include::distribution.adoc[]
include::fieldsolvers.adoc[]
include::track.adoc[]
include::wakefields.adoc[]
include::geometry.adoc[]
include::partmatter.adoc[]
include::optimiser.adoc[]
include::sampler.adoc[]
include::syntax.adoc[]
include::fieldmaps.adoc[]
include::opal-madx.adoc[]
include::autophase.adoc[]
include::benchmarks.adoc[]
endif::[]

// EOF