当前位置:文档之家› FDTD solutions 经典问题集

FDTD solutions 经典问题集

加拿大Lumerical微纳光学软件FDTD Solutions经典问题集赵海军Email:zhaohj@https://www.doczj.com/doc/209205156.html, Tel:136 **** ****

基于时域有限差分法(FDTD)的高性能多处理器麦克斯

韦方程求解软件,可用于纳米光学器件、过程和材料的设

计、分析和优化。

1. FDTD Solutions概述

FDTD Solutions是一款高性能三维麦克斯韦方程求解软件,能够用来分析波长尺度特征的复杂结构与紫外、可见和红外辐射的相互作用。通过其特有的多系数材料建模功能,FDTD Solutions能够准确地模拟宽波长范围内的材料色散,因而用户能够高效率地计算器件在很宽谱带内的响应。其高度优化的计算引擎能够充分利用多核计算系统--从笔记本电脑到高性能计算集群,以及内置的优化模块能加速优化纳米光学器件,FDTD的Solutions是光电子设计行业专业工程师和科学家的首选。

2. 使用FDTD Solutions主要功能

?可以进行虚拟原型的试制,从而降低昂贵的物理原型试制;

?可以充分利用最先进的计算系统进行大量的设计评估;

?可以方便客户快速的运用,从而提高生产力。

3. FDTD Solutions主要特点

?自适应网格技术—内存需要小

?超短的脉冲光源—仿真速度快

?共形网格技术—仿真精度高

?Bloch边界条件—斜入射平面波

?多系数材料模型及其显示—高精度材料特性

?集成性:一款软件不拆分,充分发挥FDTD的全部功能

?FDTD 8.5 可以添加几乎任意材料

–各种非线性(泡克尔,克尔,磁光等)

–增益饱和材料

–时变材料

?强大的文本程式脚本语言

?自动视频输出

?同时获得时域数据(实数)和频域数据(复数)!

?包含优化模块

?包含共形网格技术在内的高级网格算法

?任意旋转的模式分解监视器

?模式光源可以任意旋转

?直观的视觉化工具

?……

4. FDTD Solutions主要应用

FDTD Solutions用于解决各种各样的应用,涉及光的散射、衍射和辐射传播,如:

已经用于许多工程问题,部分如下:

了解更多信息(EN)?

固体照明

LED的亚波长纹理结构增加光萃取效率,但需要像FDTD Solutions这样

的软件工具来优化LED的微结构。

了解更多信息(EN)?

5. 重要资料索引

软件官方网站:https://www.doczj.com/doc/209205156.html,/cn/tcad-products/fdtd/

FDTD Solutions 8.6版最新简介:https://www.doczj.com/doc/209205156.html,/cn/tcad-products/fdtd/

MODE Solutions 6.5版最新介绍:https://www.doczj.com/doc/209205156.html,/cn/tcad-products/mode/ INTERCONNECT 3.0版最新介绍:https://www.doczj.com/doc/209205156.html,/cn/tcad-products/interconnect/ DEVICE 3.0版最新介绍:https://www.doczj.com/doc/209205156.html,/cn/tcad-products/device/

Q1:电场分布图中右边标尺上的数字的意义是什么?

A:这个要看你在Visualier里怎么设置了,如果是缺省设置,它是总电场的绝对值,即sqrt(Ex^2+ey^2+ez^2)。你可以在里面设置看绝对值、强度、某分量的实、虚部,位相等。

Q2:如何模拟太阳光谱?

我觉得即使用太阳光谱计算材料的反射或吸收光谱,与用平面光源计算的结果是一样的。因为某一波长吸收率是材料吸收的光功率与入射的光功率之比。不知对不对?

A:一般的测量都是相对测量,因此仿真也用相对测量。“相对”就是与光源的光谱具体分布没有关系。太阳光谱在一天内是有变化的,目前常用的有两个模型。

Q3:FDTD Solutions是如何来求得色散材料的ε和σ的?

A:请大家参考:

https://www.doczj.com/doc/209205156.html,/cn/fdtd/ref_matdb_permittivity_models.html

