1.FDTD的偏振光
涉及圆偏振光入射,FDTD采用的方式是,添加两个线偏振光源,设置正交偏振方向以及相位差遵循的公式:右旋圆偏振光——Ex =Ax*cos(-wt),Ey=Ay*cos(-wt-pi/2);左旋圆偏振光——Ex =Ax*cos(-wt),Ey=Ay*cos(-wt+pi/2);
2.周期边界条件下光源的范围
某方向上是周期性的边界条件,那么光源的范围在这个方向上要超出仿真区域
3.仿真时间
仿真时间(注:如果process一直跑到100%才结束,就是没有某个进度后突然结束的情况,说明仿真时间太短了,需修改);FDTD Solutions默认设置的模拟时间是1000fs(必须保证有足够时间使结果收敛),而模拟会在场衰减到小于用户定义的电场强度时(默认设置是1E-5)自动结束;仿真时间一般至少是光经过高折射率材料的仿真区域所用时间的两倍:t>2nL/c
4.Mesh
Mesh的典型应用是dx=dy<lamda/(10n),n是材料中的最高折射率
重要概念points per wavelength
Mesh accuracy是FDTD自适应网格所用的划分网格大小的一个指标,共有8个精度:1对应最小波长的1/6;2对应最小波长的1/10;3对应最小波长的1/14;4对应最小波长的1/18;5对应最小波长的1/22;6对应最小波长的1/26;7对应最小波长的1/30;8对应最小波长的1/34,这里的最小波长是指材料内的最短波长。
5.边界条件
边界条件中
- PML: 完美匹配层,吸收边界(最少反射),全部吸收传输的电磁波,相当于传播到无限远, PML边界离开物体至少半个波长左右(有必要一个波长也可以),因为PML不只会吸收入射光源,也会吸收脩逝场(evanescent field)
-
Bloch: 是Periodic的一般形式;它是一种普遍的边界条件,由于数学上要求它只能针对指定的波长有指定的入射角,其它波长的实际入射角将不同于指定的那个入射角,因此一般情况下,它适合单波长计算
-
Periodic: 当仿真的结构再某一个方向是周期性排布的,这个方向的边界条件就是periodic,且光源正入射
-
Metal: 全反射边界:无损耗仿真,仿真速度快
-
Symmetric: 要求垂直对称面的电场为0,平行于对称面的电场为非0。结构对称性,光源的偏振也要对称。
-
Anti-Symmetric: 要求平行对称面的电场为0,垂直于对称面的电场为非0
6.光源的使用
参考https://blog.csdn.net/Temmie1024/article/details/108734015
- Plane wave:平面波,周期性结构(或非周期结构,但PML产生衍射时?);如各类光栅、超导材料等
- Gaussian/NA source:高斯光束,非周期结构;如光栅耦合器,激光束照明,汇聚照明(显微物镜聚焦的光束)等
- Dipole:偶极子点源,周期/非周期结构均可;如OLED/LED,Q值计算等
- TFSF:全场散射场光源,周期/非周期均可;如各类散射问题求解 —— 有关TFSF光源,设置的区域内包括入射场和散射场,区域外都是散射场;使用准则FDTD region>>散射场≥mesh>光源>总场>结构
-
TFSF光源斜入射时对应的边界条件
1.无基底:TFSF光源+Bloch边界条件
2.有基底:TFSF光源+PML边界条件
光源斜入射 只能计算单波长,不能直接计算宽光谱结果。 想获得宽光谱结果,需扫描波长(固定角度),或扫描角度(固定波长)
7.关于创建模型的方法
①可以全程使用脚本,在script file editor里,无论是创建变量、构建模型还是添加仿真区域、光源、监视器等以及设置它们的属性,都可以通过脚本完成,最后保存的lsf文件运行即可创建出仿真模型;
②手动先添加模型,在模型的edit中,创建变量,然后在里面的script用脚本设置具体,其余的仿真区域,监视器,光源等手动加入后,右键设置各自属性即可,最后是保存的fsp文件;
③有关于对监视器或者对扫描的数据结果进行提取、可视化、数学操作之类的,还是需要通过创建脚本lsf文件进行;
④与matlab关联后,如果你需要转到matlab中进行操作,软件会自动生成代码以及对应需要的数据;注意:它这个生成的代码是绘图的代码,或者说,matlab关联的是绘图的部分,或者说是数据处理的部分,比如,你在FDTD脚本中执行生成了一个图,但是不满意,想调到Matlab中调整,就直接点窗口上方的matlab创建,它就会给你写出一个在生成同样图包含同样数据的代码
当然,也可以在脚本文件中,使用相关函数matlabsave存成matlab文件。注意:使用该函数保存文件时,会把函数前面所有的数据保存进一个mat文件,尝试了下,该函数似乎不能像matlab中save函数一样,指定一个或多个变量保存进mat
8.材料的添加
部分参考FDTD_学习笔记3_2D/3D结构 & 材料库_fdtd材料库没有材料-CSDN博客
在FDTD顶栏中的material可以通过add添加2D、3D等自带库里没有的材料。材料库供给我们许多“默认材料”,硅、玻璃、空气 和 金银等…,大多材料,用于3D结构… 数据的来源会在"材料名称"中被指定,例如Palik(数据来源于固体光学手册)
2D结构的PEC
3D 的 etch:这个“etch”是默认情况下,网格顺序(用于确定那个对象有优先权)为1、折射率为1的材料,蚀刻材料将替代其他重叠材料?
添加其他多种材料模型:
简单的(n,k)材料和电介质材料,(n,k)材料可以设置单频模拟的折射率的实部和虚部
如果介电常数是频率的函数,这样材料用:
导入数据材料形式(即添加采样sample 2D 3D data数据资料,通常是txt文件,通过import data),可以导入 λ 和 f 上的数据…3D材料,导入数据就是index / 介电常数;2D材料,导入数据就是电导率、电阻率 和 片材厚度
导入文本,下图为3D材料的文本包括(λ、折射率re 、im即实部虚部)
也有非线性材料,可以让你模拟增益材料和效果…
9.参数扫描
右键后点击edit进入下图界面,add添加需要扫描的变化参数,在Parameter中选择左侧model中的你想扫描的参数 ;start 和 stop可以设置扫描的范围,number of points是扫描的次数
Results是添加结果监视器,选择左侧model中的监视器里的某个你想观察因为前面参数变化而变化的量,比如反射率、透射率等
以下图为例:
说明下:这里扫描,设置了40个扫描点,也就是40个厚度变化值,每个厚度值,对设置的波长范围进行模型计算,计算出透射谱,总共进行40次,40个不同厚度对应的透射谱,也就是波长对应的透射率 ;模型中设置了两个监视器,一个命名成R,一个命名成T,分别用来测反射谱和透射谱,你看监视器的位置就知道,然后这里选择的是R监视器里的T参数,这个T参数则是代表透射谱,监视器没有单独再来一个所谓的反射谱参数,你监视器放在反射的位置,T就是代表反射谱,放在透射的位置,T就是代表透射谱