参数扫描
Sweep 用于把单次计算扩展为一组参数化计算。你在本页定义“哪些输入参数需要变化”以及“每个参数按什么范围变化”,软件随后根据这些范围自动生成组合并执行批量计算。
这一页的职责是建立参数化输入,不负责解释结果图。结果读取在后续结果章节完成。
页面职责与推荐使用时机
进入 Sweep 之前,通常应先满足以下前提:
Structure已稳定,层名和层组名不再频繁变动。Optics至少已有一套可运行的单次计算配置。- 你已经执行过一次普通
Run,确认基准结果在物理上合理。
从工程使用角度,Sweep 主要回答下列问题:
| 问题类型 | 典型参数 | 目的 |
|---|---|---|
| 角度灵敏度 | incidentAngle | 观察角度变化对反射、透射或椭偏的影响 |
| 偏振敏感性 | pRatio | 评估偏振条件变化时的趋势 |
| 厚度公差 | thickness | 判断膜厚偏差对结果的容忍度 |
| 周期结构尺度 | repeatCount | 评估层组周期数变化对光学响应的影响 |
| 材料参数扰动 | n / k / nExt / kExt | 分析折射率参数变化对设计点的影响 |
如果结构本身还在频繁改名、删层或调整启用状态,不建议先做扫描。路径会持续失效,维护成本很高。
页面结构与推荐配置顺序
Sweep 页面由两个主要区域构成:
- 顶部工具栏:创建、复制、排序和删除扫描项。
- 扫描表格:定义每一条扫描项的路径与数值范围。

推荐配置顺序如下:
- 先建立第一条扫描项。
- 先选择路径,再填写
From / To / Step。 - 先完成单参数扫描并验证趋势。
- 再增加第二个参数,扩展为多参数扫描。
- 运行前最后检查重复路径、失效路径和组合数量。
这个顺序的目的很直接:先确认“路径模型”正确,再扩大计算规模。否则错误会被复制到后续多条扫描项中。
工具栏操作
顶部工具栏包含 Add / Insert / Duplicate / Move Up / Move Down / Delete 六类操作,全部作用于当前选中行。
| 操作 | 行为 | 使用建议 |
|---|---|---|
Add | 在末尾追加一条新扫描项 | 新增独立参数时使用 |
Insert | 在选中行后插入新项 | 需要在中间补一条参数时使用 |
Duplicate | 复制当前行 | 以相近配置为基础微调时使用 |
Move Up / Move Down | 调整显示顺序 | 便于整理,不改变计算逻辑 |
| 拖拽柄 | 拖拽排序 | 与上下移动等价 |
Delete / 行内删除 | 删除当前行 | 清理无效或重复项 |
其中 Duplicate 最容易引入错误:复制后如果保持两条启用项使用同一路径,系统会立即报重复路径错误。
扫描表字段
扫描表的核心字段如下:
| 字段 | 作用 | 当前规则 |
|---|---|---|
| 启用 | 该行是否参与当前扫描 | 仅启用行参与路径与范围校验 |
Parameter | 扫描路径 | 必须从级联选择器中选择有效路径 |
From | 起始值 | 必填 |
To | 终止值 | 必填,且必须大于 From |
Step | 步长 | 必填,且必须大于 0 |
| 行删除按钮 | 删除该行 | 与顶部 Delete 等价 |
一个很关键的实现细节是:禁用行不会参与重复路径检查,也不会参与范围检查。 这使得你可以在表中保留草稿项,而不影响当前运行。
参数路径模型
Parameter 使用级联路径选择器。可选路径来自当前模型状态,不是自由输入,因此会随着 Structure、Surroundings 和 Optics 的变化而变化。

