Qualifying SixTrackLib :-) Adrian Oeftiger Accelerator Physics Meeting 6 June 2019
Setting up SixTrackLib: Strategy I Goal: Setting up new fast tracker (ultimately with collective effects) based on the hardware (GPU) accelerated tracking code SixTrackLib. Intermediate steps ( only single-particle tracking ): I. SIS-18 and SIS-100 thin lattices from MAD-X into SixTrackLib (STL) ✓ STL: include MAD-X multipole errors in lattice ✗ STL: closed orbit offset and tilt errors missing ✗ STL: dipole edges and local apertures are being implemented ✓ II. check for same tunes between MAD-X TWISS and STL tracking ✓ III. quadrupole SIS-100 lattice: compare thin lens tracking, MAD-X vs. STL − → off- and on-coupling resonance = ⇒ effect of coupling induced by exact drift (momentum conservation) ✓ IV. SIS-100 lattice with non-linear errors: compare tune scan Adrian Oeftiger Accelerator Physics Meeting – 6 June 2019
Setting up SixTrackLib: Strategy II Steps towards multi-particle tracking : split the lattice into many segments ✗ inject space charge (SC) nodes in between these tracking sequences ✗ PyHEADTAIL frozen model ✗ PyHEADTAIL self-consistent PIC model ✗ (to be implemented) STL frozen model ✗ SIS-18 space charge benchmark ✗ SIS-100 tune scan with space charge (+compare to Vera’s MAD-X results) Adrian Oeftiger Accelerator Physics Meeting – 6 June 2019
I. Lattice from MAD-X into SixTrackLib How to set up SixTrackLib (STL)? = ⇒ python interface! load lattice in MAD-X via cpymad 1 python library 1 − → for the moment, remove dipedges (dipole fringe fields) → load magnet error table and add multipole errors to magnet knl , ksl − pass MAD-X sequence to pysixtracklib 2 python library 2 define STL beam 3 define STL tracking job (which device to run on, could be usual 4 CPU or a GPU) profit from hardware acceleration :-) 5 Examples in jupyter notebooks: SIS-18 in cpymad – MAD-X tracking ր SIS-18 in PySixTrackLib incl. MAD-X makethin ր SIS-100 tracking with errors in PySixTrackLib ր 1 https://pypi.org/project/cpymad/ 2 shipped with SixTrackLib Adrian Oeftiger Accelerator Physics Meeting – 6 June 2019
II. Basic Physics: Tune Benchmark Compare FFT spectrum of particle trajectory in STL with MAD-X TWISS tune for SIS-100 lattice (thin lens, dipole edges removed): SIS100: single particle tracking in PySixTrackLib horizontal plane vertical plane 0.05 0.03 spectrum x in PySTL spectrum y in PySTL TWISS tune (1 q x ) TWISS tune (1 q y ) 0.04 0.02 0.03 0.02 0.01 0.01 0.00 0.00 0.0655 0.0660 0.0665 0.0670 0.0675 0.3640 0.3645 0.3650 0.3655 0.3660 = ⇒ thin lens tracking in STL accurately reproduces proper tunes! Adrian Oeftiger Accelerator Physics Meeting – 6 June 2019
III. MAD-X vs. STL Tracking Comparison Tracking the SIS-100 clean lattice (no errors, quadrupoles only): jupyter notebook for 3 working points ր Figure: Benchmark element-by-element MAD-X vs. STL: ǫ = O (10 − 10 ) 10 MAD-X vs. PySTL tracking for one turn of SIS100 1e MAD-X vs. PySTL tracking for one turn of SIS100 1e 9 4 x MADX x PySTL twiss-normalised error x MADX x PySTL twiss-normalised error x x x x 0.5 2 y MADX y PySTL y MADX y PySTL y y y y 0 0.0 2 0.5 4 0 200 400 600 800 1000 0 200 400 600 800 1000 s [m] s [m] (b) off-coupling Q x = 18 . 84, Q y = 18 . 73 (a) on-coupling Q x = Q y = 18 . 88 10 MAD-X vs. PySTL tracking for one turn of SIS100 1e twiss-normalised error 4 x MADX x PySTL x x y MADX y PySTL 2 y y 0 2 4 0 200 400 600 800 1000 s [m] (c) different integers Q x = 19 . 84, Q y = 17 . 73 Adrian Oeftiger Accelerator Physics Meeting – 6 June 2019
III. MAD-X vs. STL Tracking Comparison Tracking the SIS-100 clean lattice (no errors, quadrupoles only): jupyter notebook for 3 working points ր Figure: Benchmark 10000 turns MAD-X vs. STL: transverse ǫ x , y = O (10 − 7 ) and longitudinal ǫ z = O (10 − 9 ) Compare tracking 100 turns Compare tracking 100 turns Compare tracking 100 turns of SIS100 in PySTL vs. MAD-X # particles (out of 1000) of SIS100 in PySTL vs. MAD-X # particles (out of 1000) # particles (out of 1000) of SIS100 in PySTL vs. MAD-X 10 3 10 3 10 2 10 2 10 2 10 1 10 1 10 1 10 0 10 0 10 0 0 10 20 0 20 40 0.0 0.1 0.2 relative distance in x [10 8 ] relative distance in y [10 8 ] relative distance in z [10 8 ] (a) horizontal plane (b) vertical plane (c) longitudinal plane = ⇒ single-particle physics in MAD-X and SixTrackLib are equivalent (up to numerical errors) Adrian Oeftiger Accelerator Physics Meeting – 6 June 2019
Coupling Resonance: Emittance Exchange For equal tunes in a thin-lens quadrupole lattice find emittance exchange: jupyter notebook ր Figure: Comparing MAD-X and SixTackLib for quadrupole-only lattice! 10 MAD-X vs. PySTL tracking for one turn of SIS100 1e MAD-X vs. PySTL tracking for one turn of SIS100 4 twiss-normalised error x MADX x PySTL twiss-normalised error x x 0.0001 2 y MADX y PySTL y y 0.0000 0 x MADX x PySTL 0.0001 2 x x y MADX y PySTL y y 4 0 200 400 600 800 1000 0 200 400 600 800 1000 s [m] s [m] (a) using truncated drift in STL (b) using exact drift in STL − → MAD-X uses exact drift (full expression with the 3-momentum norm) − → MAD-X TWISS gives zero coupling ( r 11 = r 12 = r 21 = r 22 = 0) = ⇒ higher-order coupling through exact drift! Adrian Oeftiger Accelerator Physics Meeting – 6 June 2019
Coupling Resonance: Emittance Exchange For equal tunes in a thin-lens quadrupole lattice find emittance exchange: jupyter notebook ր Figure: SixTrackLib tracking of 10000 turns comparing both drifts PySTL tracking SIS100 (only quads) PySTL tracking SIS100 (only quads) using truncated drift using exact drift Transverse offset [m] Transverse offset [m] 0.010 0.010 x y 0.005 0.005 x 0.000 0.000 y 0.005 0.005 0.010 0.010 0 2500 5000 7500 10000 0 2500 5000 7500 10000 Turns Turns (a) using truncated drift in STL (b) using exact drift in STL = ⇒ this is a direct measure of how much the paraxial approximation is broken for SIS-100 (under this approximation p z ≈ p 0 and the truncated drift is identical to the exact drift) Adrian Oeftiger Accelerator Physics Meeting – 6 June 2019
Short Discussion: Drift Space and Coupling Exact Hamiltonian for a drift space region reads � (1 + δ ) 2 − p 2 x − p 2 y H ( x , p x , y , p y , z , p z ; s ) = p z − . (1) p 0 where x , y : transverse displacement, p x , p y : canon. conj. transverse momenta, z : longitudinal offset, p z : canon. conj. longitudinal momentum, δ = p z − p 0 : momentum deviation p 0 p 0 = βγ mc : total momentum Adrian Oeftiger Accelerator Physics Meeting – 6 June 2019
Short Discussion: Drift Space and Coupling Exact Hamiltonian for a drift space region reads � (1 + δ ) 2 − p 2 x − p 2 y H ( x , p x , y , p y , z , p z ; s ) = p z − . (1) p 0 With Hamilton’s equations of motion, the transfer map through a drift space of length L becomes x �→ x + x ′ L p x �→ p x y �→ y + y ′ L p y �→ p y with exact expression linearisation in p x , p y x ′ = x ′ = p x p x √ p 2 p 0 (1+ δ ) 0 (1+ δ ) 2 − p 2 x − p 2 y y ′ = y ′ = p y p y √ p 0 (1+ δ ) p 2 0 (1+ δ ) 2 − p 2 x − p 2 y see e.g. PhD thesis of Mattias Fjellstr¨ om, section 2.5 in https://cds.cern.ch/record/1642385/files/CERN-THESIS-2013-248.pdf Adrian Oeftiger Accelerator Physics Meeting – 6 June 2019
Short Discussion: Drift Space and Coupling Exact Hamiltonian for a drift space region reads � (1 + δ ) 2 − p 2 x − p 2 y H ( x , p x , y , p y , z , p z ; s ) = p z − . (1) p 0 With Hamilton’s equations of motion, the transfer map through a drift Coupling space of length L becomes exact expression � transverse coupling: x �→ f ( x , p x , p y , δ ) vs. x �→ x + x ′ L p x �→ p x linearised expression � no transverse coupling: x �→ f ( x , p x , δ ) y �→ y + y ′ L p y �→ p y with exact expression linearisation in p x , p y x ′ = x ′ = p x p x √ p 2 p 0 (1+ δ ) 0 (1+ δ ) 2 − p 2 x − p 2 y y ′ = y ′ = p y p y √ p 0 (1+ δ ) p 2 0 (1+ δ ) 2 − p 2 x − p 2 y see e.g. PhD thesis of Mattias Fjellstr¨ om, section 2.5 in https://cds.cern.ch/record/1642385/files/CERN-THESIS-2013-248.pdf Adrian Oeftiger Accelerator Physics Meeting – 6 June 2019
IV. SIS-100 Tune Scan in SixTrackLib The SIS-100 benchmark on SixTrackLib tracking with errors (no space charge) is available in the aoeftiger github repository ր . Have a look at the evaluation notebook comparing the results to Vera’s results: Figure: jupyter notebook for evaluation ր = ⇒ serial tune scan finishes in less than half a working day on NVIDIA V100 GPU cards (for 20000 turns and 1000 particles) Adrian Oeftiger Accelerator Physics Meeting – 6 June 2019
Tune Scan Results Vera losses losses 1000 1000 18.9 998 18.9 995 surviving particles 996 990 18.8 18.8 994 Q y 985 Q y 992 18.7 18.7 980 990 988 975 18.6 18.6 986 970 18.6 18.7 18.8 18.9 18.6 18.7 18.8 18.9 Q x Q x (a) Vera’s loss results (b) STL loss results (global aperture 1 m) final final x y x [m] y [m] 0.015 0.0070 18.9 18.9 horizontal RMS beam size vertical RMS beam size 0.014 0.0065 18.8 18.8 0.0060 0.013 Q y Q y 0.0055 18.7 18.7 0.012 0.0050 0.011 18.6 18.6 0.0045 18.6 18.7 18.8 18.9 18.6 18.7 18.8 18.9 Q x Q x (c) STL horizontal beam growth (d) STL vertical beam growth Adrian Oeftiger Accelerator Physics Meeting – 6 June 2019
Recommend
More recommend