Q4:为什么100微米厚的玻璃的透射率计算为0? 用的是

Object defined dielectric,index 1.5;glass index1.5,glass SiO2。

A:这个是因为仿真时间太短。对于有玻璃的模拟,玻璃的厚度要取多少合适? 有点厚度就可以了,玻璃太薄了会出现干涉条纹。

A:这个并不限制,只要你的结构是这样,就可以,注意仿真只需要一个周期。

Q6:使用FDTD Solution怎么算45°和-45°的透射率?还有怎么计算相位差?

A:(1)设置光源的入射角为你想要的角度;(2)当你获得Ex、Ey、Ez之后,可以使用“angle”获得相位差分布:ex_phase=angle(Ex),其它类似,但要注意:FDTD Solutions软件直接获得的结果是个四维的矩阵:x, y, z and f,而你想要的应该是1D的

Q7:光源的纵坐标代表什么意思(下图的纵坐标)

A:前面两个是光谱分布,纵坐标是相对强度,最大值是1。

下面的这个是光源的时间信号,估计你用Zoom了,所以振幅老是负值。

Q8:dipole光源和planwave的工作原理是什么呢?

A:Dipole就是偶极子光源,是在一定的Momentum动量的情况下激发的,因此其实际辐射功率将随周围环境而变;

平面波没什么可说的。如果你在时域求解Maxwell方程,一定需要光源这一项,这就是与频域方法不同的地方。

Q9:power monitor中的T和P各代表的含义是?T是光源的实部吗?A:T是用Transmission函数计算出来的透射率,现在放在监视器里直接计算了;不是光源的实部。光源的实部必须看Ex,Ey,Ez才有。P就是总功率密度,分量有Px,Py和Pz,颇印庭矢量。

Q10:FDTD Solutions关于并行计算的问题?

A:FDTD Solutions支持两类并行计算:分布式并行计算(distributed computing)和并发式并行计算(concurrent computing):(1)Distributed Computing:适用于多核/多节点计算机.如果文件很小,可以只用单核/单节点,软件会自动提示.节点之间都是用高性能网络连接的.此时适用于一台物理的(即独立的)计算机;

(2)Concurrent Computing:当需要很多个类似的仿真计算时,可利用这种方式.此时各台计算机之间只需普通网络连接线即可。这时是多台分离式的计算机,每台仍然可以分布式并行计算;

(3)前者只需要一个Full License即可,后者每台计算机均需要一个Engine License.

Q11:为什么反射率有大于1的地方?

A:多数情况是没达到 auto shutoff min就停止运算,或者结构的谐振比较强,达到auto shutoff min后有些波长的谐振仍然持续。

解决办法:增加仿真时间 (FDTD/simulation times),同时减小auto shutoff min (FDTD/advanced)或使用mesh将计算网格进一步细化Q12:一些金属粒子在入射光的激发下,发生表面等离激元谐振,想计算这种情况下的表面电荷分布,不知道FDTD Solution 如何计算A:可以计算表面电荷分布,参见

https://www.doczj.com/doc/209205156.html,/cn_fdtd/user_guide_current_density.html

Q13: 我计算了一个纳米粒子的吸收、消光和散射光谱,我按照例子做完得到的都是光谱图了,要怎么样才能把数据导出来呢?另外光场的分布图能否保存成更加清晰的格式呢?

A: 导出数据由几种方法:

(1)在分析窗口,作图后,下面有一个Export Data, 设置文件名后直接点”Export”就记录为TXT文件.

(2)用Script里面的Write语句:

https://www.doczj.com/doc/209205156.html,/en/fdtd/ref_scripts_write.html

以上两种方法导出的数据均可以直接阅读

(3)用Savedata 保存为Script可读的格式, 用Load data读取,记录时它同时把变量名也记下了,因此Load后, 变量名仍然可以使用.

https://www.doczj.com/doc/209205156.html,/en/fdtd/ref_scripts_savedata.html

(4)也可以将所有变量保存为Matlab直接可读的文件, 见

https://www.doczj.com/doc/209205156.html,/en/fdtd/ref_scripts_matlabsave.html

