FDTD吸收率计算

一般情况下,相对的吸收率定义为A=1-R-T,R和T分别是反射率和透射率,均为正值,没有必要专门设置一个计算吸收率的监视器。一般仅需要将透射率T放到器件的透射方、反射率R放在光源的背后即可。
实际上,只有周期结构平面波类型的光源(以及波导类的模式光源等)计算透射率和反射率才有物理意义。此时,只需要在透射率区添加一个透射率监视器,在光源背后,或者在光源与结构之间添加反射率监视器就可以。周期结构实际上也可以统称为光栅结构,因为是无限周期的,如果有高级衍射,或者需要分析不同衍射级的透射率反射率,需要使用光栅分析脚本。
脚本语言:

T=-transmission("T");
R=transmission("R");
A=1-T-R;
f=getdata("T","f");
plot(c/f*1e9,A,"wavelength(nm)","absorption");

transmission函数的使用,透射率反射率正负号问题:
transmission函数根据普适的定义通过对能流密度(颇印庭矢量的实部)积分然后与光源功率相比,获得强度(功率)反射率或透射率,是归一化的结果。由于不使用教科书中常用的反射/透射强度与入射强度之比,因此适合于用近场量的计算。在频域监视器里面只要在Data to record 中勾选 Output power即可。
由于涉及颇印庭矢量的积分问题,因此,就有积分面(或线)的法向问题。 Lumerical规定面(或线)的法向沿坐标轴正向为正,否则为负。能流密度总是正的,因此,积分的结果,如果能流密度沿坐标轴正向,transmission给出的就是正的;否则,如果能流密度沿坐标轴负向,transmission给出的就是负的。而透射率反射率在物理上总是正的,因此,对于负的结果需要将其转换为正。在Visualizer里面,可以直接选-Re,在Script里面,可以在transmission前面添加负号以得到物理上正确的结果。如果你查看一些分析组和一些Script,里面有负号就不足为奇了。
注意事项:
1:如果得到的透射率或反射率有正有负,说明仿真设置有问题,参见这个帖子。
2:对于光栅结构,transmission给出的所有衍射级的总透射反射率。如果要得到某衍射级的透射反射率,需要使用Grating 函数,专用分析组grating_transmission。
3:原则上此函数之能用于分析周期物体+平面波光源,不能用于分析非周期物体,例如粒子散射+TFSF,因为此时TFSF的光源功率将随其尺寸大小而变,因此在TFSF里面监视器得到的结果将与TFSF的横向大小有关。
4:Data to record 中的Px Py Pz是颇印庭矢量的三个分量,是空间坐标x,y,z 和频率f/波长的函数,而Output power是透射率反射率,只是频率f/波长的函数。一般不需要记录Px Py Pz,以节省内存。

原文地址:https://www.cnblogs.com/lihao-bupt/p/13180640.html