FDTD流程笔记

步骤的很多设置没有仔细的写,找不到办法可以尝试看看这篇“FDTD相关问题”,点这里

这篇写监视器的功能,光源的分类,TFSF光源斜入射的实例(有/无边界

设计流程如下图:

基于FDTD的基本流程-编程之家

模型构建, 如纳米孔阵列构建:

基于FDTD的基本流程-编程之家
a表示小孔间距,radius为小孔直径,etch表示其他默认为空气,
基于FDTD的基本流程-编程之家
删除多余纳米孔操作:(1)展开组,右键break groups,(2)选择删除,

添加材料,如空气,mesh order为优先级(越小优先级越高)基于FDTD的基本流程-编程之家

添加仿真区域FDTD

区域大小设置,可以设置为一个周期的(x-y平面是周期),z为PML且大于所测区域**(pml层距离结构至少要半个最大波长)**基于FDTD的基本流程-编程之家
仿真精度mesh accuracy可选4-6,
基于FDTD的基本流程-编程之家
如果为金属材料,设置mesh refinement 为c v-1
基于FDTD的基本流程-编程之家
边界条件:若xy为周期边界条件,设为Periodic,
PML层数的设置(推荐用stretched coodinate PML,因为比较快):我主要用standard的。一般用第一个standard,有表面波有波纹用第二个stab,光源入射角或衍射角大用第三个stee,改pml参数用第四个custom。
基于FDTD的基本流程-编程之家
如果是金属材料,pml的层数和最大层数越大越好,可以改为256层,最小层64。
如果用石墨烯材料的话,层数不是越多越好的,比如一般论文里的石墨烯厚度为1nm,不同的Pml层数会导致出现不同的光谱。
我平时用石墨烯论文复现的话用standard的8-32层。
基于FDTD的基本流程-编程之家

添加光源,source

平面波 plane wave,沿z轴正方形射入(方向有backward和forward),光源xy面要大于等于仿真的区域,(光源可以手动拉到任何位置)
基于FDTD的基本流程-编程之家
基于FDTD的基本流程-编程之家
如:设置光源为单色光波长为500nm(center/span),如果是高斯光束,设置波长范围再.4-.8um之间基于FDTD的基本流程-编程之家
其他类的光源看这个链接https://blog.csdn.net/sinat_34842383/article/details/103172750

设置监视器,(X,Y,Z),覆盖sio2和金属层,

设置折射率index of refraction,与Y垂直区域,覆盖仿真区域即可

基于FDTD的基本流程-编程之家

设置时间计时器time,每个介质设置一个,且距离在介质交界面5-6nm 处,

基于FDTD的基本流程-编程之家
基于FDTD的基本流程-编程之家

电影层的范围,与Y垂直区域,覆盖仿真区域即可

设置场分布frequency-domain field pofile(主要看电场和磁场),一般设置频率点为100-500个。在yz平面(2D-xnormal)上。覆盖仿真区域即可

基于FDTD的基本流程-编程之家

设置功率(透射率和反射率)监视器frequency-domain field and power,其中因为实时曲线,频率点取500,在xz平面(2D-Y normal)上,勾选override global默认为全局监视器设置—

透射率T ,其中因为时曲线,监控频率点取100-500,在xz平面.

基于FDTD的基本流程-编程之家基于FDTD的基本流程-编程之家

反射率R

基于FDTD的基本流程-编程之家

完事保存模型,验证调用是否成功

基于FDTD的基本流程-编程之家

仿真运行计算

Check 蓝色是拟合数据,绿点是材料库数据,max coefficients调实部的拟合,点开show advanced里面可以调整虚部的拟合。

基于FDTD的基本流程-编程之家

场分布在frequency-domain field pofile里查看。

vector 里看辅助(magnitude)x,y,z方向,
基于FDTD的基本流程-编程之家

看T和R(R的反射不是负值,FDTD结果是坡印延矢量,有正和负,Scalar设为——Re即可)基于FDTD的基本流程-编程之家

同时看T和R,修改标签legend

看吸收率A

使用右边的Script file editor

f=getdata("R","f");
T=transmission("T");
R=-transmission("R");
A=1-T-R;
plot(c/f*1e6,A,T,R,"wavelength um","T,R");
length("A","T","R");

扫描和优化

把T/R放入一个analysis group,然后编辑分析组

基于FDTD的基本流程-编程之家
基于FDTD的基本流程-编程之家

设置Variables为f,a,t,r, 然后创建一个扫描对象sweep,假设扫描sio2模层的厚度,

基于FDTD的基本流程-编程之家

对应的结果设置

基于FDTD的基本流程-编程之家

点击RUN,扫描优化的时间看选取的点数(场分布默认10的点),选择thickness里的slice可看每个点的T R F A

基于FDTD的基本流程-编程之家