Q14:我们要计算的文件很多,而我们组现在只购买了一个license,所以不能同时计算,我们想晚上计算:一个计算结束之后,软件可以自动进行下一个计算。这样可以有效地利用软件和我们的时间,请问FDTD Solutions可以实现吗这样计算吗?若可以请问该如何设置?A:(1)你说的是排队计算的问题,FDTD Solutions完全可以做到;(2)具体设置如下:

将要计算的文件加到队列里,见

Addjob

https://www.doczj.com/doc/209205156.html,/en/fdtd/ref_scripts_addjob.html

runjobs;

https://www.doczj.com/doc/209205156.html,/en/fdtd/ref_scripts_runjobs.html

Q15:原本需要用GUI的操作能否都转换成脚本语言,这样我们操作的时候就不需要打开GUI,只在脚本语言里面做修改?假如我们的服务器上装有两个engine license,其中一个用户正在使用GUI和一个engine license运行程序,那么另外一个用户登录服务器能否通过脚本语言(代替GUI)使用另外一个engine license运行程序。

A:(1)engine license只能运行程序,不能做任何别的操作,例如编辑脚本语言;(2)第二种情况,其中一个用户正在使用GUI和一个engine license运行程序,另外一个用户登录服务器可以不需要GUI 来用engine license运行程序。Engine license的运行不需要GUI,有

特殊的命令,见

https://www.doczj.com/doc/209205156.html,/en/fdtd/user_guide_running_simulations.html (一般说明)

https://www.doczj.com/doc/209205156.html,/en/fdtd/user_guide_run_win_fdtd_command_li ne_single.html

(Windows)

以Full License为例,只要你们的个人计算机与工作站都是用局域网连着的,那么一个人在用GUI编辑/分析时,另外一个人可以用script 命令运行他的模拟,只是当正在编辑/分析的那位想运行时,系统会提醒他不能运行,License被占用;(3)只有我们的软件FDTD Solutions,GUI和Engine是分开的,两个人可以同时用,当然每个人都只能用一部分功能。

Q16:FDTD Solution这款软件的dipole source是脉冲光源,通过什么方法可以观察连续光源激发下介质内部的稳态光场分布呢?

A:有的软件是直接利用单色光的时域数据,这个需要较长时间的仿真,而且只能是一个单色光,没有利用时域算法的优点。而FDTD Solutions利用脉冲光源,频域CW稳态结果是利用(power、profile)监视器通过对时间信号去傅立叶变换精确得到的,因此是严格单色的,可参见:

https://www.doczj.com/doc/209205156.html,/en/fdtd/ref_fdtd_units_frequency_domain_nor malization.html

注意:为了获得正确的结果,我们需要在脉冲几乎全部离开仿真区域

后再结束。

Q17:FDTD Solutions计算区域一定是矩形吗?可以设置成圆形吗?A:由于FDTD是基于直角坐标系的,因此是矩形。不能是圆形,也没有必要。如果你需要柱坐标或球坐标下的结果,这都是可以的。

Q18:为了考察PML吸收层的吸收效果,我们模拟了一个三维空间上的偶极子点源的辐射场。FDTD计算区域为80×80×150um,四周为PML层,垂直反射系数为0%。点源添加在(20,20,-140)节点处。从计算结果中发现,计算区域中的场强分布是不对称的,请问缺省的PML层数如何设置?如何设置为半个波长厚度?

A:文件的一个主要问题是,光源没有在仿真区(讲座中我讲到了这点,仿真对象、光源、和监视器都必须位于仿真区域里);计算是根据网格划分进行的.为了获得绝对的对称,你可以将光源和FDTD区域都设置为XYZ=0,同时也要注意监视器位于对称位置, 同时可以在FDTD/Advanced/中选取Force Symmetric x mesh (y,z) ,结果一定是对称的。

缺省的PML层数设置是自动的。你可以在FDTD/ Advanced那里看PML的最小最大层数。如果在Boundary那里看到PML的层数以达到最大值,增加最大层数。厚度也是自动计算的,不必设置。

