RSoft 平滑斜面与电镜建模

Keysight RSoft 2026 CAD / DiffractMOD / FullWAVE · 针对当前 24 层楼梯闪耀耦入 · 2026-09-13

当前 CAD24 层矩形楼梯
单层厚7.08 nm
现用 Λ / H365 / 170 nm
规格 Pin / H / α378 / 218 / 65°
推荐 CAD锥形段 + 多边形
电镜入口bmp2ind / polygon.dat

1. 精度为什么不满意:两层误差

当前 blazed_incoupler.ind 不是「平滑斜面被求解器切坏了」,而是 CAD 里就已经是楼梯:blaze_layers() 把直角齿切成 24 层等厚矩形,胶水左对齐、银右对齐。层厚 H/24 = 7.08 nm,银–胶界面是一串台阶,不是平面。

现用楼梯 vs 理想斜面(单胞,z 向上画成 SVG 向下) 左:24 层矩形(求解器看到的就是这个)。右:同一 Λ、H 的连续直角闪耀。 楼梯 CAD(NStair=24) 理想直角闪耀(连续斜面)
几何还和规格书不一致,这通常比楼梯更伤效率。 规格:Pin = 378 nm,H = 218 nm,α = 65°(对法线)。H·tan65° ≈ 467 nm > Pin,斜面必须截断。 当前模型:Λ = 365 nm,H = 170 nm,直角未截断;atan(170/365) ≈ 25°,对法线约 65°,角度碰巧接近,但周期、齿高、截断、胶水 n(1.8 vs Inkron 1.74)都不同。 金属闪耀的级次比对这些量敏感;只加密楼梯,对不齐规格,DE 仍会对不上工艺件。
误差源现状对金属闪耀 DE 的影响优先级
CAD 楼梯24 层、7 nm 台阶假棱镜、假散射;TM / 银界面更明显高
Λ、H、截断365/170 未截断 vs 378/218 截断改变闪耀相位与占空比,往往大于楼梯最高
胶水 n1.80 vs Inkron 1.74对比度主要来自 Ag,次要但仍应改中
RCWA 谐波Nx=21金属锐角未收敛会漂几个百分点中
Ag 厚度200 nm vs 规格 >500 nm可见光趋肤深度 ~12 nm,对 DE 几乎无影响低

2. 关键事实:CAD 平滑 ≠ RCWA 不切片

DiffractMOD 是 RCWA:沿主方向(本模型 +z)把单胞切成均匀折射率层,层间用传输线连接。手册 3.B.4:

所以正确目标不是「RCWA 里出现解析斜面」,而是:

  1. CAD 用真斜面描述几何(一段锥形或一个多边形),不要预先画 24 个矩形。
  2. 把切片精度交给 step_size / Index Res.,做收敛:例如 H/32、H/64、H/128,看 m=−1 的 DE 变化 < 1% 相对。
  3. 谐波 Nx 同样做收敛(21 → 41 → 61),金属 TM 尤其需要。

FullWAVE 宣称有 sub-cell / conformal 网格,斜面比纯楼梯 FDTD 准;金属锐角仍建议用 RCWA 出 BSDF,FDTD 只做抽检。

3. 方案对比

方案CAD 怎么建rstools API适合不适合
A. 锥形 segment一段胶水 + 一段银,dimensions ≠ dimensions_end,轴线沿斜面平移add_segment(..., dimensions_end=)理想直角 / 线性斜面;参数化 Λ、H圆角、SEM 不规则轮廓
B. 多边形XZ 顶点列,闭合;3D 沿 Y 拉伸add_polygon(x=, y=) 或 file='tooth.dat'截断闪耀、圆角、电镜描边要频繁改 Λ/H 时不如符号驱动的锥形段
C. 加密楼梯NStair=64/128 矩形现有 blaze_layers()快速对照「楼梯收敛了没有」CAD 臃肿;不是平滑斜面
D. User Profile高度/折射率函数或 .datadd_userprofileAFM 高度图、灰度膜厚多材料分区(胶+银)要两套 profile 或再镀膜
E. FullWAVE同一 CADsim_tool=ST_FULLWAVE对照 RCWA、有限周期BSDF 角谱扫描成本高

