Glossary
In daily communication, we tend to abbreviate a lot of terms. It is important to us to make it easy to interact with the ImpactX community and thus, this list shall help to clarify often used terms.
Abbreviations
ABLASTR: Accelerated BLAST Recipes, a library shared between the BLAST codes WarpX and ImpactX, providing, e.g., the space charge and CSR solvers
ADIOS2: The Adaptable Input Output System version 2, an I/O backend for openPMD output (
bpfiles)AI: artificial intelligence. ImpactX provides user-friendly interfaces suitable for AI/ML workflows, see, e.g., AI-assisted input design
AMR: adaptive mesh-refinement, used in our space charge solvers to resolve the particle beam where it needs it most
API: application programming interface, e.g., the Python interface of ImpactX
BC: boundary condition (of a simulation), e.g., the longitudinal particle boundary condition
BLAST: Beam, Plasma & Accelerator Simulation Toolkit, the open source code suite that ImpactX is part of
CI: continuous integration, automated tests that we perform before a proposed code-change is accepted; see PR
CPU: central processing unit, we usually mean a socket or generally the host-side of a computer (compared to the computer’s “accelerator”, i.e. GPU)
CS: Courant-Snyder; see Twiss parameters in the terms below
CSR: coherent synchrotron radiation, a collective effect from radiation generated when a charged particle beam is bent
DOE: The United States Department of Energy, the largest sponsor of national laboratory research in the United States of America
DP: double precision (64-bit floating point), the default
ImpactX_PRECISION; see also SPFFT: fast Fourier transform, e.g., used by the IGF space charge solver and the CSR calculation (
-DImpactX_FFT=ON)FODO: a periodic focusing lattice cell consisting of a focusing (F) quadrupole, a drift (O), a defocusing (D) quadrupole and another drift (O). The “hello world” of our examples
GPU: originally graphics processing unit, now used for fast general purpose computing (GPGPU). Also called (hardware) accelerator of a computer.
HDF5: Hierarchical Data Format 5, an I/O backend for openPMD output (
h5files)HPC: high-performance computing, e.g., on large computing clusters and supercomputers
IGF: integrated Green function, the method used by the default (
fft) space charge Poisson solverIO: input/output, usually files and/or data
IOTA: the Integrable Optics Test Accelerator at Fermilab. ImpactX implements its nonlinear magnetic insert as a lattice element
IPO: interprocedural optimization, a collection of compiler optimization techniques that analyze the whole code to avoid duplicate calculations and optimize performance. Also called link-time optimization (LTO), see below.
ISR: incoherent synchrotron radiation, causing radiation reaction (mean energy loss) of the bunch in bending elements, often relevant at high energies
JSON: JavaScript Object Notation, a simple text format.
K-V: Kapchinskij-Vladimirskij distribution, an initial beam distribution that is uniform on the surface of a 4D transverse phase space ellipsoid
LBNL: Lawrence Berkeley National Laboratory, the U.S. DOE national laboratory leading the development of ImpactX
LLM: large language model. See our documentation on AI-assisted input design and developing ImpactX with LLMs
LTO: link-time optimization, program optimizations for file-by-file compilation that optimize object files before linking them together to an executable. Also called interprocedural optimization (IPO), see above.
MAD-X: Methodical Accelerator Design (version X), a CERN code for accelerator design. ImpactX often follows MAD-X conventions for element strengths and can import MAD-X lattice files
MCP: Model Context Protocol, an open standard to provide context (e.g., the ImpactX documentation) to LLMs
ML: machine learning, e.g., trained neural networks can be used as ML surrogate models for lattice elements, sections, or collective effects
MLMG: multi-level multigrid, the iterative solver used by the
multigridspace charge Poisson solver optionMPI: message passing interface, used for parallelization over multiple nodes and/or multiple GPUs
MR: mesh-refinement, see AMR
NERSC: National Energy Research Scientific Computing Center, a supercomputing center located in Berkeley, CA (USA)
OTP: One-Time-Password, see 2FA
PALS: Particle Accelerator Lattice Standard, a community effort toward a common lattice description file format, which ImpactX can read
PR: github pull request, a proposed change to the ImpactX code base
RF: radio-frequency, e.g., an RF cavity element for particle acceleration and bunching
RMS: root mean square, e.g., in RMS beam sizes and RMS emittances calculated from the beam moments
SIMD: single instruction, multiple data, CPU vectorization used to speed up particle tracking (
-DImpactX_SIMD=ON)SP: single precision (32-bit floating point), see also DP
Terms
accelerator: depending on context, either a particle accelerator in physics or a hardware accelerator (i.e. GPU) in computing
AMReX: C++ library for block-structured adaptive mesh-refinement, a primary dependency of ImpactX
aperture: a thin collimator element applying a transverse boundary to the beam; particles outside are lost (see scraping)
beam monitor: a zero-length lattice element that writes the particle beam to openPMD output whenever the beam passes it
bunch: a longitudinally confined group of particles, also referred to as beam; the particle ensemble that ImpactX tracks through the lattice
chromatic effects: the dependence of the transverse focusing optics on the particle energy. Chromatic element models retain the exact nonlinear dependence on the energy variable \(p_t\) (see assumptions)
collective effects: effects that depend on the particle beam as a whole, arising from the interaction of the beam particles with each other through their self-fields and radiation, in contrast to single-particle optics in external fields. ImpactX applies collective effects such as space charge and the CSR wakefield between the slices of lattice elements
covariance matrix: the 6x6 matrix \(\Sigma_{ij}=\langle\zeta_i\zeta_j\rangle\) of second moments of the phase space coordinates; used to characterize the initial beam distribution and as the tracked state in envelope tracking
dashboard: the browser-based graphical user interface of ImpactX, which can also run in Jupyter notebooks
dispersion: linear dependence of the transverse particle orbit on the particle energy deviation (important within bending dipoles), reported in the reduced beam characteristics
distribution: the initial phase space density of the particle beam; ImpactX implements Gaussian, K-V, waterbag, Kurth, semi-Gaussian, triangle and thermal distributions, among others
eigenemittances: the three invariant emittances of the (possibly coupled) 6D beam distribution, also known as mode emittances; they coincide with the RMS emittances when inter-plane correlations vanish
emittance: a measure of the phase space area occupied by the beam in a coordinate plane; ImpactX reports unnormalized (geometric, 1-RMS) emittances \(\epsilon\) and normalized emittances \(\epsilon_\mathrm{n} = (\beta\gamma)_\mathrm{ref} \cdot \epsilon\) (see beam distribution input)
envelope tracking: a simplified tracking mode that evolves the beam envelope (6x6 covariance matrix) through linearized transport maps, for rapid parameter scans
hard-edge element: an ideal (thick) element model in which the fields are independent of s inside the element and terminate abruptly at its ends; see soft-edge element
lattice: the ordered sequence of beamline elements (drifts, magnets, cavities, …) that the beam is tracked through; it can be repeated periodically, e.g., for rings or channels
linac: a linear particle accelerator
LUMI: a European pre-exascale supercomputer at CSC (Finland)
macroparticle: a weighted simulation particle representing many physical beam particles
magnetic rigidity: \(B\rho = p/q\), the momentum per unit charge of the reference particle; element strengths (e.g., the quadrupole strength \(k\)) are normalized by it
openPMD: Open Standard for Particle-Mesh Data Files, a community meta-data project for scientific data; the output format of the beam monitor and input for the particle source element
Perlmutter: a Berkeley Lab nobel laureate and a Pre-Exascale supercomputer at NERSC
pyAMReX: the Python binding of AMReX, used to access particle and field data from Python without copying
Python: a popular scripted programming language and flexible interface language to ImpactX
reference particle: the particle that follows the reference trajectory; it is described by 8 phase space variables in a global lab coordinate system and the beam particle coordinates are deviations from it
reference trajectory: the nominal machine orbit, i.e., the ideal single-particle orbit used as part of the optics design; it relates the local beam coordinate system to the global lab coordinate system
ring: a circular accelerator, e.g., a storage ring or synchrotron. Usually modeled by repeating the lattice over many turns
s: the path length along the reference trajectory, used as the independent dynamical variable of tracking (instead of time)
scraping: the removal of particles that are lost from the beam, e.g., when hitting an aperture or leaving the simulation domain. Lost particles are collected and can be written to openPMD output (
particles_lost)slice: thick lattice elements are sliced into
nslicesegments. Collective effects such as space charge kicks are applied between slicessoft-edge element: an element modeled with an \(s\)-dependent, user-provided on-axis field profile, e.g., RF cavities, soft-edge solenoids and soft-edge quadrupoles
space charge: the collective effect of the beam’s own electrostatic self-field. Calculated by solving the Poisson equation in the bunch frame, between slices of the lattice elements
spin tracking: updating the particle spin 3-vector in the electromagnetic fields of each element, using methods based on the Thomas-BMT equation; the mean of the particle spin vectors is the polarization vector
symplectic: the defining property of Hamiltonian (transfer) maps, which preserve the phase space structure; particle tracking through lattice optics in ImpactX is symplectic
tracking modes: ImpactX can track individual particles (full dynamics), the beam envelope (linearized optics), or only the reference orbit (for early design)
transfer map: the map that advances the phase space coordinates through a lattice element; to lowest order a 6x6 matrix (linear transfer map), which users can also supply directly (
linear_map)Twiss parameters: the Courant-Snyder parameters \(\alpha\), \(\beta\) and \(\gamma\) describing the phase space ellipse of the beam, related by \(\gamma\beta - \alpha^2 = 1\)
wakefield: a collective self-field (other than space charge) that acts back on the beam, e.g., the CSR wakefield generated in bending elements
WarpX: the electromagnetic and electrostatic particle-in-cell code of BLAST, e.g., used to model source, injector, or plasma-based accelerator elements. ImpactX shares the ABLASTR library with WarpX and can exchange particle beams with WarpX through openPMD or Python
For plasma, laser and fusion related terminology, please also see the WarpX glossary.