Q19: simulation菜单中的mesh 选项如何应用,mesh选项中的dx dy dz 与空间步长有什么关系?

A: 因为FDTD Solutions使用自动优化的网格,对于有些比较薄的尺寸

小的器件,或者电磁场变化剧烈的地方,需要进一步细化,mesh就是用来细化计算网格用的.选项中的dx dy dz就是此区域的空间步长,它们是均匀的网格.

Q20: 如何设置计算区域的空间步长、时间步长?

A: FDTD Solutions是自动优化的非均匀网格, 因此只需要设置所需要的网格精度Mesh Accuracy (FDTD/Mesh Settings), 一般用缺省的设置2, 网格相当于最小波长的十分之一(最细的网格)或更高.

建议大家刚开始不要用高精度,等结果看起来还可以, 再用细网格作收敛试验, 因为无论如何离散的计算都是有误差的, 当用高精度得到一个比较一致的结果时, 说明仿真设置正确, 结果可靠.

注意, 因为不同材料内的最短波长不同, 因此网格粗的精度不一定低. 最低精度是细网格的地方, 假设是其材料内最短波长的十分之一, 其它地方的网格一定比其最短波长的十分之一还要小, 以保证最低精度波长的十分之一

Q21: 接受面特性选项intensity vs frequency/wavelength 获得的光强intensity是如何计算的?是计算的某一波长下该接受面上所有intensity的平均值吗?

A: 这个是不同波长下不同位置的光强, 不是任何意义上的平均.我们与其它软件的方法不同, FDTD Solutions的Frequency Domain监视器利用时域信号的傅立叶变换获得频域信息,因此你就知道Profile监视器得到的是含有空间坐标和波长的结果,还可以用Script获得电磁场

的不同分量的复数振幅.

Q22:为什么我做不出和文献完全一样的结果?

A:和文献结果比比较时,要注意检查:

§结构参数是否完全一致?Mesh Order 的设置是否正确表示实际结构?

§材料模型:是杜德模型、洛伦茨模型?还是测量数据,与文献中的数据是否完全一致?

§检查折射率/材料的拟合fitting是否正确?曲线是否光滑且没有人为的谐振峰

§偏振方向是否正确(TE/TM有两种定义)

§边界条件是否正确且与光源类型匹配?

§ Mesh Refinement 一般情使用缺省Conformal variant 0

§模拟时间是否足以使电磁场脉冲全部通过器件?

§检查所用网格精度或override能否分辨器件的细节

§检查结构是否有高级衍射? Transmission直接给出的是总透过率

一般模拟结果与文献结果大致类似,即表示基本设置几乎没有错误,但要得到完全一致的结果,做收敛性试验,参见:

https://www.doczj.com/doc/209205156.html,/en/fdtd/user_guide_testing_convergence.html

Q23:关于mesh的问题,附件grating1是让软件自动生成mesh,并且将精度调整为8级,可是看到软件生成的mesh还是很粗糙,不能体现模型细节,这是什么原因呢?

A:可能是因为你有其它软件的使用经验,急于上手FDTD Solutions,因此可能没有时间浏览Reference guide,user guide这两个手册和入门教程。

因此这里花时间给你详细讲解一下:

软件自动生成的mesh是根据设定的网格精度画的,网格的尺寸是材料内最短波长的几分之一,例如精度2是十分之一,精度8是三十四分之一,它并不知道器件的最小结构尺寸。你的模型细节是0.09微米,是远远小于波长的,因此你需要添加mesh细化

Q24:我手动划分mesh,强制将网格指定为10nm,但是此时网格和结构也有错位。水平方向的错位我通过调整FDTD区域的位置修正了,但是垂直方向的错位不能修正(垂直调整FDTD区域的位置移动不了网格)。

A:要分辨细节,添加mesh是正确的选择。但是你现在选用了均匀网格,均匀网格的划分是从某个角落开始的,而且你设定的网格大小不一定正好均分post,当然它就不可能是对称的。如果你希望对称,你可以在FDTD/Advanced,选force symmetric x或者Y、Z,根据你的需要。