近期主路径:A(设计 CAD)→ 几何改成规格截断后改 B → 电镜来了走 B 或 D。 C 只用来证明楼梯已经收敛,不当交付几何。

4. 推荐:锥形 segment(真直角闪耀)

RSoft 线段宽度沿路径线性变化。若轴线同时平移,可以得到一侧竖直、一侧倾斜的直角齿,而不是对称等腰三角。

约定:z=0 为玻璃/胶水,+z 向银;竖直壁在 −x,斜面朝 +x。

from rstools import RSoftCircuit
P, H = 0.365, 0.170   # μm;规格件改成 0.378, 0.218 并做截断
c = RSoftCircuit()
# ... symbols / materials 同现脚本 ...

glue = c.add_segment(
    position=(0.0, 0.0, 0.0),
    offset=(-P/2.0, 0.0, H),
    dimensions=(P, 0.0),
    dimensions_end=(0.0, 0.0),
)
glue.material('ImprintGlue')

ag = c.add_segment(
    position=(P/2.0, 0.0, 0.0),
    offset=(-P/2.0, 0.0, H),
    dimensions=(0.0, 0.0),
    dimensions_end=(P, 0.0),
)
ag.material('Ag')

c.set_symbol('step_size', 'Height/64')   # Index Resolution,不是 CAD 楼梯层数
c.write(r'D:\\Mac\\Simulation\\rsoft_blazed_incoupler\\blazed_taper.ind')

规格截断怎么改锥形

α 对法线 65° ⇒ 基板倾角 25°。斜面在一个周期内只能爬升 P·tan25° ≈ 176 nm,小于 H=218 nm。因此:

  1. 从 z=0 到 z=176 nm:用锥形段(或多边形)画 65° 斜面;
  2. 从 z=176 到 218 nm:加一段等宽矩形(平顶或竖直截断,按 SEM/工艺图二选一);
  3. 银仍填满剩余空腔 + 盖帽。

不要再把 218 nm 硬塞进未截断直角齿——那会改周期或改角,破坏 k 闭合。

5. 多边形:圆角、截断、电镜轮廓

手册 5.D:多边形是 XZ 平面顶点列,必须闭合(首末点相同);3D 沿 Y 挤出。Python:

xs = [-P/2, -P/2,  P/2, -P/2]
zs = [ 0.0,    H,  0.0,  0.0]
poly = c.add_polygon(position=(0,0,0), x=xs, y=zs)  # y 数组实际是 Z
poly.material('ImprintGlue')
# 或 file='glue_tooth.dat',两列 ASCII:X  Z,首末相同

电镜描边时在斜面两端加圆弧顶点(倒角半径 10–30 nm 量级很常见),比直角金属棱的 RCWA 更稳,也更接近压印。

多边形坐标可进 .dat 做 Dynamic Load,换一张 SEM 轮廓不必改 .ind 结构。

6. 电镜 / AFM 进 RSoft

官方就有「用 SEM 定义截面」的工具链,不必自造求解器。

6.1 截面 SEM → 多边形(推荐给闪耀齿)

  1. 拍摄:截面 SEM,尽量垂直沟槽;同一视场至少 3–5 个周期;带标尺。
  2. 校准:用标尺把像素换成 nm;校正倾斜(样品未切正会把 H 和 α 一起歪)。
  3. 分割:阈值 / 分水岭分开玻璃、胶水、银、孔隙。不要用未校准的 JPEG 直接当折射率。
  4. 轮廓:每个周期提取胶–银界面折线;多周期平均后再闭合成单胞多边形(减噪声、减单个缺陷)。
  5. 写入 glue_tooth.dat / ag_fill.dat(两列 X Z,μm,闭合)。
  6. CAD:add_polygon(..., file=...),单胞边界仍是 ±Λ/2。
  7. 镀银:若 SEM 上看不到厚银或只看到齿形,用设计厚度在轮廓外偏置;RSoft coatuf 可对高度 profile 加涂层,多边形则用「外轮廓偏移」生成第二套顶点。

