{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"*This notebook was created by Sergey Tomin (sergey.tomin@desy.de) and [Igor Zagorodnov](http://www.desy.de/~zagor/) for Workshop: [Designing future X-ray FELs](http://www.xrayfels.co.uk/). Source and license info is on [GitHub](https://github.com/ocelot-collab/ocelot). Updated January 2018. *"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Tutorial N4. Wakefields.\n",
"## Chirper.\n",
"Influence of corrugated structure on the electron beam.\n",
"This example based on the work: [I. Zagorodnov, G. Feng, T. Limberg. Corrugated structure insertion for extending the SASE bandwidth up to 3% at the European XFEL](https://arxiv.org/abs/1607.07642). \n",
"\n",
"Gerometry of the corrugated structure. The blue ellipse represents an electron beam\n",
"propagating along the z axis.\n",
"\n",
"\n",
"\n",
"## Wakefields\n",
"In order to take into account the impact of the wake field on the beam the longitudinal wake function\n",
"of point charge through the second order Taylor expansion is used.\n",
"In general case it uses 13 one-dimensional functions to represent the longitudinal component of the wake\n",
"function for arbitrary sets of the source and the wittness particles near to the reference axis.\n",
"The wake field impact on the beam is included as series of kicks.\n",
"\n",
"The implementation of the wakefields follows closely the approach described \n",
"in:\n",
"* [O. Zagorodnova, T. Limberg, Impedance budget database for the European XFEL,\n",
"in Proceedings of 2009 Particle Accelerator Conference,(Vancouver, Canada, 2009)](http://bib-pubdb1.desy.de/record/93956/files/tu5rfp060%5B1%5D.pdf)\n",
"* [M. Dohlus, K. Floettmann, C. Henning, Fast particle tracking with wake \n",
"fields, Report No. DESY 12-012, 2012.](https://arxiv.org/abs/1201.5270)\n",
"\n",
"#### This example will cover the following topics:\n",
"* Initialization of the wakes and the places of their applying\n",
"* tracking of second order with wakes\n",
"\n",
"#### Requirements \n",
"* beam_chirper.ast - input file, initial beam distribution in [ASTRA](http://www.desy.de/~mpyflo/) format (was obtained from s2e simulation performed with ASTRA and [CSRtrack](http://www.desy.de/fel-beam/psviewer/index.html)).\n",
"* wake_vert_1m.txt - wake table of the vertical corrugated structure (was calculated with [ECHO](http://www.desy.de/~zagor/WakefieldCode_ECHOz/))\n",
"* wake_hor_1m.txt - wake table of the vertical corrugated structure (was calculated with [ECHO](http://www.desy.de/~zagor/WakefieldCode_ECHOz/))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Wake Table format\n",
"\n",
"We use the same format of the wakes as implemented in ASTRA and the description of the format can be found in [M. Dohlus, K. Floettmann, C. Henning, Fast particle tracking with wake \n",
"fields, Report No. DESY 12-012, 2012.](https://arxiv.org/abs/1201.5270)\n",
"\n",
"Second order Taylor expansion of the longitudinal wake ($w_z$) in the transverse coordinates\n",
"\n",
"$$\n",
"w_z(x_s, y_s, x_o, y_o, s) = \n",
"\\begin{bmatrix}\n",
" 1 \\\\\n",
" x_s\\\\\n",
" y_s\\\\\n",
" x_o \\\\\n",
" y_o\n",
"\\end{bmatrix}^T \n",
"\\begin{bmatrix}\n",
" h_{00}(s) & h_{01}(s) & h_{02}(s) & h_{03}(s) & h_{04}(s) \\\\\n",
" 0 & h_{11}(s) & h_{12}(s) & h_{13}(s) & h_{14}(s)\\\\\n",
" 0 & h_{12}(s) & -h_{11}(s) & h_{23}(s) & h_{24}(s) \\\\\n",
" 0 & h_{13}(s) & h_{23}(s) & h_{33}(s) & h_{34}(s)\\\\\n",
" 0 & h_{14}(s) & h_{24}(s) & h_{34}(s) & -h_{33}(s)\n",
"\\end{bmatrix} \n",
"\\begin{bmatrix}\n",
" 1 \\\\\n",
" x_s\\\\\n",
" y_s\\\\\n",
" x_o \\\\\n",
" y_o\n",
"\\end{bmatrix} ;\n",
"$$\n",
"where $x_s$ and $y_s$ transverse coordinates of the *source* particle and $x_o$ and $y_o$ are transverse coordinates of the *observer*, $s$ is distance between *source* and *observer*. Thus to describe longitudinal wake we need 13 functions $h_{\\alpha \\beta}$. \n",
"\n",
"The transverse components are uniquely related to the longitudinal wake by causality and Panofsky-Wenzel-Theorem.\n",
"\n",
"For each of these coefficients, we use the representation in [O. Zagorodnova, T. Limberg, Impedance budget database for the European XFEL](http://bib-pubdb1.desy.de/record/93956/files/tu5rfp060%5B1%5D.pdf) \n",
"\\begin{equation}\n",
"h(s) = w_0(s) + \\frac{1}{C} + R c\\delta(s) + c\\frac{\\partial}{\\partial s}\\left[L c \\delta(s) + w_1 (s) \\right]\n",
"\\end{equation}\n",
"where $w_0(s)$, $w_1(s)$ are nonsingular functions, which can be tabulated easily, and constants $R$, $L$, and $C$ have the meaning of resistivity, inductance, and capacitance, correspondingly.\n",
"The functions $w_0(s)$, $w_1(s)$ can be represented by table, e.g. [$s_i$, $w_0^i$].\n",
"\n",
"Now we can describe whole table how it is saved in a file. \n",
"\n",
"$N_h$| $0$ \n",
"--------------|-----------------\n",
" $N_{w_0}$ | $N_{w_1}$\n",
" $R,\\: [Us]$ | $L,\\: [Us^2]$\n",
"$C,\\: [1/Us]$ | $10\\alpha + \\beta$ \n",
"$s_1,\\: [m]$ | $w_0(s_1),\\: [U]$ \n",
"$s_2,\\: [m]$ |$w_0(s_2),\\: [U]$ \n",
" ... | ... \n",
"$s_{N_{w_0}},\\: [m]$ | $w_0(s_{N_{w_0}}),\\: [U]$ \n",
"$s_1,\\: [m]$ | $w_1(s_1),\\: [U]$ \n",
"$s_2,\\: [m]$ |$w_1(s_2),\\: [U]$ \n",
" ... | ... \n",
"$s_{N_{w_1}},\\: [m]$ | $w_1(s_{N_{w_1}}),\\: [U]$\n",
" $N_{w_0}$ | $N_{w_1}$\n",
" $R,\\: [Us]$ | $L,\\: [Us^2]$\n",
"$C,\\: [1/Us]$ | $10\\alpha + \\beta$ \n",
"$s_1,\\: [m]$ | $w_0(s_1),\\: [U]$ \n",
" ... | ... \n",
" $N_{w_0}$ | $N_{w_1}$\n",
" $R,\\: [Us]$ | $L,\\: [Us^2]$\n",
"$C,\\: [1/Us]$ | $10\\alpha + \\beta$ \n",
"$s_1,\\: [m]$ | $w_0(s_1),\\: [U]$ \n",
" ... | ... \n",
"|\n",
"\n",
"\n",
"\n",
"In the very first line, $N_h$ is number of $h_{\\alpha\\beta}(s)$ functions in the table. After that, a typical table repeated $N_h$ times describing every $h_{\\alpha\\beta}(s)$ function. \n",
"\n",
"\n",
"Every table starts with $N_{w_0}$ and $N_{w_1}$ which are number of points of $w_0(s_i)$ and $w_1(s_i)$ functions.\n",
"Next two lines are included $R$, $L$, $C$ and entry $10\\alpha + \\beta$ which describes the subscript of the auxiliary function $h_{\\alpha\\beta}(s)$. Next $N_{w_0}$ lines described function $w_0(s)$, and after that next $N_{w_1}$ lines described function $w_1(s)$.\n",
"\n",
"And to describe next $h_{\\alpha\\beta}(s)$ we repeat procedure. \n",
"\n",
"The unit $U$ is $V/(A\\cdot s)$ for $\\alpha\\beta = 00$, $V/(A\\cdot s \\cdot m)$ for $\\alpha\\beta = 01, ... 04$ and $V/(A\\cdot s \\cdot m^2)$ for all other coefficients.\n",
" "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Import of modules"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"initializing ocelot...\n"
]
}
],
"source": [
"# the output of plotting commands is displayed inline within frontends, \n",
"# directly below the code cell that produced it\n",
"%matplotlib inline\n",
"\n",
"# this python library provides generic shallow (copy) and deep copy (deepcopy) operations \n",
"from copy import deepcopy\n",
"import time\n",
"\n",
"# import from Ocelot main modules and functions\n",
"from ocelot import *\n",
"\n",
"# import from Ocelot graphical modules\n",
"from ocelot.gui.accelerator import *\n",
"\n",
"# load beam distribution\n",
"# this function convert Astra beam distribution to Ocelot format \n",
"# - ParticleArray. ParticleArray is designed for tracking.\n",
"# in order to work with converters we have to import \n",
"# specific module from ocelot.adaptors\n",
"from ocelot.adaptors.astra2ocelot import *"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Layout of the corrugated structure insertion. Create Ocelot lattice "
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"