不过,看来你是需要在Z方向划分网格,但是Z方向不对称,因此不能用上面的方法。由于我们有Conformal技术:

https://www.doczj.com/doc/209205156.html,/solutions/innovation/fdtd_conformal_mesh_w hitepaper.html

没有必要一定要使结构与网格对齐,再者说,FDTD有E网格和H 网格,两者在XYZ方向都有半个网格的错位,你要与哪个网格对齐呢?

正确的做法是先用低精度,例如2,加上mesh来细分一些细节,这样内存需要很小,可以大大加快仿真速度,感觉基本可以后,再做收敛性试验.

Q25: 请问你们软件对电脑的硬件要求什么?我要做一个不对称180颗粒群落,计算机要求大概的一个内存或者硬盘要求是多少?给我个概念就行!

A:对电脑硬件的要求取决于要模拟的器件尺寸和所用波长的范围,器件尺寸相对于器件内最短波长的比例越大,对内存要求越高。你现在的研究课题是不对称180颗粒群落,几个月后可能就是其它的问题。我们一般无法给出具体指标,但有些建议,对硬盘,一般的配置即可,因为它并不参加运算,只是保存文件。

Q26:如何设置排队计算?也就是多个不同的文件,一个文件计算结束了之后,另一个文件会自动运行?

A:多个文件先后在计算机上运行设置的方法:

(1)首先将它们加到任务表中,例如:addjob("mySimulation.fsp"); Specify filename with full path.这是指该文件不在FDTD Solutions当前运行的文件夹中,指明路径即可

file="C:\working\mySimulation.fsp";

(2) addjob(file); 参见:

https://www.doczj.com/doc/209205156.html,/cn/fdtd/ref_scripts_addjob.html

有几个文件,就用几个Addjob;然后运行这个任务表这个例子是相关的文件,每个文件用数字区分,可以简洁地使用。

(3) runjobs;参见:

https://www.doczj.com/doc/209205156.html,/cn/fdtd/ref_scripts_runjobs.html

Q27: 我给材料库里加的数据,为什么过了几天再用所加的数据时,这些数据又没了?

A:你加到材料库中的数据,仅是对那个文件而言,它没有永久地保存到FDTD软件里面。

如果你需要,一种方法是在原文件基础上(例如删除所有物件)设计,二是将原来新材料的形体拷贝到新的文件中,此时材料自动带过来。Q28: 对于大尺寸范围的模拟,我想去上海超级计算中心去运算,对方问我贵软件最多可用多少核?您有何建议?

A:软件本身对核没有限制。但是中心可能是按核收费。具体用多少,没有严格规定,下限是每个核应该至少100M,上限以单个核的内存为佳(个人认为)。但是计算中心用的是Cluster,你最多可以用10个节点(因为Lumerical捐的是10个engine license)。每个节点的核数与计算机有关。

Q29:Frequency-domin field profile Frequency-domin field and power

具体区别在哪里?

A:两者基本一致,都是利用傅立叶变换将FDTD的时间信号转换为频域稳态CW结果的,也就是单色光的分布。

差别是:profile monitor的空间位置就是你原来设置的,没有任何变化,但是由于是网格化计算,场值需要插值计算,有一点误差;power monitor可将位置变化不超过半个网格,以减少插值带来的误差,保证能量守恒。因此,如果你求算某一个严格指定区域的场分布,用profile monitor,如果要计算透射率和功率,用power monitor。

Q30:FDTD solutions我们这边是在集群服务器的Cluster跑的,一般的单个仿真我们用如下脚本运行(),但是,现在我要进行optimization 的运行仿真,脚本应该如何更改,具体脚本应该如何写,能发个样本,并且解释一下吗?

A:一般optimization只能在GUI上设置。由于你们有5个正式的License,你可以设置Resources,将需要的节点名字或IP添加上,并指明每个节点所需要的Core/Process就可以了,优化会自动在多个节点同时计算。

当然要告知其他同学你正在用,否则其他人会发现计算太慢。https://www.doczj.com/doc/209205156.html,/en/fdtd/user_guide_run_resources.html

https://www.doczj.com/doc/209205156.html,/en/fdtd/solar_optimization.html