6.2 SEM 位图 → User Profile(官方 bmp2ind)

手册原文:bmp2ind 把索引色 BMP 转成 RSoft 数据文件,可用 SEM 图像定义波导/光纤截面的用户折射率剖面。

bmp2ind -w0.378 -h0.35 -m=materials.map sem_cell.bmp sem_cell.dat

6.3 AFM 高度 + coatuf(镀膜)

coatuf 专为「AFM 等得到的高度 profile 再加一层涂层」:生成第二份 user profile,在 CAD 里与未镀膜段同位叠放。银盖帽可以用这条,齿形仍用多边形或高度图。

coatuf -t0.2 -sx1 -sy1 -sf1 tooth_height.dat ag_coat.dat

6.4 电镜建模的坑

问题后果处理
一张齿当单胞缺陷被当成周期结构,假衍射级多周期平均,或 FullWAVE 算有限个周期抽检
未切正 / 无标尺α、H 同时错标尺 + 倾斜校正;用已知 Λ 反推像素当量
24-bit 照片直接 bmp2ind工具拒绝或颜色无意义索引色 + 材料映射表
把 SEM 衬度当 n银的 n、k 全错材料仍用库色散;SEM 只提供几何
残胶、圆角、孔隙忽略设计 CAD 偏乐观多边形保留圆角;残胶单独一层常数厚度

7. 求解器怎么选

DiffractMOD RCWAFullWAVE FDTDFemSIM
斜面CAD 真斜面 + Index Res. 切片sub-cell/conformal,比纯楼梯好非结构网格,几何保真最高
金属闪耀 BSDF主工具(角谱、谐波、色散)单点抽检不做周期衍射效率表
电镜不规则多边形切片即可适合有限个周期、缺陷过重
与 LightToolsbsdfgen 现有链也可出 BSDF,更慢不接

交付仍走:平滑(或 SEM)CAD → DiffractMOD 收敛 → bsdfgen → LightTools。FullWAVE 只在设计点 TE/TM 对一下 m=−1,相差超过 ~2% 再查几何或谐波。

8. 验收与实施顺序

  1. 不改 Λ/H,只把 24 层换成锥形段,step_size=Height/64,扫 Nx 与层厚。若 DE 几乎不动,说明楼梯已经够;若 TM m=−1 变几个点,就以锥形为准。
  2. 把几何改到规格:Pin=378 nm,H=218 nm,α=65° 截断,胶水 n=1.74。这步对效率的影响通常大于楼梯。
  3. 收敛表:Index Res. × 谐波的 DE(m=−1),相对变化 < 1% 才出 BSDF。
  4. 电镜到货:标尺校准 → 多周期平均轮廓 → *.dat 多边形 → 同一套 dfmod / bsdfgen;设计 CAD 与 SEM CAD 出两张 BSDF 做公差。
  5. 不要用改周期去凑级次;k 闭合锁死 Pin。

本仓库对照

文件角色
rsoft_blazed_incoupler/run_blazed_incoupler.py · blaze_layers()当前楼梯 CAD
rsoft_blazed_incoupler/blazed_incoupler.ind24×2 矩形段
手册 H.B.1 add_segment(..., dimensions_end)锥形段
手册 5.D / add_polygon多边形斜面
手册 Appendix E bmp2ind、coatufSEM / AFM
DiffractMOD 3.B.4 Index Resolution斜面切片精度

本页是方案调研,尚未改生产 .ind。下一步若要落地,从锥形段替换 blaze_layers() 开始,并保留楼梯结果做差分。