{ "cells": [ { "attachments": {}, "cell_type": "markdown", "id": "262a5ec8-2553-4237-ab62-319b6ca22089", "metadata": {}, "source": [ "# Example-50: Advance (Phase advance sensitivity)" ] }, { "cell_type": "code", "execution_count": 1, "id": "a213b251-33ff-45b6-9731-9b6051c00e9c", "metadata": {}, "outputs": [], "source": [ "# In this example effect of systematic quadruple errors on phase advances is illustrated" ] }, { "cell_type": "code", "execution_count": 2, "id": "8e0b7972-29a6-4702-a8e3-8a5a4e1fc254", "metadata": {}, "outputs": [], "source": [ "# Import\n", "\n", "from random import random\n", "from pprint import pprint\n", "\n", "import torch\n", "from torch import Tensor\n", "\n", "from pathlib import Path\n", "\n", "import matplotlib\n", "from matplotlib import pyplot as plt\n", "matplotlib.rcParams['text.usetex'] = True\n", "\n", "from model.library.line import Line\n", "\n", "from model.command.external import load_sdds\n", "from model.command.external import load_lattice\n", "from model.command.build import build\n", "from model.command.tune import tune\n", "from model.command.advance import advance" ] }, { "cell_type": "code", "execution_count": 3, "id": "8e28283c-8719-4afb-9d6b-961e2a06eea7", "metadata": {}, "outputs": [], "source": [ "# Load ELEGANT twiss\n", "\n", "path = Path('ic.twiss')\n", "parameters, columns = load_sdds(path)\n", "\n", "nu_qx:Tensor = torch.tensor(parameters['nux'] % 1, dtype=torch.float64)\n", "nu_qy:Tensor = torch.tensor(parameters['nuy'] % 1, dtype=torch.float64)" ] }, { "cell_type": "code", "execution_count": 4, "id": "592c1a33-d9aa-44d8-a8c5-3e6aa9309522", "metadata": {}, "outputs": [], "source": [ "# Build and setup lattice\n", "\n", "# Note, sextupoles are turned off and dipoles are linear \n", "\n", "# Load ELEGANT table\n", "\n", "path = Path('ic.lte')\n", "data = load_lattice(path)\n", "\n", "# Build ELEGANT table\n", "\n", "ring:Line = build('RING', 'ELEGANT', data)\n", "ring.flatten()\n", "\n", "# Merge drifts\n", "\n", "ring.merge()\n", "\n", "# Split BPMs\n", "\n", "ring.split((None, ['BPM'], None, None))\n", "\n", "# Roll lattice start\n", "\n", "ring.roll(1)\n", "\n", "# Set linear dipoles\n", "\n", "for element in ring:\n", " if element.__class__.__name__ == 'Dipole':\n", " element.linear = True\n", "\n", "# Split lattice into lines by BPMs\n", "\n", "ring.splice()\n", "\n", "# Set number of elements of different kinds\n", "\n", "nb = ring.describe['BPM']\n", "nq = ring.describe['Quadrupole']\n", "ns = ring.describe['Sextupole']" ] }, { "cell_type": "code", "execution_count": 5, "id": "5bf9f907-5837-419e-8afb-6b0bbf4d094a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "True\n", "True\n" ] } ], "source": [ "# Compute tunes (fractional part)\n", "\n", "guess = torch.tensor(4*[0.0], dtype=torch.float64)\n", "nuqx, nuqy = tune(ring, [], alignment=False, matched=True, guess=guess, limit=8, epsilon=1.0E-9)\n", "\n", "# Compare with elegant\n", "\n", "print(torch.allclose(nu_qx, nuqx))\n", "print(torch.allclose(nu_qy, nuqy))" ] }, { "cell_type": "code", "execution_count": 6, "id": "90f97c55-9824-442e-93b6-bc11e4dcaca8", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "torch.Size([16])\n", "torch.Size([16])\n" ] } ], "source": [ "# Compute nominal phase advances between BPMs\n", "\n", "kn = torch.zeros(nq, dtype=torch.float64)\n", "\n", "muqx_model, muqy_model = advance(ring, [kn], ('kn', ['Quadrupole'], None, None), matched=True, limit=1, epsilon=None).T\n", "\n", "print(muqx_model.shape)\n", "print(muqy_model.shape)" ] }, { "cell_type": "code", "execution_count": 7, "id": "be79cad2-cb89-4e96-8102-5ffb1ef68e45", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "torch.Size([16, 8192])\n", "torch.Size([16, 8192])\n" ] } ], "source": [ "# Compute phase advances between BPMs using MC\n", "\n", "kns = 0.01*torch.randn((8192, nq), dtype=torch.float64)\n", "\n", "muqxs, muqys = torch.vmap(lambda kn: advance(ring, [kn], ('kn', ['Quadrupole'], None, None), matched=True, limit=1, epsilon=None), chunk_size=1024)(kns).swapaxes(0, -1)\n", "\n", "dmuqxs = muqxs - muqx_model.unsqueeze(1)\n", "dmuqys = muqys - muqy_model.unsqueeze(1)\n", "\n", "print(dmuqxs.shape)\n", "print(dmuqys.shape)" ] }, { "cell_type": "code", "execution_count": 8, "id": "d88adea1-6bf1-4303-a757-805287fd992c", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot histograms\n", "\n", "fig, axs = plt.subplots(1, len(ring), figsize=(17*2, 2))\n", "for dmuqx, ax in zip(dmuqxs, axs):\n", " ax.hist(dmuqx.cpu().numpy(), bins=100, color='blue', alpha=0.7)\n", "plt.tight_layout() \n", "plt.show() \n", "\n", "fig, axs = plt.subplots(1, len(ring), figsize=(len(ring)*2.5, 2.5))\n", "for dmuqy, ax in zip(dmuqys, axs):\n", " ax.hist(dmuqy.cpu().numpy(), bins=100, color='blue', alpha=0.7) \n", "plt.tight_layout() \n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 9, "id": "30fb1e48-3041-4c93-9f7b-fe8fe4c37da6", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Compute and plot spreads\n", "\n", "sigma_dmuqxs = dmuqxs.std(1)\n", "sigma_dmuqys = dmuqys.std(1)\n", "\n", "plt.figure(figsize=(16, 2))\n", "plt.bar(range(len(sigma_dmuqxs)), sigma_dmuqxs.cpu().numpy(), color='blue', alpha=0.75, width=0.75)\n", "plt.tight_layout()\n", "plt.show()\n", "\n", "plt.figure(figsize=(16, 2))\n", "plt.bar(range(len(sigma_dmuqys)), sigma_dmuqys.cpu().numpy(), color='blue', alpha=0.75, width=0.75)\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 10, "id": "0c41ca06-b337-407c-85b2-03211bb9b230", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "torch.Size([16, 28])\n", "torch.Size([16, 28])\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Compute twiss derivatives and estimate spread from linear surrogate model using MC\n", "\n", "# Compute derivatives\n", "\n", "kn = torch.zeros(nq, dtype=torch.float64)\n", "dmuqx_dk, dmuqy_dk = torch.func.jacrev(lambda kn: advance(ring, [kn], ('kn', ['Quadrupole'], None, None), matched=True, limit=1, epsilon=None), chunk_size=1024)(kn).swapaxes(0, 1)\n", "\n", "print(dmuqx_dk.shape)\n", "print(dmuqy_dk.shape)\n", "\n", "# Sample\n", "\n", "kns = 0.01*torch.randn((8192, nq), dtype=torch.float64)\n", "\n", "dmuqxs = dmuqx_dk @ kns.T\n", "dmuqxy = dmuqy_dk @ kns.T\n", "\n", "# Compute and plot spreads\n", "\n", "sigma_dmuqxs = dmuqxs.std(1)\n", "sigma_dmuqys = dmuqys.std(1)\n", "\n", "plt.figure(figsize=(16, 2))\n", "plt.bar(range(len(sigma_dmuqxs)), sigma_dmuqxs.cpu().numpy(), color='blue', alpha=0.75, width=0.75)\n", "plt.tight_layout()\n", "plt.show()\n", "\n", "plt.figure(figsize=(16, 2))\n", "plt.bar(range(len(sigma_dmuqys)), sigma_dmuqys.cpu().numpy(), color='blue', alpha=0.75, width=0.75)\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 11, "id": "0b34036f-c6c2-4400-b3ac-d03a85ce91ba", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Compute spread using error propagation\n", "\n", "sigma_dmuqxs = (dmuqx_dk @ (0.01*torch.eye(nq, dtype=torch.float64))**2 @ dmuqx_dk.T).diag().sqrt()\n", "sigma_dmuqys = (dmuqy_dk @ (0.01*torch.eye(nq, dtype=torch.float64))**2 @ dmuqy_dk.T).diag().sqrt()\n", "\n", "plt.figure(figsize=(16, 2))\n", "plt.bar(range(len(sigma_dmuqxs)), sigma_dmuqxs.cpu().numpy(), color='blue', alpha=0.75, width=0.75)\n", "plt.tight_layout()\n", "plt.show()\n", "\n", "plt.figure(figsize=(16, 2))\n", "plt.bar(range(len(sigma_dmuqys)), sigma_dmuqys.cpu().numpy(), color='blue', alpha=0.75, width=0.75)\n", "plt.tight_layout()\n", "plt.show()" ] } ], "metadata": { "colab": { "collapsed_sections": [ "myt0_gMIOq7b", "5d97819c" ], "name": "03_frequency.ipynb", "provenance": [] }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.1" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autoclose": false, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 1, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false } }, "nbformat": 4, "nbformat_minor": 5 }