270 likes | 443 Views
FFAG Modelling #2. “ How to model an FFAG in 45-minutes”. Suzie Sheehy, ASTeC Intense Beams Group, RAL. Outline. Requirements Basic parameter choices Optimisation Detailed studies Odds and ends. Requirements. Beam requirements Beam energy Particle species Beam current/power
E N D
FFAG Modelling #2 “How to model an FFAG in 45-minutes” Suzie Sheehy, ASTeC Intense Beams Group, RAL
Outline • Requirements • Basic parameter choices • Optimisation • Detailed studies • Odds and ends
Requirements • Beam requirements • Beam energy • Particle species • Beam current/power • Pulse structure • Technology limitations • Superconducting/Normal conducting magnets? • Particular RF expertise? • Adding to existing facility? • Financial constraint
Requirements I could combine these in innumerable ways! (though not all are sensible…)
Where to start!? KJP: “could we make a mini-PAMELA? Something like protons from 5~100 MeV?” “This would also give ions up to around 30 MeV/u, which might be useful (if the current is high enough) for some nuclear physics or isotope production, or (much lower current) some useful radiobiology” 5 to 100 MeV => 97 MeV/c to 444.6 MeV/c Magnetic rigidity: 0.3235 to 1.483 Tm Back to basics: relativity E0(proton)=938.272 MeV/c2 Chao & Tigner, Accelerator physics handbook Get a good grip on these quantities before modelling begins
Basic parameters Work with the basic geometry & constraints: Ring size, packing factor, cells, type of FFAG, lattice type? k=40?? 5-cell lattice 6-cell lattice Packing factor This holds for a circular trajectory – with approximate scaling law this can be assumed. Ring radius [m] Constrained by peak B field, long drift requirement and bore diameter There is a fair bit of guess-work involved, but geometry is (often) a good place to start!
Will it be stable? (is my design crazy?) • Hill’s equation: • Looks like SHM, solutions: • For AG focusing with a doublet (FD): • For stability we require: K>0 K=0 K<0 It’s worth thinking about stability at a single energy first, pretend it’s linear...
Stability regions FD focusing FDF focusing f0is the “average” focusing strength and f1 is the alternating gradient focusing strength Horizontal Vertical Both
Basic parameters in SCode See http://www-bd.fnal.gov/icfabd/Newsletter43.pdf, pp.54 or contact S. Machida Scode & PTC separate particle orbits from lattice geometry • Use a tool like SCodeor MAD-X to explore parameter space • Step 1: calculate input parameters (script) • Step 2: create input file • Step 3: trial and error…
SCode stability diagram • Perl script from S. Machida • Run SCode with range of k values and D/F ratios to find stability regions. Can use SCode to calculate beta functions, tunes and to do some tracking. But… let’s move onto another code!
ZGOUBI ZGOUBI manual & source: http://sourceforge.net/projects/zgoubi • ZGOUBI • Ray tracing code • Use an interface! i.e. Pyzgoubi • Choice of analytic magnet elements • DIPOLE-S • Excellent and flexible but lots of parameters • FFAG • Uses a scaling field only • MULTIPOL • Has FF issues far from magnet centre • TOSCA • Could use field maps if you have them – lack of flexibility? First step: how to describe the lattice?
Using DIPOLE-S for rectangular magnets? Want field lines to be parallel with magnet faces, NOT curved around machine centre! • Make R (reference radius) very large • Magnet faces are effectively parallel • Magnetic field lines OK DIPOLE-S description in ZGOUBI manual: Multipole description: Where is the dipole field and Centre of machine Etc… easy in linear case! TIP: Make sure the magnetic fields look as you expect
PyZGOUBI tools • Closed orbit finder (basic): Stop iterating when: Or if difference between successive guesses is less than some threshold. [x,x’,y,y’]=find_closed_orbit(lattice, [guess co-ords], turns, threshold)
ZGOUBI tools • Tune calculation (internal to ZGOUBI) • 3 main methods: • Fourier transform of particle position in tracking • Fourier transform of positions of 2 particles (one on closed orbit, one offset) • Construct (1st or 2nd order) transfer matrix from trajectories of a number of tracked particles (11 in ZGOUBI) & identify with Twiss form 3. Has the best accuracy in my experience – check what your code is using!!
Optimisation • Minimising tune variation Educated guesswork + physics Set range of parameters (k, multip, E range/step) Construct lattice Calculate closed orbits + Calculate tunes/tof Save data Check against criterion
Optimisation • Fringe fields • Crucial in almost every type of FFAG! • Need to go past the ‘hard edge’ model • Usually use ‘Enge’ model • What if fringe field varies with radius? • In ZGOUBI can use kappa parameter Cell tune Fringe field extent [cm]
Detailed studies • Dynamic aperture (single particle) Set range of parameters (k, multip, E range/step) Construct lattice Calculate closed orbit at injection Track particle with amplitude over many turns Lost?Finer range Not Lost? Continue
Detailed studies • Dynamic aperture (single particle)
Detailed studies • Error analysis Set range/type of error Post-tracking analysis of emittance, closed orbit distortion etc… Construct lattice Save data & loop Calculate closed orbit at injection (or use previous) Track particle/s over n turns With/out acceleration
Detailed studies • Error analysis • Crucial for resonance crossing studies with realistic alignment errors • Often requires significant computation time (for statistics) • Many degrees of freedom & sources of error! (Alignment, stray field, BPM offsets, etc…)
Detailed studies • Space charge • Which codes can handle space charge in an FFAG? • Start of development in ZGOUBI (S. Tygier) • SCode? • Development in COSY Infinity? • GPT • OPAL-CYCL
OPAL-CYCL • Object Oriented Parallel Accelerator Library • “a tool for charged-particle optic calculations in large accelerator structures and beam lines including 3D space charge” • Massively parallel – from 1 to 8000 processors! (C++ based) • various beam line element descriptions • methods for single particle optics • maps up to arbitrary order • symplecticintegration schemes • (RK4 & 2nd order leapfrog) • time integration • Multibunch effects • Takes into account neighbouring bunches • Usually: Lorentz transform into local frame – calculate SC – transform back • BUT energy is different turn-by-turn and even within a bunch • SO particles are binned according to energy This code is new to us, but has been tested with PSI 590 MeV ring! So, watch this space…
Summary • No one-code-fits-all approach! • I have tried to introduce some codes which have been commonly used within the UK for EMMA & PAMELA • I have missed out LOTS of codes (COSY, GPT, MAD-X, PTC) due to personal experience • New & old codes are constantly being developed & tested against experiment
Resources Scode: http://www-bd.fnal.gov/icfabd/Newsletter43.pdf ZGOUBI code: http://sourceforge.net/projects/zgoubi/ OPAL code: http://amas.web.psi.ch/ Any scripts/macros I’ve presented: suzie.sheehy@stfc.ac.uk