束团重分组(ReorganizeBunch)
本模块介绍 PASS 中的 ReorganizeBunch 命令。该命令在指定圈数切换束流的束团分组数,并按照粒子的物理到达相位重新建立束团结构。
用途与前提
命令只改变束团分组和参考坐标;存活粒子的物理时间、能量及机械动量保持不变。它不替代 RF 俘获、散束、合束或压缩。重分组会使所有旧切片失效,之后必须重新执行后续命令所引用的每个 Slicer。命令本身不写诊断文件,可在其后放置监视器。坐标定义见 纵向坐标与参考到达时间。
使用示例
以下示例在第 500 圈把束流切换到 1 个纵向分组:
{
"ReorganizeBunch1": {
"S (m)": 0.0,
"Command": "ReorganizeBunch",
"Start turn": 500,
"New harmonic number": 1
}
}
接口参数
属性名 |
JSON key |
类型 |
默认值 |
说明 |
|---|---|---|---|---|
|
|
float |
必填 |
命令在环中的纵向位置 |
|
|
str |
自动填入 |
命令名称 |
|
|
int |
0 |
执行圈数(含,0-based);命令只执行一次 |
|
|
int |
必填 |
新的束团分组数,必须 \(\ge 1\) |
分组操作与边界
在 Start turn 将分组数改为 h。规定时钟相位
\(\Psi(t)=\int_{t_*}^t f_{rev}(u)du\) 给出位置 s 处排序键:
分组 j 包含 \(j/h\le k_i<(j+1)/h\) 的粒子,半槽位平移对奇偶分组数 采用同一规则。所有粒子数组一起重排。周期键只负责分类,展开的物理时间始终保留。 浮点计算中的排序键严格小于 1:从上边界内侧舍入为 1 的值被调整为小于 1 的 最大 float64 数,保留其末组归属;恰好为零的键属于第 0 组。各分组共用相邻区间 边界,保证每条数组记录恰好归入一组,也支持空束团和整个粒子池为空的情况。 粒子数组重排前会检查源区间和目标分组是否完整覆盖全部记录。
新参考事件由规定时钟、当前通过次数及新槽位 ID 确定。参考速度为 \(C f_{rev}(T_b)\),必须小于光速;参考能量由此速度与静质量确定。 参考能量改变属于坐标选择,不产生 RF 能量增量。
选择谐波 ID 最小的旧束团作为锚点,并取距离其参考事件最近的机器通过次数:
因此,新参考由规定的设计轨迹确定,不根据测得的粒子质心选择。对应的存活粒子 坐标变换为:
上述参考变换仅作用于存活粒子(tag > 0)。丢失粒子的六维冻结坐标、
损失圈数和位置均保持原值;预留粒子(tag == 0)的坐标保持到实际注入时。
这些记录可以与其他粒子一起改变数组位置。
所有宏粒子使用同一固定权重,空束团也保留该值。重分组根据粒子数和固定权重 更新束团的诊断真实粒子数,不从取整后的数量反推新权重,也不需要逐粒子电荷数组, 见 注入与粒子生成(Injection)。
这里 Np = end_idx - start_idx 统计组内全部记录,包括存活、丢失和待注入粒子。
Nrp = round(ratio * Np) 是诊断用的整数计数,不代表存活束流强度。
存活真实粒子数为 ratio * count(tag > 0),乘以粒子电荷即可得到存活束流电荷。
各组分别对 Nrp 取整可能改变这些整数的总和,因此电荷守恒检查应使用固定权重
和存活粒子数。
存活粒子的物理时间、能量和机械动量保持不变。SortBunch 使用同样的分类键与参考变换,
但保留已有束团参考参数。两者均使旧 SliceSet 失效,因为局部粒子索引已变化;
随后由用户显式执行 Slicer。不自动按质心重新居中,也不产生物理散束、合束或压缩。
特别地,SortBunch 在粒子转入参考动量不同的束团时也会转换归一化动量。
ReorganizeBunch 即使请求的分组数与原值相同,也会重建参考。
Important
每次执行 SortBunch 或 ReorganizeBunch 后,必须先重新执行 Slicer,再使用
切片信息。 所需顺序为
SortBunch/ReorganizeBunch -> Slicer -> SpaceCharge/WakeField,其中 Slicer
必须更新后续命令引用的每个命名切片集。操作前生成的切片都会失效,包括同一圈
内此前生成的结果。粒子的 tag 仍随粒子移动,但切片归属按当前数组索引对齐,
不通过 tag 查找。CPU 和 CUDA 上使用切片的命令都不会自动重新生成已清空的
结果,详见 纵向切片(Slicer)。
应用场景
在 RF 操作改变纵向分布后,按新的束团中心网格更新诊断分组
在不同模拟阶段切换束团分组数
将跨越旧分组边界的粒子按当前机器时钟相位重新归类
Note
ReorganizeBunch 只改变 PASS 的束团分组参考系,不会替代 RF 腔产生的散束、俘获、合束或束团压缩过程。应先通过相应物理元件形成所需纵向分布,再在合适圈数执行重分组。
参见 纵向坐标与参考到达时间 和 纵向切片(Slicer)。