Twiss 传输(Twiss)

简介

Twiss 元件基于 Twiss 参数实现 6D 线性光学传输。它使用束流光学函数(beta、alpha、mu、色散)构建传输矩阵,对粒子进行线性光学追踪,是连接 lattice 设计与粒子追踪的核心元件之一。

  • 代码位置PASS/commands/twiss.py

  • 类名Twiss ,注册名 "twiss"

  • 核心特征

    • 基于前后两点的 Twiss 参数(beta、alpha、相位)构建横向传输矩阵;

    • 支持色散的去除与恢复,保证动量偏差粒子在色散区正确传输;

    • 支持色品修正,动量偏差引起的 tune 偏移可自动计入相位;

    • 纵向传输支持 drift、matrix 及单位矩阵三种模式;

    • 支持 z 坐标回旋折叠,保持纵向坐标在环周长范围内;

    • 支持孔径检查,与其它元件一致。

物理推导

纵向传输

纵向传输由 Longitudinal Transfer 参数控制,支持三种模式:

drift 模式 :使用 gamma transition 参数,纵向传输矩阵元为:

\[m_{12,z} = -\left(\frac{1}{\gamma_t^2} - \frac{1}{\gamma^2}\right)(s - s_\mathrm{previous})\]

其中 \(\gamma_t\) 为过渡 gamma, \(\gamma\) 为粒子相对论 gamma, \(s\) 为当前纵向位置, \(s_\mathrm{previous}\) 为前一元件纵向位置。

matrix 模式 :使用纵向振荡频率,传输矩阵为:

\[m_{11,z} = \cos(\phi_z)\]
\[m_{12,z} = \frac{\sigma_z}{\Delta p_\mathrm{bunch}} \sin(\phi_z)\]
\[m_{21,z} = -\frac{\Delta p_\mathrm{bunch}}{\sigma_z} \sin(\phi_z)\]
\[m_{22,z} = \cos(\phi_z)\]

其中 \(\phi_z\) 为纵向相移, \(\sigma_z\) 为束团纵向尺寸, \(\Delta p_\mathrm{bunch}\) 为束团动量展宽。

其他模式 :纵向传输矩阵取单位矩阵。

色散处理

由于横向传输矩阵描述的是非色散部分的运动,需要在传输前后对色散进行去除与恢复:

  1. 去除前一点色散

\[x_1 = x - D_{x,\mathrm{previous}} \cdot \Delta p\]
\[px_1 = px - D_{px,\mathrm{previous}} \cdot \Delta p\]
  1. 线性传输

\[x_\mathrm{temp} = x_1 \cdot m_{11} + px_1 \cdot m_{12}\]
  1. 加新点色散

\[x_2 = x_\mathrm{temp} + D_x \cdot \Delta p_2\]

其中 \(D_x\) 为当前点水平色散, \(D_{x,\mathrm{previous}}\) 为前一点水平色散, \(\Delta p\) 为粒子动量偏差。

横向传输矩阵

横向传输矩阵由前后两点的 Twiss 参数及相位差表示。以水平方向为例:

\[m_{11,x} = \sqrt{\frac{\beta_x}{\beta_{x,\mathrm{prev}}}} \left(\cos\phi_x + \alpha_{x,\mathrm{prev}} \sin\phi_x\right)\]
\[m_{12,x} = \sqrt{\beta_x \, \beta_{x,\mathrm{prev}}} \sin\phi_x\]
\[m_{21,x} = -\frac{1 + \alpha_x \, \alpha_{x,\mathrm{prev}}} {\sqrt{\beta_x \, \beta_{x,\mathrm{prev}}}} \sin\phi_x + \frac{\alpha_{x,\mathrm{prev}} - \alpha_x} {\sqrt{\beta_x \, \beta_{x,\mathrm{prev}}}} \cos\phi_x\]
\[m_{22,x} = \sqrt{\frac{\beta_{x,\mathrm{prev}}}{\beta_x}} \left(\cos\phi_x - \alpha_x \sin\phi_x\right)\]

其中 \(\beta_x\)\(\alpha_x\) 为当前点水平 Twiss 参数, \(\beta_{x,\mathrm{prev}}\)\(\alpha_{x,\mathrm{prev}}\) 为前一点水平 Twiss 参数, \(\phi_x\) 为两点间的水平相移。

垂直方向(y)的传输矩阵形式完全相同,只需将下标 x 替换为 y。

色品修正

动量偏差会引起 tune 偏移,通过色品参数对相位进行修正:

\[\phi_x = \phi_x + \Delta p \cdot \Delta Q_x \cdot 2\pi\]
\[\phi_y = \phi_y + \Delta p \cdot \Delta Q_y \cdot 2\pi\]

其中 \(\Delta Q_x\)\(\Delta Q_y\) 分别为水平与垂直色品, \(\Delta p\) 为粒子动量偏差。

z 坐标回旋折叠

为保持纵向坐标在环周长范围内,传输后对 z 坐标进行回旋折叠:

\[z_2 = z_2 + (\mathrm{under} - \mathrm{over}) \cdot C\]

