Exciter
This module introduces the transverse exciter element Exciter in PASS, used to apply transverse momentum perturbations to the beam through time-varying electric fields. Exciters are widely used in tune measurement, beam instability studies, emittance growth, and other scenarios.
The exciter in PASS is a thin lens element (length = 0), changing only the particle’s transverse momentum (\(p_x\) or \(p_y\)), without changing position coordinates.
Code Location
Source file:
PASS/commands/element/exciter.pyClass name:
Exciter(inherits fromCommand)Registration name:
exciterCore features:
Thin lens element (
length = 0), changes only the particle’s transverse momentum, without changing position coordinates;Supports 4 excitation modes (
single_fm,single_fm_am,dual_fm,dual_fm_am);Frequency parameters support both tune mode and frequency mode input methods;
Supports aperture checking, consistent with other elements.
Physical Derivation
The exciter consists of a pair of parallel plates with voltage \(V\) applied across them, plate gap \(d\), and plate effective length \(L\).
The electric field strength is:
The force on a particle (charge \(Q = Z \cdot e\), where \(Z\) is the charge number and \(e\) is the elementary charge) is:
The particle traverses the plates at velocity \(v = \beta c\), with an interaction time of:
Therefore the momentum increment is:
The normalized kick (divided by the reference particle total momentum \(P_0\)) is:
Using the magnetic rigidity \(B\rho = P_0 / Q\), this simplifies to:
This form is uniformly applicable to proton beams (\(Z=1, A=1\)) and ion beams (\(Z \neq A\)), since \(B\rho\) already contains the charge-to-mass ratio information.
Particle Arrival Time
The longitudinal coordinate stored in the particle array, \(z_{\mathrm{rel}}\), is measured relative to the center of the particle’s bunch. For a bunch-center position \(z_{\mathrm{center}}\), the longitudinal position in the laboratory frame is:
The particle arrival time at the exciter is therefore:
Here \(t_0\) is the reference-particle clock at the machine-coordinate origin. A particle with \(z_{\mathrm{lab}} > 0\) is ahead of that reference point and therefore arrives earlier. Exciter uses \(z_{\mathrm{lab}}\) directly to evaluate the signal phase; it does not fold or wrap \(z_{\mathrm{rel}}\). This arrival-time difference causes particles to sample different phases of the excitation signal and produces longitudinal-transverse coupling.
The revolution frequency is:
where \(C\) is the ring circumference. The revolution frequency is used to convert turn number to real time.
Frequency Input Modes
The exciter’s center frequency \(f_c\) and sweep width \(\Delta f\) support two input methods:
Tune mode (recommended)
Directly input the excitation tune \(Q_{\text{excite}}\) and sweep tune \(\Delta Q\); the program automatically computes the frequencies at runtime based on beam parameters:
In this mode, there is no need to manually compute frequencies, and it automatically adapts to beams of different energies and circumferences. excite tune and sweep tune must be provided as a pair.
Frequency mode
Directly input the center frequency and sweep width (in Hz), suitable for scenarios requiring precise frequency control. central frequency (hz) and sweep width (hz) must be provided as a pair.
Note
Choose one of the two modes. If excite tune is provided, tune mode is used; otherwise, frequency mode is used. In tune mode, excite tune and sweep tune must be provided as a pair.
Excitation Modes
The exciter has 4 operating modes, formed by combining two dimensions: frequency modulation (FM) method and amplitude modulation (AM) method:
Mode |
FM method |
AM method |
Description |
|---|---|---|---|
|
Single-segment sweep |
Constant amplitude |
The most basic linear chirp |
|
Single-segment sweep |
Time-varying amplitude |
Sweep + amplitude adiabatic growth |
|
Dual-segment sweep |
Constant amplitude |
Complex spectral coverage |
|
Dual-segment sweep |
Time-varying amplitude |
The most complex excitation mode |
Frequency Modulation (FM) Dimension
Single-segment linear sweep (single)
Within one period \(T\), the phase is:
where \(\tau = t \bmod T\) is the intra-period time, \(f_c\) is the center frequency, and \(\Delta f\) is the sweep width.
The instantaneous frequency is:
At \(\tau = 0\): \(f = f_c - \Delta f / 2\) (start frequency)
At \(\tau = T/2\): \(f = f_c\) (center frequency)
At \(\tau = T\): \(f = f_c + \Delta f / 2\) (end frequency)
The frequency sweeps linearly over \([f_c - \Delta f/2,\; f_c + \Delta f/2]\), repeating every \(T\) seconds. The center frequency \(f_c\) should be close to \(Q \cdot f_0\) (tune times revolution frequency) to cover the beam’s resonance frequency.
Dual-segment sweep (dual)
One period is divided into first and second halves, each using a different phase formula, and a cosine envelope \(2\cos(\frac{\pi}{2}\Delta f \cdot \tau)\) is introduced:
First half \([0,\; T/2]\):
Second half \([T/2,\; T]\):
where \(f_d\) is the dual-frequency parameter. The cosine envelope is maximum (\(2A\)) at \(\tau = 0\) and decays over time, reducing discontinuities at period boundaries. The dual-segment phase formula produces a more complex spectral structure, capable of simultaneously covering multiple tune peaks.
Amplitude Modulation (AM) Dimension
Constant amplitude
i.e., the kick amplitude computed from the voltage parameters is used directly, without time variation.
Time-varying amplitude (am)
Based on a beam diffusion/growth model, the excitation amplitude grows over time:
where \(\text{am\_factor}(t)\) is a dimensionless time-varying scaling factor:
where \(t = n_{\text{eff}} / f_0\) is the real time (seconds) since the start of excitation, and \(n_{\text{eff}}\) is the effective excitation turn number.
Initial emittance fraction:
Time-varying emittance squared:
where:
Physical meaning:
\(r_0\): Initial beam size
\(\delta_0\): Initial beam diffusion range
\(t_{\text{ext}}\): Beam diffusion characteristic time
\(k_{\text{const}}\): Emittance growth coefficient
\(\varepsilon\): Initial emittance fraction (a measure of the \(r_0 / \delta_0\) ratio)
The exciter continuously injects energy into the beam; the beam oscillation amplitude increases, the emittance grows, and a larger excitation amplitude is needed to maintain the relative driving effect. The logarithmic term makes the growth start fast (steep segment) and slow down later (gentle segment), consistent with the physical characteristics of an adiabatic growth process.
Complete Formulas for Each Mode
single_fm (single-segment sweep + constant amplitude)
single_fm_am (single-segment sweep + time-varying amplitude)
dual_fm (dual-segment sweep + constant amplitude)
First half (\(0 \le \tau \le T/2\)):
Second half (\(T/2 < \tau \le T\)):
dual_fm_am (dual-segment sweep + time-varying amplitude)
First half (\(0 \le \tau \le T/2\)):
Second half (\(T/2 < \tau \le T\)):
where \(\tau = t \bmod T\), \(A_0 = \frac{V \cdot L}{d \cdot \beta c \cdot B\rho}\).
Kick Application
The exciter is a thin lens element; the kick is directly added to the normalized momentum in the corresponding direction:
The kick is applied only to alive particles (tag > 0); lost particles are unaffected.
After the kick is applied, the exciter performs aperture checking on particles based on the aperture parameters (aperture_type): if the aperture type is not off, particles exceeding the aperture range are marked as lost (tag set to negative); if the aperture type is off, no aperture checking is performed.
Parameter List
General Parameters
Property |
JSON key |
Type |
Unit |
Description |
|---|---|---|---|---|
|
|
float |
m |
Longitudinal position of the element in the beamline |
|
|
float |
m |
Element length (must be 0) |
|
|
str |
Element name |
|
|
|
bool |
Exciter switch, options: |
|
|
|
str |
Excitation mode, options: |
|
|
|
str |
Excitation direction, options: |
|
|
|
int |
Excitation start turn (inclusive) |
|
|
|
int |
Excitation end turn (exclusive) |
|
|
|
str |
Aperture type (default |
|
|
|
list |
Aperture parameter values (default |
Hardware Parameters
Property |
JSON key |
Type |
Unit |
Description |
|---|---|---|---|---|
|
|
float |
V |
Plate peak voltage |
|
|
float |
m |
Plate gap |
|
|
float |
m |
Plate effective length |
Frequency Parameters
Frequency parameters support two input modes, choose one.
Tune mode (recommended):
Property |
JSON key |
Type |
Unit |
Description |
|---|---|---|---|---|
|
|
float |
Excitation tune \(Q_{\text{excite}}\); \(f_c = Q_{\text{excite}} \cdot f_0\) is automatically computed at runtime |
|
|
|
float |
Sweep tune \(\Delta Q\); \(\Delta f = \Delta Q \cdot f_0\) is automatically computed at runtime |
Frequency mode:
Property |
JSON key |
Type |
Unit |
Description |
|---|---|---|---|---|
|
|
float |
Hz |
Center frequency \(f_c\) |
|
|
float |
Hz |
Sweep width \(\Delta f\) |
Common frequency parameters (required for both modes):
Property |
JSON key |
Type |
Unit |
Applicable modes |
Description |
|---|---|---|---|---|---|
|
|
float |
s |
All modes |
Sweep period \(T\) |
|
|
float |
Hz |
dual_fm / dual_fm_am |
Dual-frequency parameter \(f_d\) |
Amplitude Modulation (AM) Parameters
Property |
JSON key |
Type |
Unit |
Applicable modes |
Description |
|---|---|---|---|---|---|
|
|
float |
s |
single_fm_am / dual_fm_am |
Beam diffusion characteristic time |
|
|
float |
m |
single_fm_am / dual_fm_am |
Initial beam size |
|
|
float |
single_fm_am / dual_fm_am |
Initial beam diffusion range |
|
|
|
float |
single_fm_am / dual_fm_am |
Emittance growth coefficient |
Note
am_r0 and am_delta0 should be of the same order of magnitude; otherwise \(\exp(-r_0^2/\delta_0^2)\) may suffer numerical underflow.
In constant amplitude modes (single_fm, dual_fm), the AM parameters do not participate in the computation and can be set to 0.
Usage Examples
Input File Example
The following example is taken from input/beam0.json, using tune mode:
{
"Exciter_x": {
"S (m)": 0.0,
"Command": "Exciter",
"Length (m)": 0.0,
"Enable": false,
"Mode": "single_fm",
"Direction": "x",
"Start Turn": 100,
"End Turn": 1000,
"Voltage (V)": 1000.0,
"Gap (m)": 0.1,
"Plate length (m)": 0.3,
"Excite tune": 0.44,
"Sweep tune": 0.02,
"Period (s)": 1e-3,
"Fm Dual Frequency (Hz)": 0.0,
"Am t ext (s)": 0.0,
"Am r0 (m)": 0.0,
"Am delta0": 0.0,
"Am k const": 0.0,
"Aperture Type": "off"
}
}
If using frequency mode, replace Excite tune and Sweep tune with:
"Central Frequency (Hz)": 1743.0,
"Sweep Width (Hz)": 79.2,
Mode Selection Guide
Tune measurement:
single_fmis recommended; simple and effective, sweep covers the working pointEmittance growth study:
single_fm_amis recommended; time-varying amplitude simulates adiabatic growthMulti-tune-peak coverage:
dual_fmis recommended; dual-segment sweep produces a complex spectrumComplex instability study:
dual_fm_amis recommended; the most complete excitation mode
Parameter Selection Recommendations
Excitation tune: Set to the beam working point \(Q_x\) (horizontal) or \(Q_y\) (vertical)
Sweep tune: Depends on dispersion and tune spread; typically 0.01~0.05
Sweep period: Should be much larger than the revolution period \(1/f_0\) to ensure sufficient frequency resolution
Voltage: Determined by back-calculating from the required kick amplitude; typical values are in the hundreds to thousands of volts
AM parameters: \(r_0\) and \(\delta_0\) should be of the same order of magnitude; \(t_{\text{ext}}\) is set according to the beam diffusion time scale