Lumerical RCWA和Zemax OpticStudio的动态链接

  • 10 November 2022
  • 10 replies
  • 796 views

Userlevel 5
Badge +3

最近上线了ZOS跟Lumerical的动态链接,这个帖子用来进行要点记录以及答疑。

23-01-06:KBA更新啦

Dynamic workflow between Lumerical RCWA and Zemax OpticStudio – Knowledgebase

23-01-12: Lumerical操作指南

Exit Pupil Expander with 1D-2D Gratings – Ansys Optics

23-02-03:补充阅读材料

新版的dll需要在Lumerical中定义RCWA参数,可以参考以下文章:

RCWA Solver - Simulation Object – Ansys Optics

https://optics.ansys.com/hc/en-us/articles/360034382614

23-03-15:Dynamic workflow的KBA中新增了一段解释说明

How dynamic link load settings from OpticStudio to Lumerical

Troubleshooting部分根据反馈做了更新

23-03-16:相关bug:

Zemax - Lumerical RCWA dynamic linking updates & known bugs | Zemax Community

23/03/27:

新增一个工具包,可以快速设定grating的参数

API (CS User Extension): Diffractive DLL Setup Assistant | Zemax Community

23.05.05:

最新版的dll下载:

DLL: Dynamic Link RCWA | Zemax Community

23.05.11:

关于怎么用ZOSAPI读写参数

ZOS-API- How to access properties and methods in Non-Sequential Component Editor? | Zemax Community


10 replies

Userlevel 5
Badge +3

如果出现了打开ZOS可以链接到Lumerical,但是修改参数之后Lumerical不响应的情况,伴生的一个现象是在diffractive文件夹中会生成一系列的文件,正常情况下这些文件会被删除,不会被看到。需要检查两个事项:

  1. Lumerical是否安装在其默认路径
  2. Zemax的Project Preference的设置是否是默认设置

    一般来说,把这两项调整之后应该就可以顺利运行,如果还是不行,检查一下dll的参数设置是否合理。可以在Lumerical的界面查看运算是否已经完成,也可以查看Lumerical_RCWA_dynamic_link中的log。

另外有一个可能性是,dll需要匹配对应的Lumerical版本,如果版本不对的话也可能出现运行不了的情况。

 

Userlevel 5
Badge +3

划重点!!!!!(这部分在最新的KBA里面也有提到啦,而且更详细,可以移步KBA去看看喔)

1.Zemax与Lumerical的坐标是匹配的,+Z匹配+Z,以此类推

2.动态链接会link两者的坐标,在Zemax设置了介质参数之后,动态链接会读取对应的介质参数,然后自动在Lumerical相同的坐标点进行介质设置。比如在Zemax中-Z介质是空气,动态链接会读取到这一信息,并在Lumerical当中-Z将介质的折射率设置为空气的折射率。

3.这里列一下Lumerical跟Zemax的+Z方向。不要拘泥于superstrate与substrate的传统意义,主要关注superstrate对应+Z方向(对于Zemax与Lumerical一致),用n_pos表征,substrate对应-Z方向,用n_neg表征-Z方向对应的折射率。

在ZOS当中,+Z指向物体“内”,Zemax Visulization画图的时候,+z朝下,而Lumerical则是朝上。在两个软件中定义方向和角度的时候需要注意。

此外,在仿真过程中,默认是缓存2000个不同参数的grating进行计算,超过之后会清空这部分的缓存。

Userlevel 5
Badge +3

22R3版本的notes:

1.要建立topcell(正常使用Lumerical的时候可以改名字,但是在动态链接里面需要固定名字为topcell),设定参数,用来控制script中的变量数值

2.建立结构的时候要预留两个方形区域,厚度不低于200nm,指定sub跟superstrate的仿真区域。

  1. 需要定义RCWA solver.
  1. Lumerical生成的fsp会被放到: “\Zemax\DLL\Diffractive\”。 所以在ZOS解压zar的时候不要勾选project directory,并且将Lumerical的工作路径设置为fsp所在的文件。
  1. Max order x/y的选取建议:3*period/wave,符号选取会影响order的分布选取。这个会决定Lumerical仿真的设定。
  1. Interpolation 设置为1-20带来的采样就是201*201,设置更高,比如31,得到的网格就是31*31。 pre-sampling 是每次计算的时候去选取的数据周围其他熟知的计算量。根据仿真对象确定,建议值是5-10.如果系统中只有一个角度,那就不用开启pre-sampling.
  2. Error log,初期使用的时候建议选择1,进行开启。
  3. 这个是搬的tips and caution。早期帮Michael 做测试的时候踩的坑。

    -要选择update none,不然会很卡,因为每次改完系统都会去重新计算刷新。

          -相同的fsp用不同参数的话调用同一个fsp就好了,计算效率更高

          -优化的时候先局部再锤形,这个早期跑优化的时候的确是看到了两者效果的不同

Userlevel 5
Badge +3

研讨会链接:

使用Zemax OpticStudio与Lumerical RCWA动态连结来设计并优化光波导 (ansys.com.cn)

研讨会答疑帖:

[网络研讨会] 使用Zemax OpticStudio与Lumerical RCWA动态连结来设计并优化光波导 | Zemax Community

 

Userlevel 5
Badge +3

总结一下23R1版本动态链接的更新内容:

  1. KBA对于坐标对应这部分做了非常详细的解释说明,这里就不做搬运工再复制粘贴了。
  2. 对于hexagonal的分布,fsp跟之前是维持不变的,还是要搭建一个正交周期的结构,2D  out-coupler在算法层面做了优化,加速了这部分的数据计算。
  3. 需要在Lumerical当中去做一些定义,包括layer,包括RCWA的设置,之前这些都是通过dll进行设定的。
  4. link to Lumerical,以前设置为1会呼叫Lumerical的显示窗口,现在默认是在后台,早期运行要显示的话要将参数设置为99
Userlevel 5
Badge +3

关于Max order的设置要注意,设置不正确的话会导致能量计算错误,比如能量偏高,甚至超过1的情况出现。最近几次错误排查,问题基本都出在这上面了。

 

Userlevel 5
Badge +3

如果您需要对标Zemax自带的dll跟动态链接的结果,以下几个参数要重点核对一下:

  1. 光栅结构参数是否一致,可以使用RCWA visualization tool跟Lumerical对比显示
  2. Interpolation, max order以及filter order参数设置
  3. 确认mesh refinement是不是conformal Variant 0。也可以开启FFF看看 (use tangent vector field)。

 

Userlevel 5
Badge +3

关于动态链接的系统怎么样将参数设置为变量进行优化,可以参考:

Simulating diffraction efficiency of surface-relief grating using the RCWA method – Knowledgebase (zemax.com)

 

Userlevel 5
Badge +3

23R1版本

关于RCWA 的设置:

实际的RCWA z方向尺寸会比simulation region大,通常单边多0.1um。

RCWA的xy span由periodxy決定,中心永远是0,0,z min/max由最大最小interface往外延展0.1µm。

 

https://doi.org/10.1117/12.2692847

Hi Yuan,

This recent work showed simulation of non-hexagonal 2D grating(certain 2D gratings that can be represented by orthogonal lattices) in Zemax-Lumerical co-work.  Is there any way to simulate a non-orthogonal lattice?

 

Reply