当前路径分为三类:
StructureSurroundingsOptics
Structure 路径
Structure 是最常用的扫描来源。它基于当前顶层结构元素名称生成路径。
| 路径类型 | 路径格式 | 用途 |
|---|---|---|
| 普通层厚度 | structure > {LayerName} > thickness | 厚度公差、厚度扫描 |
| 普通层折射率参数 | `structure > {LayerName} > n | k |
| 层组重复次数 | structure > {GroupName} > repeatCount | 周期数扫描 |
| 层组内部层参数 | structure > {GroupName} > Layers > {LayerName} > ... | 扫描组内部具体层 |
层组内部路径在保存时会写成 ['structure', groupName, 'layers', layerName, property]。内部层名称一旦变化,旧路径不会自动更新,必须重新选择。
Surroundings 路径
环境介质路径分为入射侧和透射侧:
| 路径 | 当前支持属性 | 说明 |
|---|---|---|
surroundings > incidence > n | n | 入射侧只允许扫描折射率实部 |
surroundings > transmission > n | n | 透射侧允许扫描实部 |
surroundings > transmission > k | k | 透射侧允许扫描虚部 |
入射侧不支持 k。如果介质当前使用 File 模式,对应折射率参数会被直接判定为不可扫描。
Optics 路径
当前 Sweep 页面只暴露两个光学路径:
optics > incidentAngleoptics > pRatio
当前界面不支持直接扫描以下内容:
wavelengthFrom / wavelengthTo / step- 探测器开关
- 入射光谱来源
- 颜色计算开关
从实现上看,本页的扫描重点被限制在“结构参数 + 两个核心连续光学变量”。这是当前产品边界,不是路径选择器缺失。
校验逻辑与常见失效原因
路径出现在菜单中,并不表示它最终一定可用。系统还会进行属性级校验、范围校验和引用有效性校验。
属性合法性限制
如果扫描的是折射率相关属性,系统还要结合对应层或介质当前的模式继续判断。
层与层组内部层的 indexType 限制
indexType | 可扫描属性 | 不可扫描属性 |
|---|---|---|
Constant | n, k, thickness | nExt, kExt |
Const. Birefringence | n, k, nExt, kExt, thickness | 无额外折射率限制 |
File | thickness | 所有折射率属性 |
因此,如果某层当前切到 File 模式,n / k / nExt / kExt 即使路径结构上存在,也会被判定为非法。
环境介质模式限制
环境介质遵循相同原则:
| 介质位置 | 模式 | 结果 |
|---|---|---|
incidence | Constant | 允许扫描 n |
incidence | File | 折射率扫描被拒绝 |
transmission | Constant | 允许扫描 n / k |
transmission | File | 折射率扫描被拒绝 |
数值范围规则
所有启用中的扫描项都必须满足以下基础规则:
From、To、Step全部已填写。From < To。Step > 0。
几条常见误区:
From = To不合法;如果只需要固定值,应回原页面做单次计算。- 负步长不合法;当前扫描方向始终假设从小到大。
- 极小步长虽然可能通过验证,但会显著增加采样点数量和运行时间。
repeatCount 的特殊规则
repeatCount 是离散正整数,不是一般实数参数。因此当扫描层组重复次数时:
From必须是正整数。To必须是正整数。Step必须是正整数。- 生成出来的序列也必须保持正整数。
例如 1 -> 5, step 0.5 在数学上能递增,但在这里仍然是非法配置。
路径失效的典型原因
Sweep 的常见故障并不来自数值本身,而来自模型状态变化。
| 现象 | 原因 | 处理方式 |
|---|---|---|
| 昨天可用,今天路径报错 | 被引用层/层组已删除 | 重新选择路径 |
| 路径存在但被判定无效 | 被引用元素已禁用 | 在 Structure 中重新启用或改选路径 |
| 改名后路径失效 | 路径按名称保存 | 重选路径,旧路径不会自动重命名 |
| 复制后立刻报重复路径 | 两条启用项引用同一路径 | 修改其中一条路径,或先禁用草稿项 |
多参数扫描与基准使用方式
当你启用两条或更多扫描项时,系统不会分别独立运行,而是对各条扫描项的取值列表做组合。
例如:
incidentAngle: 0 -> 60, step 20,得到 4 个值。pRatio: 0 -> 1, step 0.5,得到 3 个值。
最终运行次数为 4 × 3 = 12,不是 4 + 3 = 7。

多参数扫描的工程重点是组合数量是否可接受。在增加第二个参数前,应先估算总组合数。
推荐的单参数基准案例
最稳妥的第一个扫描案例是:
- 新增一条扫描项。
- 选择
optics > incidentAngle。 - 设置
From = 0。 - 设置
To = 80。 - 设置
Step = 10。 - 保持该项启用。
- 使用顶部主工具栏的
Run Sweep启动扫描。
这是最容易解释、也最不依赖结构细节的一类扫描。
推荐的双参数基准案例
如果要扩展为双参数扫描,建议优先使用:
- 第一条:
optics > incidentAngle - 第二条:
optics > pRatio
原因如下:
- 两者都不依赖层名,不容易因结构改名而失效。
- 两者都是连续变量,范围配置直观。
- 不受
File折射率模式限制。
相比之下,直接扫描某层的 n / k 或内部层参数,会更容易受 indexType 和结构命名变化影响。
运行前检查与下一步
在执行 Run Sweep 之前,建议按以下清单自查:
- 每条启用扫描项都已选择合法路径。
- 没有两条启用项使用相同路径。
- 每条启用项都满足
From < To且Step > 0。 - 若路径为
repeatCount,三项均为正整数。 - 若扫描折射率参数,目标当前不是
File模式。 - 你已估算本次扫描的总组合数量,确认计算规模可接受。
完成这一步后,继续阅读下一章:优化器。