felix-andreas / apace

Another Particle Accelerator Code

Home Page:https://apace.readthedocs.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

apace

Python Version PyPI CI Docs License: GPL v3

apace is yet another particle accelerator code designed for the optimization of beam optics. It is available as Python package and aims to provide a convenient and straightforward API to make use of Python's numerous scientific libraries.

Installing

Install and update using pip:

pip install -U apace

Requirements

  • Python 3.6 or higher (CPython or PyPy)
  • CFFI 1.0.0 or higher
  • NumPy/SciPy
  • Matplotlib

Quick Start

Import apace:

import apace as ap

Create a ring consisting out of 8 FODO cells:

d1 = ap.Drift('D1', length=0.55)
b1 = ap.Dipole('B1', length=1.5, angle=0.392701, e1=0.1963505, e2=0.1963505)
q1 = ap.Quadrupole('Q1', length=0.2, k1=1.2)
q2 = ap.Quadrupole('Q2', length=0.4, k1=-1.2)
fodo_cell = ap.Lattice('FODO', [q1, d1, b1, d1, q2, d1, b1, d1, q1])
fodo_ring = ap.Lattice('RING', [fodo_cell] * 8)

Calculate the Twiss parameters:

twiss = ap.Twiss(fodo_ring)

Plot horizontal and vertical beta functions using matplotlib:

import matplotlib.pyplot as plt
plt.plot(twiss.s, twiss.beta_x, twiss.s, twiss.beta_y)

Links

License

GNU General Public License v3.0

About

Another Particle Accelerator Code

https://apace.readthedocs.io

License:GNU General Public License v3.0


Languages

Language:Python 92.4%Language:C 7.6%