螺线管(Solenoid)
本模块介绍 PASS 中的螺线管元件 Solenoid ,用于模拟带电粒子在纵向磁场中的运动。螺线管产生沿束流方向的均匀磁场 \(B_z\),通过 Larmor 旋转效应耦合水平与垂直平面,同时提供横向聚焦。
PASS 中的螺线管采用 精确非线性映射 (Larmor 框架下的哈密顿量解析解)。纯螺线管(无多极场叠加)采用所声明均匀场模型的解析映射,仍受浮点舍入影响;叠加多极场时采用 Sol-Kick-Sol(SKS)辛积分器。
核心特征:
采用精确螺线管映射(Larmor 旋转 + 聚焦, \(p_z\) 逐粒子计算)
无纵向主场薄透镜模式;\(L=0\) 时只有横向积分多极分量起作用
支持多极场叠加(
knl/ksl),使用 SKS 积分器支持 uniform(2阶蛙跳)和 yoshida4(4阶 Yoshida 组合)积分器
\(k_s = 0\) 时使用多极 DKD;无横向多极分量时才退化为纯漂移
色品效应通过逐粒子 \(p_z\) 自然引入
支持孔径检查
以下接口中的字段用于 PASS.para.schema.elements.SolenoidItem 配置类;
元件名称由 Sequence.add(name, item) 的序列键给出,不是配置类字段。
接口参数
Python 配置字段 |
JSON 键 |
类型 |
单位 |
默认值 |
说明 |
|---|---|---|---|---|---|
|
|
|
m |
|
元件出口或零长度作用点的纵向位置。 |
|
|
|
m |
|
元件长度 (必须 \(\ge 0\) ; \(= 0\) 时仅保留横向多极动量更新) |
|
|
|
\(\text{m}^{-1}\) |
|
螺线管归一化强度 \(k_s = q_0 B_z / P_0\) ,默认 0 |
|
|
|
\(\text{m}^{-n}\) |
|
多极铁法向积分强度数组 \(K_{nL}\) ,默认 |
|
|
|
\(\text{m}^{-n}\) |
|
多极铁斜向积分强度数组 \(K_{sL}\) ,默认 |
|
|
|
1 |
|
外场本体切片数,默认 1(纯螺线管也有效) |
|
|
|
|
积分器,可选: |
|
|
|
|
— |
|
孔径类型,默认 |
|
|
|
m / rad |
|
孔径参数值,默认 |
Note
knl/ksl为可选参数。与启用的场误差相加后全零时,每个螺线管切片使用精确本体映射;num_slices生效,integrator不参与计算名义多极分量与启用的场误差相加后非零时,启用 SKS 积分器,
num_slices和integrator生效ks = 0且有长度时使用多极 DKD;名义与误差多极分量相加后全零时才退化为纯漂移length = 0时,仅横向多极分量和启用的场误差起作用;纵向主场无薄透镜映射
使用示例
纯螺线管(精确映射)
{
"SOL1": {
"S (m)": 10.0,
"Command": "Solenoid",
"Length (m)": 1.0,
"KS": 2.0,
"Aperture type": "off"
}
}
长度 1.0 m,归一化强度 \(k_s = 2.0\) 。使用单段精确螺线管映射,无分裂截断误差,但仍有浮点舍入误差。
弱螺线管
{
"SOL2": {
"S (m)": 20.0,
"Command": "Solenoid",
"Length (m)": 2.0,
"KS": 0.5,
"Aperture type": "off"
}
}
弱场螺线管, Larmor 旋转角较小。
反向磁场螺线管
{
"SOL3": {
"S (m)": 30.0,
"Command": "Solenoid",
"Length (m)": 1.5,
"KS": -3.0,
"Aperture type": "off"
}
}
\(k_s < 0\) 表示反向磁场, Larmor 旋转方向相反。
螺线管叠加四极场(SKS 积分器)
{
"SOL4": {
"S (m)": 40.0,
"Command": "Solenoid",
"Length (m)": 1.0,
"KS": 2.0,
"KiL": [0.0, 0.1],
"KiSL": [],
"Num slices": 4,
"Integrator": "yoshida4",
"Aperture type": "off"
}
}
螺线管( \(k_s = 2.0\) )叠加四极分量( \(K_{1L} = 0.1\) ),4 个切片,4 阶辛积分器。 KiL 数组第 0 项为 \(K_{0L}\) (偶极),第 1 项为 \(K_{1L}\) (四极)。
零场退化(纯漂移)
{
"SOL5": {
"S (m)": 50.0,
"Command": "Solenoid",
"Length (m)": 1.0,
"KS": 0.0,
"Aperture type": "off"
}
}
\(k_s = 0\) 时退化为纯漂移。
坐标约定
采用 纵向坐标与参考到达时间 的连续纵向坐标。 \(T_b\) 是理想参考粒子在当前位置的实际通过时刻,不是束团质心时刻; 局部映射中的 \(\beta_0\) 和 \(P_0\) 表示当前束团参考量。 \(p_x=P_x/P_0\) 是归一化动量,不是轨迹斜率。
PASS 采用归一化曲线坐标,六维相空间变量为 \((x, p_x, y, p_y, z, \delta)\) :
变量 |
符号 |
定义 |
|---|---|---|
|
\(x\) |
水平偏移(相对于参考轨道) |
|
\(p_x\) |
归一化水平动量, \(p_x = P_x / P_0\) |
|
\(y\) |
垂直偏移 |
|
\(p_y\) |
归一化垂直动量, \(p_y = P_y / P_0\) |
|
\(\zeta\) |
纵向坐标, \(z=\zeta=\beta_b c(T_b-t_i)\) |
|
\(\delta\) |
相对动量偏差, \(\delta = P / P_0 - 1\) |
其中 \(P_0\) 为参考粒子动量, \(\beta_0 = v_0 / c\) 为参考粒子归一化速度。
螺线管磁场与归一化强度
螺线管产生沿束流方向( \(s\) 轴)的均匀磁场:
归一化螺线管强度定义为:
其中 \(q_0\) 为参考粒子电荷, \(P_0\) 为参考粒子动量。 PASS 中用户直接指定 \(k_s\) ( ks )。
定义半强度:
Larmor 旋转角为:
其中 \(p_z\) 为粒子的归一化纵向动量分量(逐粒子不同,见下文), \(L\) 为螺线管长度。
物理推导
哈密顿量
在直线坐标系中,螺线管的哈密顿量为:
其中各项物理含义:
项 |
物理含义 |
|---|---|
\(-\sqrt{(1+\delta)^2 - p_x^2 - p_y^2}\) |
自由传播(精确漂移) |
\(\frac{k_s^2}{8}(x^2 + y^2)\) |
螺线管聚焦(等效四极分量) |
\(-\frac{k_s}{2}(x p_y - y p_x)\) |
Larmor 旋转( \(x\) - \(y\) 耦合) |
Note
Larmor 旋转项 \(-\frac{k_s}{2}(x p_y - y p_x)\) 同时依赖位置和动量 ,这是螺线管与四极铁的本质区别。四极铁的动量更新项仅依赖位置,可以将哈密顿量干净地分裂为漂移和动量更新两部分(DKD 积分器)。螺线管的 Larmor 旋转项不可分裂为纯位置或纯动量的部分,因此 不能使用普通漂移做 DKD 积分 。
Larmor 框架与精确解
做 Larmor 变换——将横截面坐标系绕 \(s\) 轴旋转角度 \(\theta = \text{sk} \cdot s / p_z\) ,定义 Larmor 框架下的正则动量:
在 Larmor 框架中, \(p_{k1}\) 和 \(p_{k2}\) 是 守恒量 (不随 \(s\) 变化),因此纵向动量分量:
在整个螺线管内逐粒子恒定。这使得螺线管映射可以 精确求解 ,无需近似。
精确螺线管映射
给定螺线管长度 \(L\) , Larmor 旋转角:
映射分为旋转和漂移两步:
步骤 1:Larmor 旋转 (将坐标旋转到 \(s=L\) 处的 Larmor 框架)
步骤 2:Larmor 框架中的漂移 (等效漂移长度 \(\sin\theta / \text{sk}\) )
纵向坐标更新 :
其中 \(\text{rvv} = \beta / \beta_0\) 为粒子速度与参考粒子速度之比:
Note
\(p_z\) 逐粒子不同(包含 \(\delta\) 和 Larmor 动量的贡献),因此映射是 精确非线性 的
当 \(k_s \to 0\) 时, \(\sin\theta/\text{sk} \to L/p_z\) ,映射退化为精确漂移
为什么螺线管没有薄透镜模式
四极铁的薄透镜极限( \(L \to 0\) , \(k_1 \to \infty\) , \(k_1 L = \text{const}\) )给出有限的动量动量更新 \(\Delta p_x = -k_{1L} \cdot x\) ,物理上自洽。
螺线管的薄透镜极限( \(L \to 0\) , \(k_s \to \infty\) , \(k_s L = \text{const}\) )存在根本困难:
Larmor 旋转角 \(\theta = k_s L / (2 p_z)\) 有限 ✓
聚焦项 \(\text{sk} \cdot \sin\theta = (k_s/2) \cdot \sin\theta \to \infty\) 发散 ✗
位置和动量的缩放行为不对称:旋转角有限但聚焦力发散,薄透镜极限不存在。
因此 PASS 不提供纵向主场的薄透镜映射。\(L=0\) 时 KS 无效应,但名义横向多极分量及启用的场误差仍执行积分薄动量更新。
多极场叠加与 SKS 积分器
当螺线管内部叠加横向多极场分量( \(k_{nl}\) / \(k_{sl}\) )时,总哈密顿量为:
其中 \(H_{\text{mult}}\) 为多极铁动量更新哈密顿量(仅依赖位置)。由于 \(H_{\text{sol}}\) 和 \(H_{\text{mult}}\) 不对易,需要分裂算符法。
PASS 采用 Sol-Kick-Sol (SKS)积分器,与四极铁的 DKD 完全平行:
其中:
Sol = 精确螺线管映射(
_solenoid_exact_cpu),处理 \(B_z\) 场Kick = 多极铁动量更新(Horner 递归),处理横向多极场
漂移算子 |
动量更新算子 |
场景 |
|
|---|---|---|---|
四极铁 DKD |
自由漂移 |
四极动量更新 |
\(B_z = 0\) ,仅横向梯度场 |
螺线管 SKS |
螺线管映射 |
多极动量更新 |
\(B_z \neq 0\) ,叠加横向多极场 |
Note
SKS 中的 “Sol” 不是自由漂移,而是螺线管精确映射。螺线管内 \(B_z\) 始终存在,粒子不是在无场空间漂移。如果错误地使用自由漂移替代螺线管映射,将丢失 Larmor 旋转效应。
uniform 积分器(2阶辛)
每个切片采用 Sol-Kick-Sol 结构,即二阶蛙跳(leapfrog):
每个切片误差为 \(O(\Delta s^3)\) ,全局误差为 \(O(\Delta s^2)\) 。
yoshida4 积分器(4阶辛)
通过组合三个二阶 SKS 步构造四阶辛映射 [Yoshida 1990]:
其中 Yoshida 系数为:
每个切片误差为 \(O(\Delta s^5)\) ,全局误差为 \(O(\Delta s^4)\) 。
整体跟踪流程
根据是否有多极场叠加,螺线管有两种跟踪路径:
====== 厚透镜 (length > 0) ======
无多极场 (knl/ksl 全零):
单段精确螺线管映射 Sol(L, ks)
[无分裂截断误差,但仍有浮点舍入误差,无需切片]
有多极场 (knl/ksl 非零):
切片1 → 切片2 → ... → 切片N
(每个切片: Sol(ds/2) → Kick(ds) → Sol(ds/2))
其中 ds = L / N
特殊情况:
ks = 0 → 多极 DKD;无横向多极分量时为 Drift(L)
L = 0 → 仅执行横向积分多极动量更新
完整映射为:
无多极场:
有多极场( \(N\) 个切片):
色品效应
螺线管的色品效应通过逐粒子 \(p_z\) 表达式自然引入。
在 Larmor 框架中, \(p_z\) 依赖 \(\delta\) 和 Larmor 动量 \(p_{k1}, p_{k2}\) :
不同动量偏差 \(\delta\) 的粒子有不同的 \(p_z\) ,因此有不同的 Larmor 旋转角 \(\theta = \text{sk} \cdot L / p_z\) 和不同的等效漂移长度 \(\sin\theta / \text{sk}\) 。这就是螺线管色品的物理来源——动量依赖的旋转角和聚焦强度。
绝对正、斜多极场误差与静态 DX/DY/DPSI 准直误差使用公共 元件误差 接口。 准直只移动磁场,孔径和 SC 边界保持在设计坐标系。
应用场景
低能束流传输线 :低能段 \(\beta\gamma\) 较小,螺线管聚焦效率高于四极铁,常用于注入器和低能传输线
电子冷却器 :螺线管约束电子束与离子束共线运动,用于冷却横向发射度
对撞机探测器螺线管 :大型实验探测器(如 CMS、ATLAS)的螺线管磁场对束流光学有显著影响,需在 lattice 模型中精确计入
超导螺线管 :高场超导螺线管中的多极场误差可通过
knl/ksl参数叠加建模旋转对称束流 :螺线管的 Larmor 旋转可用于消除 \(x\) - \(y\) 耦合或产生特定旋转对称的束流分布
元件内部空间电荷
正长度元件可设置 space_charge (JSON Space charge)为
ElementSpaceCharge 对象。Num slices 控制外场传输,
Space charge.Num kicks 控制 SC 积分。调度规则、共享资源、
支持的后端和示例见 元件切片与内部空间电荷。