Photonics – Chinese

Photonics – Chinese

Ansys Insight: stackrt 简例说明及其适用范围

    • Guilin Sun
      Ansys Employee
      FDTD虽然可以仿真很多不同的器件,但毕竟是离散计算,所以有离散带来的误差,还有很多设置需要合适,计算机硬件也有要求。但是有些器件可以不用FDTD仿真而借用其它方法,其中之一就是解析计算,比如根据菲涅尔反射透射系数可以解析计算各种膜层结构仿真问题。Lumerical开发的stackrt就是基于这种原理但是采用Transfer Matrix的方法更容易处理多层和复杂材料的计算,适用于平面膜系结构、VCSEL、OLED甚至BRAGG 光栅谐振腔(近似)等。
      适用范围: 平面薄膜结构、可以简化为平面薄膜的结构、横向尺寸较大的平面结构等。 光源可以是平面波或者偶极子。 Stack optical solver overview 简介 STACK - Simulation Object 在GUI 设置 STACK product reference manual 相关介绍和例子 stackrt - Script command 使用平面波时脚本文件设置和计算 下面以脚本文件为例简单说明:
      f = linspace(c/400e-9, c/1000e-9,100); # frequency vector 设定频率波长范围,可以是单一波长,此时直接给出频率即可,
      theta = 0:1:45; # angle vector 入射角及其抽样,可以是一个角度,直接给出即可。不给此参数时假设为正入射
      d = [0; 200e-9; 300e-9; 400e-9; 0]; # 5 layers (including air on top and bottom)每一层的厚度,其中第一层和最后一层厚度可以为零,那么,振幅系数就是这个结构的菲涅尔系数。
      nf = length(f); nd = length(d);频率点和厚度的点数,实际上可以事先给出,并用于抽样。 # refractive index of each layer (non-dispersive)
       
      n1 = [1; 1.5; 2.5; 1.5; 1]; 每一场材料的折射率。此列中第一和最后一次为空气。折射率可以为复数。也可以是色散介质,例如,
      # refractive index of each layer (dispersive)
      n2 = matrix(nd,nf); 先定义折射率,这里是厚度(材料)和频率的函数
      n2(1,1:nf) = 1; # air 第一层为空气
      n2(2,1:nf) = getfdtdindex("SiO2 (Glass) - Palik",f,min(f),max(f)); 第二层为玻璃
      n2(3,1:nf) = getfdtdindex("Si (Silicon) - Palik",f,min(f),max(f));第三层为硅
      n2(4,1:nf) = getfdtdindex("SiO2 (Glass) - Palik",f,min(f),max(f));第四层为玻璃。
      以上色散材料数据均取自材料库。
      n2(5,1:nf) = 1; # air 第五层为空气 计算菲涅尔系数、反射率透射率:
      RT1 = stackrt(n1,d,f); # non-dispersive index data, and theta=0 非色散材料,正入射
      RT2 = stackrt(n2,d,f,theta); # dispersive data index data, and theta from 0 to 45 deg 色散材料,不同角度入射角度 结果:
      rs, rp, ts, tp, Rs, Rp, Ts, Tp vs frequency/lambda, theta rs, rp, ts, tp,是SP两个不同偏振平面波对应的菲涅尔系数;
      Rs, Rp, Ts, Tp对应于反射率和透射率 如果材料有吸收,那么吸收率就是1-R-T。
      因为结果是dataset,所以可以用Visualizer visualize(RT1); visualize(RT2); 请自己测试看看。
       
      plot(RT1.lambda*1e6,RT1.Rp,RT1.Rs,RT1.Tp,RT1.Ts,"wavelength (um)","Power","non-disperisive, theta=0");
       
      legend("Rp","Rs","Tp","Ts");这是标记四条曲线分别代表什么。
       
      image(RT2.lambda*1e6,RT2.theta,RT2.Rp,"wavelength (um)","theta (deg)","Rp, dispersive example");因为结果是入射角和频率的函数,所以用image。 请实际测试看看结果如何。 优酷网上有视频。
    • tiach329
      Subscriber
      老师,你好,优酷网上好像没有stack的介绍


    • Guilin Sun
      Ansys Employee
      有啊! 在OLED仿真的视频里面  一秒钟优化OLED/LED设计(Lumerical官方Webinar
Viewing 2 reply threads
  • You must be logged in to reply to this topic.