其中 \(C\) 为环周长, underover 为折叠计数。

t0 更新

参考时间 t0 根据纵向位置变化更新:

\[\Delta t = \frac{s - s_\mathrm{previous}}{\beta \, c}\]

其中 \(\beta\) 为粒子相对论速度, \(c\) 为光速。

接口参数

位置参数

参数名

键名

类型

单位

说明

s

"S (m)"

float

m

当前元件纵向位置

s_previous

"S Previous (m)"

float

m

前一元件纵向位置

name

"name"

str

由序列键名自动填入

横向参数

参数名

键名

类型

单位

说明

alphax

"Alpha X"

float

当前点水平 alpha

alphay

"Alpha Y"

float

当前点垂直 alpha

alphax_previous

"Alpha X Previous"

float

前一点水平 alpha

alphay_previous

"Alpha Y Previous"

float

前一点垂直 alpha

betax

"Beta X (m)"

float

m

当前点水平 beta

betay

"Beta Y (m)"

float

m

当前点垂直 beta

betax_previous

"Beta X Previous (m)"

float

m

前一点水平 beta

betay_previous

"Beta Y Previous (m)"

float

m

前一点垂直 beta

mux

"Mu X"

float

当前点水平相位

muy

"Mu Y"

float

当前点垂直相位

mux_previous

"Mu X Previous"

float

前一点水平相位

muy_previous

"Mu Y Previous"

float

前一点垂直相位

纵向参数

参数名

键名

类型

单位

说明

longitudinal_transfer

"Longitudinal Transfer"

str

纵向传输模式(drift/matrix/其他)

muz

"Mu Z"

float

当前点纵向相位(可选,默认0)

muz_previous

"Mu Z Previous"

float

前一点纵向相位(可选,默认0)

色散与色品

参数名

键名

类型

单位

说明

Dx

"Dx (m)"

float

m

当前点水平色散

Dx_previous

"Dx Previous (m)"

float

m

前一点水平色散

Dpx

"Dpx"

float

当前点水平色散导数

Dpx_previous

"Dpx Previous"

float

前一点水平色散导数

DQx

"Dqx"

float

水平色品

DQy

"Dqy"

float

垂直色品

孔径参数

参数名

键名

类型

单位

说明

aperture_type

"Aperture Type"

str

孔径类型(默认off)

aperture_value

"Aperture Value"

list

孔径参数(默认[])

使用示例

以下 JSON 片段展示了一个完整的 Twiss 元件定义:

"Twiss1": {
    "S (m)": 10.0,
    "Command": "Twiss",
    "S Previous (m)": 5.0,
    "Alpha X": 0.5,
    "Alpha Y": -0.3,
    "Alpha X Previous": 0.4,
    "Alpha Y Previous": -0.2,
    "Beta X (m)": 3.5,
    "Beta Y (m)": 2.8,
    "Beta X Previous (m)": 3.0,
    "Beta Y Previous (m)": 2.5,
    "Mu X": 0.123,
    "Mu Y": 0.456,
    "Mu X Previous": 0.1,
    "Mu Y Previous": 0.4,
    "Dx (m)": 0.5,
    "Dx Previous (m)": 0.3,
    "Dpx": 0.01,
    "Dpx Previous": 0.005,
    "Dqx": 2.0,
    "Dqy": 2.0,
    "Longitudinal Transfer": "drift",
    "Aperture Type": "off"
}

其中:

  • "S (m)": 10.0 —— 当前元件纵向位置为 10.0 m;

  • "S Previous (m)": 5.0 —— 前一元件纵向位置为 5.0 m;

  • "Alpha X": 0.5 —— 当前点水平 alpha 为 0.5;

  • "Beta X (m)": 3.5 —— 当前点水平 beta 为 3.5 m;

  • "Mu X": 0.123 —— 当前点水平相位为 0.123(以 \(2\pi\) 为单位);

  • "Dx (m)": 0.5 —— 当前点水平色散为 0.5 m;

  • "Dqx": 2.0 —— 水平色品为 2.0;

  • "Longitudinal Transfer": "drift" —— 纵向传输采用 drift 模式;

  • "Aperture Type": "off" —— 关闭孔径检查。

应用场景

Twiss 元件适用于以下场景:

  • 基于 lattice 设计的线性追踪 :当已有 MadX、AT 等光学计算程序输出的 Twiss 参数表时,可直接使用 Twiss 元件进行粒子追踪,无需重新建模磁铁元件。

  • 色散与色品研究Twiss 元件内置色散去除/恢复与色品修正,适合研究动量偏差粒子的横向动力学。

  • 纵向动力学模拟 :通过选择 drift 或 matrix 纵向传输模式,可模拟不同纵向传输场景。

  • 快速光学评估 :相比逐元件建模,基于 Twiss 参数的线性传输计算量更小,适合大规模参数扫描与初步评估。

  • 与非线性元件混合使用Twiss 元件可与 sextupole、octupole 等非线性元件串联使用,在线性传输基础上叠加非线性效应。