内容来自于Ansys-Lumerical官方的FDTD100,网址:https://optics.ansys.com/hc/en-us/sections/360007813194 所看内容来自B站大佬UP主 【Nestor_呐等】 的幸苦翻译,特此感谢
网址:https://www.bilibili.com/video/BV1gA411e7kM?spm_id_from=333.999.0.0
内容粘贴自我个人在学习FDTD100时,通过字幕和一些个人理解总结的一份word。整理不易,强烈建议收藏,希望一键三连hhh
废话不多说,以下是正文
一、建立结构
(该部分因为比较简单,所以内容较少)
1.index一个数字,表示均匀的各向异性材料,如1.4 2.三个用分号分隔的值表示对角各向异性,如2,3,4,第一个值是x方向上的折射率,第二个y,第三个z。 3.根据变量x,y,z来定义随空间变化的折射率分布,分号分隔。 局限性:只能定义在整个频率上恒定的折射率实部。
要表示色散材料(折射率是随着频率变化的),下拉选择其他材料。
4.对2D结构图元,物质材料属性在模拟中由表面电导率来表征。2D结构可用于表示导电材料的薄膜,近似为无限薄。 结构材料包括PEC,完美导电体,RLC负载。 5.(n,k)material用于导入指定折射率在空间上变化的3D对象。通过指定3D矩形位置网格上的折射率来完成。仅用于单频模拟,不能用于指定色散材料的空间变化折射率。 6.材料的mesh order网格顺序属性用于确定当两种材料在同一区域重叠时,哪个对象具有优先权。非线性材料时,要仔细设置仿真。
7.添加新材料,选择Sampled 3D data→import data→选择合适的单位→指定哪一列对应哪些数据→finish
8.材料拟合。确保模拟材料与采样材料数据匹配,这样模拟结果才能准确。每次开始使用新材料或新光源波长范围时,都要在运行模拟前检查材料拟合。 Material Explorer的Advanced settings中的imaginary weight,虚数权重,用以设置在拟合中实数与虚数的相对权重,1表示同时考虑实部和虚部。 若对实部拟合的更好,通常是由于实数部分较大,对RMS的贡献更大。
二、仿真区域
1.对于较大的仿真体积,或者在研究强共振系统时,需要长时间衰减,就需要增加最大模拟时长。如果仿真时间太短,在频域监视器的结果中会有伪影,如在透射光谱中发现人造的波纹。 2.网格精度滑块可以设置在1-8之间,其中1表示生成的网格每个波长至少有6个网格点,2表示每个波长有10个点,以此类推,使用网格精度8,每个波长最多有34个点。折射率越高的材料,网格越小,因为高折射率的材料有效波长越小。网格精度对应于每个波长18或22个网格点的4或5被认为是高精度。在定义高精度之间,应该在初始精度为1或2的网格精度下运行。 Uniform的mesh type只允许指定沿每个方向的统一网格步长。可以通过指定该方向上的网络单元数或最大网格步长大小来指定网络。 自定义非均匀custom non-uniform很少使用。 3.时间步长设置包括DT和DT稳定因子,dt设置显示时间点,dt稳定性因子设置是倍乘因子可用于减少时间步长。默认时间步长设置通常就足够了,使用较长的时间步长会增加运行仿真的时间。但若在某些情况下,仿真不稳定,则需要较小的时间步长。最小网格步长the minimum mesh settings防止生成不合理的小网格步长的设置。生成网格的网格步长不能低于最小网格步长设置设置的限制。 4.设置仿真区域时,boundary conditions的standard适用于在所有边界上使用PML的模拟。如果是周期性的装置,能把光衍射到阶跃角(steep angle),所以选择steep angle。 5.在mesh refinemen设置网格细化方法;由于FDTD解中的网格是矩形的,曲面或与笛卡尔轴成角度的曲面,将导致某些网格单元包含多种材料。一种简单的优化选项是台阶式,它将整个单元填充为占据网格单元体积最大的材质。使用保型网格方法(conformal meshing technology)就能求解结构边界附近的麦克斯韦方程,能够更好的表示平面,从而有效的提供一定量的压单元精度。使用保型网格方法可以获得与使用具有更精细模拟网络的台阶式方法类似的精度。 Comform variant 0 是默认的网格细化选项,它将保型网格化算法应用于所有非金属材质界面。值得注意的是,保型网格算法比简单加权平均网格体积的材料要复杂的多。对于涉及金属的界面,使用conformal variant 1网格微调方法,可能会导致金属表面的人工模态,特别是当模拟网格太粗糙时。当使用conformal variant 1时,将需要额外的收敛性测试。 比较使用保型变体1和保型变体0获得的结果,建议使用时确保结果之间没有重大差异保型变体1. 6.为了精确解析厚度,建议在一层的厚度上至少应该至少有2个网格。必须在金属和介电材料之间的界面处使用细网格,这样场可以集中在表面。 设置等效折射率选项,可以指定整个体积的等效折射率,自动网格划分算法将生成适合于指定网格的折射率。 7.大多数模拟至少在某些边界上使用PML。 对大多数仿真,标准(standard)PML配置文件是最佳选择,可最大程度的吸收而不会显著影响仿真速度。 当磁场以陡峭的角度入射到PML上时,应使用陡峭的角度轮廓或掠角(steep angle),通常超过60度。为了补偿PML在陡峭角度吸收场时效率较低的问题,角度轮廓使用更多的PML层来吸收场。 当仿真遇到数值发散问题时,应使用稳定的轮廓(stabilized)。发散主要起源于PML区域。 自定义选项(custom)允许特定用户完全访问以调整所有的PML参数。 8. 有时会遇到无法选择边界条件的仿真结构。如边界处的场为零,则边界条件无关紧要。在该种情况下,金属边界是最佳的选择,因为他们是仿真最快的边界条件。 9. 理想磁导体(PMC),边界采用完美的磁导体而不是完美的电导体。 10. 在周期性边界的情况下,周期性由仿真的跨度确定。其结构、电磁场、和光源都必须是周期性的,因此,平面波源最常用于周期性的边界条件。 11. Bloch边界用于周期性的模拟,其中以一定角度注入光源。他们类似于周期性边界,其中一个边界重新出射的光从相反的边界反射。但是他们将所需的相位差添加到重新注入的光中,对应于由于光源的角度而在单位单元之间累积的相位。 12. 可以利用对称性在仿真中采用对称和反对称边界条件,在仿真中减少需要仿真的体积。在模拟区域中,当您的结构和源在中间具有对称平面时,对称边界和减小求解器需要模拟的区域的大小。 当使用对称边界时,该边界仅应用于最小边界(min),大边界(max)应设置为没有对称性的任何边界,通常是PML。
唯一的例外是对周期结构使用对称界面时,在这种情况下,在周期方向上同时设置最小和最大边界以使用对称或反对称边界。需勾选allow symmetry on all boundaries. 13. 模拟自动关闭选项在“高级选项”选项卡中设置。默认情况下,一旦自动关闭级别下降到1e-5以下或上升到1e5以上,模拟将自动结束。自动关闭级别可衡量仿真中,剩余的能量比例与注入的能量相比,如果能量下降到最小阈值以下,则表明这些场已完全衰减,不会继续运行仿真,此时结束仿真可以减少仿真时间。 若能量上升到最大值以上,则表明可能存在一些数值不稳定性,这导致磁场振幅向无穷大发散,该情况下,模拟将终止,并显示警告消息。 14. 模拟周期性结构时,最好使用周期方向上为整数的网格。为了确保每个周期都以相同的方式划分网格,这将确保结构的模拟周期性与物理结构具有相同的周期性。对于空腔或谐振腔等设备来说很重要。其中,谐振腔的质量因子和共振波长对结构的周期性很敏感。 15. 使用PML边界时,选择extend structure through pml,启用此选项后,求解器将自动扩展到任何结构接触边界的内部边缘,贯穿PML边界的整个厚度。这样可以防止在边界内存在材料界面时可能发生的反射。 在此实例中,波导终止于模拟体积的内边缘。如果不使用将会出现扩展选项,将会出现较大反射,因为波导不延伸穿过PML吸收区域。
有些情况不通过PML自动扩展结构。 如果有一个倾斜的对象,则仿真对象将垂直于PML并下方向扩展。因此,它改变了实际模拟仿真的结构体。因此应关闭此功能,并确保所建立的结构一直贯穿PML区域。 16.使用周期或Bloch边界条件时,存在类似的问题。这些边界是一个网格单元厚,如蓝色阴影所示。为了获得最准确的结果,应在边界条件内定义结构区域。这可以通过在每个结构上绘制一个额外的结构单元来轻松实现仿真区域, 17.当应用CW归一化时,频谱是一致的。 三、光源
1.考虑一个高斯光源,这里的振幅设置了源的最大电场振幅。 在模拟非线性材料时,振幅相当重要。 对于线性系统,这并不重要,因为可以使用1V/m的默认振幅来运行仿真。并可以将监视器的结果作为后处理步骤进行缩放,以得到任何所需的源频谱的结果。 相位设置设置了源注入平面中心电场的相位。如果有多个源,需要在源之间施加一个相对相位差时,需要进行设置。 Angle theta 和angle phi可用于旋转源传播方向,其中theta是到注入轴(injection axis)的夹角,phi是围绕注入轴在右侧的旋转角度。(两个角度才能确定一个方向) 极化角度polarization angle确定了电场极化的方向(蓝色箭头)。
2.当模拟线性系统时,使用set frequency/wavelength选项并指定源的开始和停止波长范围就足够了。从而生成源脉冲而不是使用set time domain来设置时域脉冲的属性。这是因为连续波归一化将使脉冲的频谱归一化,从而使结果看起来像注入了一个均匀的频谱。
3.一些使用提示。 (1)该源有一个有限的2到3格宽的注入区域,显示为一个灰色阴影区域。为避免在源注入平面出现注入误差或散射,阴影注入区域应该始终包含在一个介质中,即源注入区域不应与两个不同的物体相交。
(2)但这个约束条件在使用模式光源(mode source)注入到波导或光纤时并不适用。 4.在频率/波长选项卡下,可以使用信号vs时间图像,来确保FDTD模拟的模拟时间设置足够长,以包括源脉冲的整个时间信号。
5.模拟网格的大小将根据源的波长进行调整。更小的波长会产生更细的网孔,源波长为0.5um的网孔会比源波长为1um的网孔更细。最好在设置源后查看模拟网络。 6.源注入区域内的场可能是非物理的。因此,当设置监视器来记录场结果时,请确保将监视器放置在灰色阴影源注入区域之外 。或者,如果使用监视器来记录监视器与源注入平面相交处的场轮廓,请注意,在源注入平面周围的两个单元中测量的场可能是非物理的。
7.通常使用平面波源表示入射在周期性结构上的光束。在这些周期性结构中,光束的光斑尺寸远大于器件的周期。因此光束的宽度可以近似为无穷大。然后我们可以用一个平面波源来模拟在边上有periodic or Bloch边界的结构的一个周期。
在这里显示的用例中,周期结构的单个单元包含在模拟区域中。并在结构的上面和下面使用PML,吸收边界来吸收任何反射或透射的光。 在case 1中,光以正入射入射,Bloch/periodic平面波类型与模拟区域两侧的周期边界一起使用。 在case 2中,光以一定偏离的角度注入,如果源是单频的,Bloch/periodic平面波应该与边上的Bloch边界一起使用;**对于宽带的情况(broadband),推荐使用BFAST型源。**当使用BFAST源时,BFAST边界条件将自动在源的两侧使用。 Bloch边界条件类似于周期边界,但他们考虑了在给定的光源注入角度下,器件各周期之间的相位差。Bloch边界使每个单元之间的相位差不受波长的影响。因此,如果要在一个宽频带范围内注入光,注入的角度将随波长的变化而变化,以满足Bloch边界的相位约束条件。 例子中,虽然光源的角度设置为30度,但只有中心频率注入为30度,并且角度在频率范围内变化。因此,Bloch边界只推荐在运行单频仿真时使用。 对于宽带模拟,应该使用BFAST源类型和边界,BFAST(Broadband fixed angle source technique),宽带固定角度光源技术的简称,它允许在宽带波长范围内以恒定的角度注入光。当使用BFAST源时,BFAST边界条件将自动用于模拟区域的边界。注意,BFAST源可以用于单频模拟,但不作推荐,因为需要更多的计算时间。 8.除了使用平面波来表示无限宽的光源外,还可以模拟平面波通过给定大小的矩形孔径衍射。通过使用衍射平面波源类型来做到这一点。其中光源的跨度(spans)决定了孔径的大小(灰色线条) 例如,在著名的杨氏双缝实验中,一个平面波在两个孔径衍射,从这两个孔径发出的光之间的干涉图形被投射到远处的屏幕上。如左图,使用两个衍射平面波源来表示通过这两个孔径的光。 (该例已被仿真) 8.使用衍射平面波源时,光源应包含在模拟区域内,且不应与边界条件相交。如果想模拟开放吸收边界,可以将边界条件设置为PML。光源的跨度(spans)决定了你想要表示的光圈的大小。
9.一些常见的陷阱和纠正方法 第一个是尝试用Bloch/Periodic平面波表示衍射平面波,并设置平面波的跨度来表示孔径的大小。 不能这样做的原因是源注入平面时将自动扩展至模拟区域的全宽度,因此不能指定更小的跨度。需要使用衍射平面类型来设置一个特定的跨度。 第二个例子是使用Bloch/periodic平面波类型以一定的角度传播的宽带源,光传播角度会随着频率的变化而变化。相反,可以使用BFAST平面波以一个恒定的角度注入所有波长的光。 第三个,对非周期的器件使用Bloch/periodic平面波,当使用非周期边界(如PML或metal)时,这将截断模拟区域两侧的源,并导致如图所示的边缘效应。相反,应该使用有限大小的光源,如高斯光束或全场散射场光源。 最后,不能使用BFAST平面波来模拟非周期器件。这是因为BFAST边界假设了一个周期结构。所以从模拟中得到的结果源是无限宽的。结构是周期性的,其周期等于模拟区域的跨度(spans)。应该使用有限大小的光源,如高斯光束或全场散射场光源。 平面波的常见应用:太阳能电池、CMOS图像传感器、超材料和衍射光栅。 10.全场散射场(total-field scattered-field,TFSF)源注入有限跨度的平面波,并将计算区域划分为两个区域。在源区内部同时存在入射场和散射场,而在源区外部只存在散射场。全场散射场源的工作原理是在其边界处,减去直接透射通过源区域或从平坦基板反射的任何光。因此,只有被完全包含在源区域内部的特征散射的光,才能穿过边界并传播到散射场区域。
11.当光源注入没有散射物体的自由空间时,平面波从源区的一侧注入,在另一侧减去,由于没有散射,场在源边界外为0. 当存在基底时,任何直接反射或透射过基底的光都会在边界处减去,光源可以确定场的哪一部分对应于直接透射和反射的光,通常使用源的一个边界作为参考边界。测量沿该边界的结构的折射率分布,并且可以计算将由参考折射率分布直接反射或透射的场,这就是在仿真过程中边界处减去获得的。 由于参考边缘的折射率监视器对这个计算很重要,光源的边沿应该总是穿过衬底。 全场散射场适用于吸收材料和各向异性材料,也适用于多层基片。它可以用来模拟独立的散射物体或结合periodic或Bloch/periodic边界条件的周期结构
12.如果在侧面使用PML边界来模拟单个独立散射体,则源不应该扩展到PML中。
如果模拟一个周期结构,源可以扩展通过周期边界。 如果有基底,源注入轴应垂直于基底。 如果有衬底,则源的边界应与衬底相交。 光源不应和散射物相交。 使用全场散射源的应用有三重散射和缺陷检测。当希望能够将散射场与总场分开并仅对散射场进行分析时,总场散射场源非常好用。例如通过获取散射截面或在远场中散射光的角度分布。 13.高斯源类型注入具有高斯场分布或柯西-洛伦兹分布的光束,这种类型的光束常用于表示入射光束,那些希望在模拟区域中包括光束的全场分布。
计算光束场分布的方法有两种:标量近似法(scalar approximaion)和薄透镜法(thin method)。标量近似法假设光束在传播方向上不包含任何场分量,所以所有场都在垂直于传播轴的横向平面偏振,只要束腰直径比光源的波长大得多,这种近似就有效。标量近似光束的参数可以是束腰直径(beam waist radius)和束的入射面束的焦平面距离d(distance from waist)的组合。或者是束在入射面半径和束的发散角(divergence angle)的组合。
若焦平面(focal plane)位于注射平面(injection plane)的前面,则腰围距离(distance from waist)可以设置为负数,以便指定汇聚光束。或者可以将其设置为正值,以指定随着光束从注入平面传播而发散的光束。
对于束腰直径约为或小于光源波长的更高聚焦光束,则标量近似(其直径应该是波长的四到五倍左右)就失效了。应改用薄透镜法(use thin lens)。但注意,薄透镜法仅适用于高斯型光束,不适用于柯西-洛伦兹光束(Cauthy-Lorentz)。 薄透镜方法注入全矢量光束(fully-vectorial beam),其中光束轮廓是通过以不同角度传播的平面波之和来计算的,表示从给定数值孔径的透镜得到的光束,以及透镜被照明部分的入射直径与透镜总直径之间的给定的比值。 束腰半径不是使用薄透镜法时可以指定输入的一个参数,为了产生具有给定束腰半径的光束,可以设置焦点距离属性(the distance from focus property)为0,在焦平面计算场分布和不同的数值孔径,获得所需的束腰半径。 通过点击“光束选项”(beam options tab)选项卡中的“可视化光束数据”(visualize beam data)按钮,可以查看计算出的光束轮廓。
对于宽带模拟 ,应该选择“多频点光束计算”(mutifrequency beam calculation)选项,允许注入的束剖面在宽带范围内变化,在所有波长内保持较好的光特性。 这里的图像显示了一个光束从图的右下方入射到一个表面上,并且光束传播的角度随频率而变化。
当注入光束时,要小心的一件事是避免在边缘处切断光束(确保光束的场振幅在源区域的边缘衰减到0),这会导致衍射效应。
利用高斯源的应用有光子集成电路、热辅助磁记录、CMOS图像传感器和显微镜成像。高斯光源可以用来表示入射的激光光源,也可以用来表示具有给定数值孔径的物镜发出的光。 15.在运行完整模拟之前,可以在自由空间中对光源进行模拟,以确保注入了所需的光束。如果使用标量近似,可以通过使用源后面的监视器来测量向后散射功率的量,来估算该逼近是否有效(反射低于0.01%)。或者另一种方法是在信号源前面使用监视器并检查信号源前面的传输,查看传输量与预期值1有多少差异。
高斯光束具有明确的偏振方向,为了表示非偏振光束或圆偏振光束,可以使用正交偏振光束运行两个模拟,将结果相加,作为后处理步骤。为了表示除高斯或柯西洛伦兹以外的其他光束,可以使用导入源指定自定义场。
16.模源(mode source)可用于注入波导或光纤的模。该模态源包括一个综合模态求解器,利用有限差分特征模态求解算法计算给定结构截面模态的场分布。 模式解算器假定结构的截面沿着传播方向不变,因此不能用于求解Bloch模式,即沿传播方向具有周期性的波导的3D模式,例如光子晶体波导。 为了设置模式光源,光源应该放置在波导或光纤的横截面上。采用FDTD求解器区域的模拟网络,作为支撑模态场的计算网络。为了提高计算模态剖面的空间分辨率,可以对模拟网格进行细化。
模式源设置允许指定是否要查找具有给定弯曲半径(bending radius)的直波导(straight waveguide)或弯曲波导(bent waveguide)的模式。还可以指定旋转角度,以便在波导与x,y或z轴不对齐时匹配波导的角度。
可以选择注入基本模式(fundamental mode),即具有最高有效指数的模式。或基本TE或基本TM模式,他们对应于具有最高有效折射率的形式。并具有所需要的类TE(TE-like)或类TM(TM-like)极化。 在FDTD求解中,类TE模态对应于沿x轴注入的源电场极化主要沿y方向的模态,而沿y轴或z轴注入的源电场极化主要沿x方向的模态 。 选择用户选择(user select)的选项,选择模式(select mode)按钮,打开一个新窗口,可以指定高级模式解决设置等一系列trial模式,以及用于搜索附近的有效指数以及模式求解器区域的自定义边界条件。使用指定的模式求解器设置计算模式后,模式将出现在窗口顶部的模型列表中。可以从模式列表中选择一个模式来绘制该模式的场分布,可以在模式列表中查看有关计算模式的详细信息,如模式的有效折射率、损耗和偏振分数(polarization fraction)。 极化率计算和波导TE/TM分数的公式列在下图。
模源可用于光线仿真和集成光学元件的仿真,如波导耦合器、环形谐振器、和Y性结(y-branches)
注入波导的支持模式的主要应用是提取集成光学组件的s参数(S-parameters),可以不使用模式源,而是使用端口对象。端口对象专门用于S参数提取,端口(ports)同时作为模式源和监视器来计算和返回S参数的结果,简化了S参数的提取过程。 17.偶极源(the dipole source)是发射偶极辐射模式的点源,电偶极源(elec)ric)和磁偶极源(magnetic)。 电偶极子相当于震荡的点电荷,而磁偶极子相当于电流环。
在均匀环境下,偶极源发射的功率可以解析计算,并利用解析的辐射功率对监视器的传输结果进行归一化。
偶极子发出的实际功率取决于偶极子周围的环境结构,以及是否存在其他源。周围结构反射回来的光,或者从周围的偶极子反射回来的光,都会对偶极子发出的光产生相长或相消地干扰。例如,如果偶极子被放置在金属壁的旁边,利用成像的方法,金属壁可以被镜像偶极子代替。这样系统就相当于注入两个偶极子,相互相干地干涉,改变总辐射功率。
源实际辐射的功率与注入均匀介质中的功率之比为“波塞尔因数”(Purcell factor)。
运行模拟后,偶极子源返回结果偶极子功率,Purcell、频谱和时间信号。偶极子能量的结果(dipolepower)给出了均匀介质中偶极子注入的解析功率作为频率的函数,Purcell结果给出了作为频率函数的Purcell因子,spectrum结果给出了源脉冲的傅里叶变换,time signal给出了源脉冲的时域幅值。
在默认情况,监视器的功率传输结果通过在均匀环境中偶极子注入的分析计算出的功率进行归一化,可以将传输结果油偶极子注入的实际功率重新归一化,通过将传输结果乘以Purcell因子,Purcell因子可以从源的Purcell结果中获得,或通过在偶极子注入区域周围放置一监视器来测量流过该监视器的净功率。然而,如果偶极子被放置在吸收介质中,由于来自源的偶极功率结果可能不准确,在计算Purcell因子时需要格外小心。 单个偶极子源将注入偶极子辐射模式,如左图所示。为了模拟发出均匀各向同性辐射方向模式的点源 ,可以运行3个具有正交偶极子方向的仿真,然后对这三个仿真的场进行平均。
偶极子源可以用于激发空腔和谐振器的模式,或代表点源,例如有机LED设备中的自发发射。也可以用来表示荧光团来模拟荧光增强,因为荧光团的衰减率与偶极子的辐射功率有关。偶极子还可用来激发周期晶格的模,用于计算周期晶格结构的能带结构。
一些技巧: 避免将偶极源放在布洛赫(Bloch)边界附近,在源注入区域和Bloch边界之间应至少使用1个网格的距离,以避免源注入错误。 41.导入源(the import source)可以自定义光源的入射,源的场剖面数据可以来自于先前模拟中测量的监控器数据,也可以来自其他软件,例如第三方光线跟踪工具,也可以使用脚本基于公式计算。
若将上一个仿真中的监视数据用作后续仿真的source,这样做可以将大型仿真分解为两个或多个仿真。例如,这种结构是锥形的,可以将光引导到狭窄的波导中,并且在狭窄的波导的开始处,有一个小的粒子。与其余结构所需的网课相比,他需要更加精细的网格才能加以分辨。 在这种情况下,可以将其分为两个模拟,其中模拟的第一部分模拟设备的锥形部分,并使用监视器来测量锥度末端的场。然后可以将监视数据保存到数据集中,并在第二个模拟中加载到导入源,进而模拟锥形的末端以及窄波导和粒子的起点。因为精细网格只需要在第二次模拟中使用,最终的结果是功率随粒子传输到窄波导中。这样比在整个模拟过程中使用细网格进行单个大型模拟要快得多。
要从光线跟踪软件中导入数据,首先检查射线追踪器(ray tracer)是否能够将数据导出为.fld文件格式,该文件格式可以直接加载到导入源中。否则,数据可能首先需要格式化为ractilinear dataset数据集,以便导入source加载。
数据集格式需要空间上复杂的电场数据,源的磁场分布和频率范围是可选的。可以在空间位置的统一或非统一网格上提供数据。
数据集可以先保存到.mat文件,然后加载到导入源中。或者如果数据集已加载到脚本工作区(script workspace),import dataset脚本命令可用于将数据加载到导入源中。
数据导入后,将根据导入的场数据自动设置源传播轴和跨度。但仍然可以选择传播方向,并修改光源的波长范围。尽管可以为导入源指定相应设置,如果指定的字段配置文件没有实际物理意义,则在运行模拟时注入的光源不一定能够传播。因此,可以尝试在没有结构的情况下运行模拟,在源注入平面正前方有一个监视器,用于测量通过监视器传输的功率。如果并非所有功率都在传播,则最终的传输值将偏离1,字段配置更新文件应更新为物理上更准确的配置文件。或通过源实际注入的功率对模拟中的任何功率结果进行归一化。
导入源可用于指定自定义光束轮廓,如未内置到软件中的贝塞尔光束,或者径向偏振光这样的光束的自定义偏振。
四、监视器
1.折射率监视器可用来测量结构的折射率,时间监视器可用于测量电场随时间的变化,频域功率监视器可以用于记录传输和反射。 默认情况下,所有监视器频域监视器都使用全局属性,可以设置记录数据的波长或频率范围,以及在指定范围内记录的数据点数。默认情况下,数据点在整个频率范围内均匀分布,也可以选择在整个波长范围内的均匀记录数据(use wavelength spacing)。在高级选项卡中,您可以设置所需的采样率。默认情况下,根据源的频率范围将其设置为Nyquist limit。对于线性仿真,不需要调整此采样率。但如果运行非线性仿真,想要测量高于光源频率的场强数据,则可以提高采样率以获得准确的频域仿真结果。
下面可以设置向下采样(down sampling),可以帮助减少监视器记录的数据量。例如,若向下采样设置为2,这意味着将沿x方向每2个网格单元对数据进行平均,从而将记录的数据量和所需的内存减少一半。设置为1表示不应用空间下采样。
FDTD Solutions是时域求解器,因此可以通过对时间信号进行傅里叶变换来获得频域监视结果。
如果在模拟区域边界条件中使用了对称性边界条件,则监视数据将根据指定的对称性展开以提供完整的场剖面图。 2.时间监视器 从电场随时间变化的曲线图,可以检查模拟时间是否足够长(以使注入的源脉冲有时间传播通过、完全衰减或离开仿真区域)。
从E或H场的频谱图中,可以通过频谱中峰的位置找到空腔的共振频率。在能带结构模拟中,我们注入光以激发光子晶体结构的模式,并确定共振频率以确定晶体的频带。 时间监视器的另一个用途是记录和返回插件材料(material plugins)中的数据。
3.由电介质板制成的光子晶体腔谐振器,具有蚀刻到形成腔的板中的孔图案。添加时间监视器以测量空腔的谐振场,查看场的频谱以确定被激发的谐振频率。 Start time设置为75.通过延迟时间,可以尽量避免测量引起谐振腔的初始源脉冲,而仅测量激发模式的谐振场。这也意味着在绘制的频谱结果中,将不包括源脉冲的频谱,而仅包括谐振模式的频谱。 将监视器的位置从中心偏移一定距离(0.1um)的原因是:有时共振模式将在中心处有一个节点,表示模式的场在中心为0.对测量场的位置进行位移可以减少探测器无法探测到任何谐振场的事情发生的概率(对称中心恰好完全共振相消)。
为了获得频谱结果(即时域数据的傅里叶变换),时间监视器类型必须是点监视器。如果要在多个位置获取频谱,可以使用多个点时间监视器。 4.在模拟过程中,计算的fields是在模拟网格上计算。因此,如果模拟网格比电影分辨率低,则通过增加电影监视器的分辨率,最终的结果中的fields看起来不会更平滑。 使用过小的比例尺会导致电影饱和,或者使用过大的比例尺会导致非常微弱的辐射图,很难分辨出来。通常,在0.1到1之间的比例能够满足要求。 这个没有颜色条来显示场强的大小,因此该影片用于获得有关场如何随时间传播,而不适用于获取定量结果或场值。
发散仿真是一种包含一些数值不稳定性的仿真,它导致磁场幅度向无穷大发散,常见原因是PML边界不稳定或特定材料(如具有增益的材料)的不稳定性。
(或从特定结构的内部开始饱和,表明材料的不稳定) 5.电影监视器会使仿真的时间变得更长,因此当在进行参数扫描的时候要禁用电影监视器,只有当需要的时候才使用。 47.Frequency-domain field profile和Frequency-domain field and power两种监视器类型之间的唯一区别是使用的空间插值方法。 Profile monitor使用指定的位置插值(specified position),而power monitor使用最近网格单元插值方法(nearest mesh cell)。在大多数情况下,这两个监视器的结果将非常相似。
如果监视器记录了所有E和H场分量 ,则可以从监视器投影场中获取远场角分布。如果对天线的辐射方向图、粒子或缺陷的散射方向图感兴趣,则可能需要获取远场角分布的示例。
频域场监视器的“频谱平均和变迹”(special averaging and apodization)选项卡设置,可选择通过应用变迹来选择从时间信号的指定部分计算,并返回全部或部分频谱平均结果或返回场结果。 如果要获得共振场的场分布图,而又不包括注入来自原始源的场以激发共振的效果,或者想尽早结束模拟,截断时间信号的效果,则变迹很有用。
6.选择“覆盖全局监视器设置”(override global monitor settings),可以设置频率点个数。在大多数情况下,使用全局监视器设置是非常方便的,覆盖他们并不常见。若覆盖此处的设置,则是希望不同的监视器记录不同数量的频率点。 频率点设置为1表示仅在源范围的中心频率处进行记录。 10个频率点,监视器会记录十个不同的波长处绘制场强。
可以在弯曲或成角度的平面中获得结果,一种选择是添加大量的点监视器以重新创建所需的线或面;第二种选择是从轴对齐监视器收集数据,然后在后处理步骤中使用插值,对象库中有一个名为“角度监视器”的分析组,可用于此目的。
7.模式扩展监视器(mode expansion)可以分析传输到波导或光纤中的任何感兴趣模式的功率份额。它通过将波导或光纤截面测量的场扩展到波导或光纤中的受支持模上来工作。 模式扩展监视器本身不测量任何模拟数据,而是获取由指定频域场监视器测量的场强数据,并将监视器数据扩展到所选的模式上。推荐使用Frequency-domain field and power监视器,因为它与frequency-domain field profile监视器相比,插值误差较小。
对于宽带模拟,建议增加波长范围内的频率点数,以计算波导或光纤支持的mode profiles.因为mode profiles可以随波长变化。并由于模态场通常使用少量频率点在波长范围内缓慢变化,例如3或5个点就足以获得准确的结果。
在每个选定模式与频域监视器测量的场之间执行重叠计算,为了确定给出该模式下运行的功率分数的系数。对于宽带模拟,如果计算模式的频点数量与频域场强监视器测量的频点数量不匹配是没有问题的。因为mode profile的数据将会插值处理由frequency domain field监视器测量的数据。
运行模拟后,模式扩展监视器将返回此处列出的扩展结果。传输结果T_total,T_net,T_forward,T_backward给出了通过监视器的总传输量、所选模式的净传输、所选模式的正向传输、所选模式的反向传输(这里的正向和反向是坐标轴的正负方向)。a和b的结果是所选模式的正向和反向传播波的复数传播系数,这些系数可用于计算S参数。
7.在窗口右侧的模式选择下,选择“user select”,这将允许计算模式列表并选择感兴趣的多个模式,单击选择模式按钮(select mode),然后在弹出的窗口中单击计算模式按钮(calculate modes)。我想知道在基本TM模式和一阶TE模式(他们是模式列表中的第二和第三模式)下传输的功率比例。在模式列表中选择两种模式后,单击“选择模式”按钮(select mode).
沿图的x轴绘制值n,n对应模式扩展监视器的所选感兴趣模式的模式编号,由于本例中选择了输出波导的基本TM模式和一阶TE模式,相对应第二和第三模式,对应于n=2,n=3的数据。对于T_total结果,他给出了在所有模式下通过场监控器传输的净功率。这是一个大于n的恒定值,因为结果适用于所有模式,并不特定于您选择的模式。 结果越接近1,就意味着流过监视器的几乎所有功率都沿着正x方向传播。 双击属性选择T_forward,给出了每个选定模式下沿x正方向传播的功率。因此,几乎80%的功率仍以一阶TE模式运行,而只有不到20%的功率已转换为基本TM模式。
T_backward给出在选定模式下沿负x方向传播的功率,该功率很小。T_net是T_forward减去T_backward.
场和选定模式之间的扩展计算是相对于模式扩展监视器和频域监视器的中心位置进行的。因此确保两个监视器相对于波导位于同一相对位置的中心很重要。否则,用于扩展的计算模式实际上不会代表结构的实际支持模式。可以通过绘制模式轮廓并确保边缘的场衰减为0来检查此情况。 即使在运行模拟之前,计算出的模式配置文件的数据也可能导致模拟文件很大。如果要减小文件大小,可以使用“清除模式数据”(clear mode data)按钮清除计算的模式数据,然后选择“用户选择”模式选择选项,这样在保存文件时不会自动计算模式配置文件。
8.端口(ports)可用于提取S参数,尽管他们不是严格的监视器。端口充当频域功率监控器、模式扩展监视器和模式源的组合。他们主要用于提取设备的S参数,S参数是用于表征设备传输和反射特性的散射参数,通常用于执行电路级仿真,其中电路的每个元素均由其S参数表示。 左图显示了CAD视图中的端口,右图显示了源和监视器的等效组合。由于端口对象具有单个对象中的所有功能,因此和设置源和监视器的组合相比,端口设置更加地简单 。
可以从顶部工具栏的端口菜单中添加端口对象。添加端口后,端口组将自动生成对象树(Objects Tree)中FDTD模拟区域对象的子级。 端口组(the port group)是一个包含所有端口对象的集合体,可以指定其中模拟时的哪个端口将充当源以及该端口将注入哪一种光源。由于端口是FDTD模拟区域的子级,因此这意味着必须在添加端口之前添加模拟区域。 CAD视图中的箭头显示端口的输入和输出方向。在源注入方向上有一个粉红色的箭头,表示模式将被注入的活动端口。其他端口在端口的输入方向上具有红色箭头,绿色箭头指示每个端口的输出方向。 在端口对象中,可以选择想要的模式。与“模态属性”选项卡(modal properties tab)中的模式扩展监视器相同。
也可以直接在“阻抗”(Impedance)选项卡中选择计算所选模式的特征阻抗,特性阻抗是通过功率除以平方电流来计算的。功率是通过在模式的横截面面积上积分poynting向量来计算的,并通过对围绕模式的环路周围的磁场进行积分来计算电流。启用特性阻抗计算后,您可以指定要在其上计算P和I值的积分区域。模式的有效折射率neff、模式场以及特征阻抗的结果可以在运行仿真之前得到。
运行模拟后,你还可以获得S结果,以及模式扩展监视器可以提供的所有结果、场功率监视器、和端口模式扩展下的模式源、端口监视器结果,和位于“结果视图”窗口的各个部分中端口源的结果。 要获取器件的S参数,通常需要运行多个仿真,如果设备没有对称性,则需要进行一次仿真以获得S矩阵的每一列,其中在每次仿真中,激发一个端口模式,并测量通过其余端口的反射和透射。运行和收集完整S参数的结果可以使用S参数扫描工具自动进行。运行扫描后,您可以选择将S参数数据从扫描导出到.dat文件,该文件可以加载到Lumerical的电路仿真工具INTERCONNECT中。
9.该仿真包括一个极化转换器,可在窄波导的基本TM模式和宽波导的一阶TE模式之间转换。我们将在输入和输出波导上添加端口,并提取该设备的S参数。
单击主工具栏“端口”两次,添加两个端口。默认情况下,端口的几何形状与模拟区域宽度匹配。 选择并编辑端口组。可以在此处指定源端口和模式,以及内部频率监视器在整个波长范围内记录的频率点数。这些端口将注入在全局光源设置中指定的波长范围内的光。要对此进行修改,请单击“设置全局源设置”(set global source settings)按钮。 10.因为监视器在运行模拟之后包含数据,当您以分析模式保存模拟文件时,结果文件的大小将比在布局模式下保存的文件大。 11.通过一个设计锥度的最佳形状的示范工作流,这里用包含变量m的方程来描述锥度宽度。 希望能够找到使通过锥度的传输达到最大的m值,我们可以使用一个粗网格,然后扫过m的大范围,得到一个在哪里传输最大的大致范围。然后缩小要扫描的m范围以获得最终的结果,为了确保结果准确,可以对单一设计进行收敛测试,确定达到所需精度水平的设置。可以使用这些更高精度的设置,对较小范围的m值进行第二次扫描,得到可使通过锥度的传输最大化的最终m值。
五、仿真结果
1.数据类型 结构是元素数组,其中每个元素可以包含任何数据类型或数据集。 数据集是包含与相关参数打包在一起的数据的对象。有三种不同类型的数据集,矩阵,直线空间和非空间数据集。 在FDTD中,来自监视器的数据通常以字符串的形式返回(例如监视器名称)、矩阵(如监视器的x span)、矩阵数据集(例如传输作为频率的函数)、和直线空间数据集(例如作为空间和频率的函数的折射率剖面)。 数据集包含两部分:属性和参数。 如果属性在不同的时间点或空间的不同位置返回,参数将包含与数据点对应的时间和位置变量。 有三种不同类型的数据集:矩阵集、直线空间数据集和非结构化空间数据集。矩阵数据集包含与位置无关的参数;直线空间数据集包含属性,其中数据在x,y和z位置的网格上给出,所以参数包括x,y,z.这通常用于从FDTD模拟返回监视器数据,因为监视器在模拟网格的直线网格上测量数据;非结构化空间数据集包含有限元素网格上的数据,就像这里显示的网格。 FDTD中的监视器数据将不会以非结构化空间数据集的形式返回,但你也可以用这种格式从有限元素求解器中导入数据。例如,在设备中使用传热求解器计算出的温度分布曲线。非结构化空间数据集中的参数将包括x,y和z向量,它给出了有限元网格中每个顶点的位置,以及描述顶点是如何关联的连通性矩阵。
这是参数扫描生成的数据集的可视化表示,在扫描过程中,杆的半径和高度是变化的,反射被测量。反射数据为二维矩阵,高度和半径数据为一维。反射数据是属性,高度和半径是参数。因为没有相关的空间位置数据,所以这是一个矩阵数据集。
这是包含以下内容的数据集表示,包含作为空间和频率的函数从监视器得到的电场数据。每个场分量的电场数据为四维矩阵,为了在图中表示出来,属性被绘制成多个3D矩阵,每个矩阵包含一个频率点的数据。X,y,z位置向量,频率和波长都是一维矩阵。电场数据是属性和x,y,z和波长,频率是数据集的参数。由于数据是通过直线网格位置返回的,数据集是一个直线空间数据集。
使用数据集的优点之一是:当在visualizer窗口中绘制数据时,很容易解释这些数据。因为参数和参数值的范围是自动标记的,
2.通过右击结果视图窗口中的数据并选择“发送到脚本”选项(send to script),可以将监视器数据发送到脚本工作区(script workspace).
还可以使用脚本提示符(script prompt)或脚本文件(script files)在脚本工作区中定义新的变量。
脚本工作区窗口列出了脚本环境中可以访问的所有变量,脚本工作区列出变量名,左侧的图标指示数据类型。 使用命令Ex=E.Ex从E数据集中提取E字段的x分量,使用命令savedata(“filename”, Ex)将它导出到一个Lumerical数据文件中。这将生成一个文件,使用loaddata脚本命令再次加载该文件。 脚本收藏夹(script favorites)窗口允许保存脚本命令或一组脚本命令,并从图形用户界面运行这些命令。如果经常使用同一组脚本命令来计算特定的结果,那么这将非常有用。要向收藏夹列表添加一组脚本命令,右键单击脚本收藏夹窗口,选择“新建命令”(new command)。然后输入您想要保存的脚本命令。然后可以通过右键单击并选择“run command”来运行这些命令。
下面一段脚本将从脚本工作区中的E变量中提取特定频率点的电场数据,并绘制数据。 发送数据从监视器到脚本工作区,并在脚本收藏夹窗口运行该命令。 3.分析组(analysis groups)可以对监视器数据进行后处理,设定自定义结果。 例如,这是一个分析组,其中包含一个监视器框,在模拟运行后,分析组脚本收集通过组成盒子侧面的每个监视器的传输,并对传输进行求和,以得出自定义结果流入或流出盒子的净功率。 分析组可以包含结构,源和监视器,并且它们还能够使用安装脚本来设置这些对象的属性。分析脚本用于从组内包含的监视器收集结果并计算新结果。 从主工具栏中的“组”按钮(Groups)添加新的空分析组,编辑分析组时,可以在“设置”(Setup)选项卡下的“变量”(variables)选项卡中自定义属性,然后可以在“脚本”选项卡(script)下的设置脚本中使用这些自定义属性。设置脚本(setup script)可用于添加或删除组中的对象,以及设置组内包含的对象的属性。 在“分析”选项卡(Analysis)下的“变量”选项卡(Variables)下,可以添加分析脚本能够使用的输入变量。还可以添加由分析脚本计算的结果名称,该结果将在分析组脚本数据运行计算后得到。 在“脚本”选项卡下,可以使用分析脚本从分析组中的任何监视器收集监视器数据,然后可以计算用户自定义的结果。 该组可以是一个构造组(construction group),这意味着该组中的对象会在每次运行安装脚本时被删除,并从头开始重新设置。或者如果未选中构造组选项,该脚本只会修改组内现有对象的属性,而不会添加或删除该对象。 组只能修改或访问组中包含的子对象的数据,而不能影响对象或从父对象或兄弟对象中的组之外的对象获取数据。 组也可以嵌套,可以将分析组的结果可视化并以与监视器结果相同的方式使用。并且可以在参数扫描中使用分析组变量。 也可以使用群组和结构组(container groups and structure groups)。群组没有能力设置任何对象的属性或收集监视结果以进行分析,结构组用于设置结构的属性,但是它们不能包含监视器或源,也不能收集任何结果。 对象库(the object library)包含已经设置的结构和分析组,可以直接将其插入到仿真中。与从头开始设置和编写分析脚本相比,使用对象库可以节省时间。 4. 可以从可视化工具窗口中的工具栏上的按钮或绘图选项中的“导出到…”按钮将图形导出到图像文件。 Lumerical工具使用扩展名为.ldf的Lumerical数据文件,可以将数据保存为.ldf格式,并将其加载到另一个模拟文件中。脚本工作区中的任何变量都可以保存到Lumerical数据文件中,因此这可以是已发送到脚本工作区的监视数据或脚本工作区中的用户定义变量。一旦关闭模拟文件,脚本工作区数据就会丢失。 也可以使用剪贴板(Clipboard)选项将在可视化工具中绘制的数据复制到剪贴板,以便可以将其粘贴到文本文件或电子表格中。 5.由于FDTD方法无需近似即可求解麦克斯韦方程组,因此FDTD模拟的主要误差源来自因空间和时间离散,使用人工PML吸收边界而造成的数值误差,以及宽带材料的拟合误差。无法精确表示结构的曲面,因此通过模拟网络对空间中的模拟体积进行离散化会引入误差。当从Yee单元上计算字段的位置进行内插时,还会引入一些监视器内插错误。与理想情况相比,介质中的模拟光速与理想情况之间也存在差异,这是由于离散网格被称为网格分散,当使用网格步距较小的较细网格时,所有这些错误都会减小。 如果使用了吸收PML的边界条件,则如果边界太靠近结构放置,则结构的疏逝场与PML材料之间会发生场耦合,从而引入误差。PML材料也可能存在反射,通过将PML边界放置在更远离任何散射物体的地方,并增加所使用的PML材料的层数,可以减少此错误。 材料拟合中的错误可能不会包含在收敛测试过程中,因为通常可以在运行任何模拟之前修改材料拟合系数来减少该误差。 要量化收敛水平,可以从仿真中选择有用的结果。例如,如果要模拟粒子散射,可以将得到的结果选择为粒子的散射横截面(sigma)的值。如果已通过分析知道了正确的结果值,则可以使用此处的公式计算模拟结果中的绝对误差。 但是,通常没有解析结果可以与模拟结果进行比较,因此你可以使用以下方法估算由于特定误差源而引起的绝对误差。 6.可能影响频域监控结果准确性的另一个因素是仿真时间,由于频域结果是通过对时域场进行傅里叶变换而获得的,因此信号的截断会在傅里叶变换中带来错误。最大的模拟时间是FDTD求解器区域的设置。在此示例中,对于环形谐振器,当使用700fs的仿真时间时,仿真将在磁场有机会完全通过器件,导致引入端口的传输频谱出现波动。频谱中的峰也稍微偏移了,并且峰的幅度也与使用2000fs的较长仿真时间的情况不同。 几种方法可以判断是否达到自动关闭阈值: 一种是在模拟运行时监视“job manager”窗口,你可能会看到模拟在进度条达到100%之前结束,并且表明模拟提前结束了。 还可以通过检查FDTD求解器区域对象返回的“状态”结果来判断。如果状态为1,则表示模拟运行到了整个时间而未达到自动关闭级别;如果为2,则表示已达到自动关闭阈值。 还可以检查模拟日志文件,保存在当前工作目录中。如果触发了提前关闭,它将包含消息“early termination of simulation,the autoshutoff criteria are satisfied”
六、一些常见的问题和注意事项
1.100um厚的玻璃透射率计算为0. 仿真时间太短,对于有玻璃的模拟,玻璃不能太薄,会出现干涉条纹。 2.光源的纵坐标表示相对强度,最大为1
3,反射率有大于1的地方——没达到auto shutoff min就停止运算,或者结构的谐振比较强,达到auto shutoff min后有些波长的谐振仍然持续。解决办法——增加仿真时间,同时减小auto shutoff min或使用mesh将计算网格进一步细化。 4.profile和power monitor的区别:profile网格化计算,需要插值计算,有一点误差,求算一个严格指定区域的场分布;power位置变化不超过半个网格,以减少插值带来的误差,计算透射率和功率。 5.FDTD软件中的光源光谱是宽光谱,因为用的是时间脉冲光源。即使wavelength span设置为0(严格单色光),也只是让监视器只记录这个波长的结果。严格单色光在时间上无限,而FDTD只能计算有限时间。(超短脉冲的脉宽与谱宽成反比) 6.Frequency points的设置——透射反射计算选50个点即可,曲线变化激烈,100-200个,太多计算缓慢;Profile监视器建议5个左右,特殊情况10个。 7.time monitor的设置——一般设置在场变化剧烈或者强度变化较大的地方,用来查看脉冲的衰减情况。 8.数据阵列与监视器大小并不是严格的正比关系——网格大小是按照器件内最短波长的几分之一设置的,Mesh accuracy 2M对应1/10,3对应1/14,4对应1/18等。如果结构都是一种介质,网格就是均匀的。 9.线偏振光——单独选择的某一光源(如 plane wave)本身就是线偏振的;圆偏振光——将2个plane wave的振幅设置一样,偏振角垂直;椭圆偏振光——将2个plane wave的振幅设置不一样,偏振角垂直。 10.conformal variant 1——通常只适合在低折射率对比的情况下使用(接近背景折射率1),以充分利用共形计算的能力。