Q31: 探测器可以将电场磁场还有反射率都能探测到,但是想具体问一下这些量的关系,现在我可以推导出一些量的关系,比如

Re+i Im=abs exp(iΦ).

Re^2+Im^2=abs^2.

tanΦ=Im/Re.

(Exabs)^2+(Eyabs)^2=(E magnitude)^2.

但是找不到transmission和上面这些量的关系。你们这个transmission 是怎么推到出来的,和电场磁场有着什么样的关系。

A: 是颇印庭矢量积分的比值:即功率之比,在平面波的情况下,就是电场的强度之比(透射/反射的与入射的比),具体可参考:

https://www.doczj.com/doc/209205156.html,/en/fdtd/ref_scripts_transmission.html

Q32: 我用FDTD Solution 计算一维介质光栅的在可见光波段的透过率(或者反射率),软件里可以设置不同的入射角度,我目前用的0度角,即垂直入射。现在有一个问题要请教您,我想计算并分析在可见光波段透过率随入射角连续变化(-30度~30度)的光谱曲线,角度变化间隔1度。不知道怎样设置?

A:我修改了你的文件,现在可以同时扫描入射角和波长(Sweep And Optimization)。

因为斜入射时必须使用Bloch边界,而Bloch边界时不同的波长入射角不同(数学要求),因此最好一次计算一个角度,一个波长。

目前是3*3=9个文件,如果波长选50个,角度选61个,那就是50*61=3050个计算!

另外为了加快速度,我用了精度2;将光源设置为单色

Q33:使用script命令得到的结果,怎么导出txt的文档数据格式?如

这个散射例子:

https://www.doczj.com/doc/209205156.html,/en/fdtd/sp_mie_scattering_2d.html?zoom_high lightsub=scattering中,得到的散射强度随角度变化的图,怎么导出txt 数据?

A:如果不是在Visualizer里面,需要用Script中的Write语句,具体请参考:https://www.doczj.com/doc/209205156.html,/cn_fdtd/ref_scripts_write.html

Q34:FDTD Solutions与matlab的图像交互问题?

A:(1)FDTD Solutions和matlab是相互兼容的;(2)但Matlab不能直接控制Lumericla软件,只能将Lumerical里面的数据送到Matlab 里面计算,或者从Matlab里面计算再提取出来. (3)一切对Lumerical 产品的交互必须用Script.

(4)一般来说, 要建立模型, 所用的Script可以参考Components里面的; 进行分析, 可参考Analysis分析组了的.

Q35:选择set frequency/wavelength这一项,设定好相关参数后点击set time domain进行相关设置,为什么此时set frequency/wavelength 中已经设置好的参数会发生改变?两者有什么关系, 两个选项都需要设置吗?

A:因为时间域和频率域是傅立叶变换关系,所以你只能按一个域来设置。

没有充分的理由,请使用缺省时间信号,这样可以大大加快模拟速度;同理,如果没有充分的理由必须使用单色光,请使用宽光谱,这样产

生很短的时间脉冲。

我们软件与其它软件不同的地方是:虽然FDTD是时间域算法,但是用傅立叶变化可以得到光谱内任何波长的CW结果!

Q36:为什么我设置wavelength span 为1nm, 而右图显示的波长宽度不是1nm?

A:因为在我们软件中,即使你设置为wavelength span 为0nm,光源的光谱也是宽光谱的,因为用的是时间脉冲光源。wavelength span 为0nm时(严格单色光),只是让监视器只记录这个波长的结果。这个也是与其它软件不同的。注意,严格单色光在时间上是无限的,而FDTD只能计算有限时间,理论上说,如果从时间域得到单色的结果,实际上是理论值与Sinc函数的卷积。

关于光源,请一定从其它软件的概念中转变过来。只要运行时满足条件,傅立叶变换就是准确的,也就是说,除非你的设计中用宽光谱时结果受其它波长的影响(如谐波的产生),否则应该使用宽光谱光源,而通过频域监视器记录指定的严格的单色光结果。

相关主题
文本预览
相关文档 最新文档