Skip to content
Snippets Groups Projects
RF-Track

RF-Track

RF-Track v2.4.1 is available. See below for more information.

To stay up to date, subscribe to the mailing list »HERE«.

RF-Track 2.4.1

Description

RF-Track is a tracking code developed at CERN for the design and optimisation of particle accelerators, offering outstanding flexibility and rapid simulation speed.

RF-Track can transport beams of particles of any energy, mass and charge, including mixed beams, solving fully relativistic equations of motion and including spin polarization. It can simulate the effects of space-charge forces in bunched and continuous-wave beams, synchrotron radiation emission, wakefields, beam-loading, intrabeam scattering, multiple Coulomb scattering, inverse Compton scattering, and the list of collective effects is growing. It can transport single- and multi-bunch beams through both conventional and special elements: 1D, 2D and 3D static or oscillating radio-frequency electromagnetic field maps (standing wave and travelling wave), flux concentrators and electron coolers. RF-Track uses fast parallel algorithms and allows element overlap and direct and indirect space charge calculations.

RF-Track is written in optimised multi-threaded C++ and comes in two separate and independent versions: one for use in Octave and the other in Python. A general knowledge of Octave or Python is recommended to get the most out of RF-Track.

Installation

RF-Track is available as pre-compiled binaries for MacOS (MacPorts), Ubuntu Linux, and on PyPI. RF-Track also works on Windows under WSL. See the RF-Track manual for detailed information.

Documentation

An updated version of the RF-Track manual can be found in this repository, or directly at this LINK.

Mailing list

For news and updates subscribe to the mailing list »HERE«.

Changelog

What is new in version 2.4.1

  • Added Spin polarization to both Lattice and Volume tracking

What was new in version 2.4.0

  • Speed-up and memory-management improvement in TW_Field
  • Added new collective effect IntraBeamScattering (Paula Desiré Valdor)
  • Redefined Lattice's transverse emittances as calculated from x-x' and y-y'
  • Cathodes in Volume can have arbitrary misalignment, mirror charges included

What was new in version 2.3.4

  • Fixed a memory problem in Python's numpy interface

What was new in version 2.3.3

  • Added TW_Field element to create RF structures from shunt impedance, group velocity, and quality factor
  • The new TW_Field element can account for steady input power, or time-dependent RF pulses
  • Long-range wakefields can now have arbitrary linear polarization
  • Improved speed of SW_Structure and TW_Structure elements
  • Beam and BeamT can now be saved and loaded in binary format
  • Elements can now be removed from and inserted into an existing Lattice
  • Lattice and Volume transport tables now return transmission in number of particles (no longer in number of macroparticles)
  • Improved error message handling to avoid redundant repetitions
  • Various minor bug fixes

What was new in version 2.3.2

  • Fixed a potential beam-laser synchronisation issue in the LaserBeam element
  • Added multi-pulse laser trains in LaserBeam
  • Fixed minor bug in Python interface

What was new in version 2.3.1

  • ShortRangeWakefield allows the simulation of tapered irises and cell-to-cell misalignment
  • Sped up Solenoid field calculation
  • Now Screens can have a width, a height, and a time window
  • Now SpaceCharge_Field() uses a fast Cartesian Multipole Expansion
  • Added Undulator element to simulate planar undulators
  • Minor bug fixes and improvements

What was new in version 2.3.0

  • Introduced new Beam and BeamT models for multi-bunch simulations
  • Optimized multi-bunch effects for multi-bunch beam simulations
  • Modified the transport table to support multi-bunch beams
  • Added the RF_TRACK_NOSPLASH environment variable
  • Implemented element misalignment handling in Volume
  • Added scaling error support to the Bpm element
  • Enhanced Lattice::autophase() to automatically set the magnetic strength of magnets
  • Improved detection of the solenoid fringe field extension in Volume
  • Enhanced the 3d solenoid field modelling using multiple thin sheets of current
  • Introduced a new on-the-fly BeamLoading implementation compatible with Beam (thanks to Javier Olivares Herrador)
  • Enhanced long-range wakefields to accept tapered modes along the structure
  • Added generalized Gaussian distribution to Generator
  • Added the displaced() method to Bunch6d and Bunch6dT to create offset bunches
  • Added Screen element support to Lattice and Volume
  • Implemented the fast multipole method to significantly speed up the SpaceCharge_Field() element
  • Various minor bug fixes and improvements

A full Changelog is available HERE.