我们将计算金属薄膜中纳米孔阵列的透射和反射光谱。 我们还将考虑薄膜表面的近场分布和局部场增强。
一、模拟设置
文件 sp_array.fsp 可用于在 100 nm 厚的金层中模拟半径为 100 nm、间距为 400 nm 的纳米孔阵列。 金层使用默认材料数据库中包含的“Au(金)-CRC”模型。 平面波源的波长范围为 400 到 750 nm。 对阵列的单个晶胞进行建模,并使用对称/反对称(symmetric/anti-symmetric)边界条件将模拟量进一步减少 4 倍。(请注意,对称/反对称边界必须与源极化一致。 ) FDTD 网格精度为 2,金材料网格覆盖为 10 nm,模拟在单台计算机上运行几秒钟。 每次模拟都应该对网格尺寸进行一些收敛测试,通常应该使用 5 nm 或更小的网格尺寸来获得最终结果。
二、结果
运行模拟后,运行脚本文件 sp_array.lsf。 它将执行一系列具有代表性的计算并创建如下所示的图。 我们可以看到在大约 675nm 处有一系列共振最强。 该脚本还创建了一个归一化为孔面积除以晶胞面积的透射图,这使得我们很容易看到我们有非凡的透射。
2.1 透射和反射vs波长
2.2 验证材料特性
验证 FDTD 模拟中使用的金材料在整个波长范围内是否具有所需的特性有时很有用。 下图显示了模拟中使用的金材料的折射率作为波长的函数。
(n,k)材料模型:单个复数折射率值(例如,n + ik = 2 + 0.05i)定义材料
2.3 近场图
下图显示了金表面的 ∣ E ∣ 2 |E|^2 ∣E∣2,位于透射侧和反射侧。 我们可以看到局部近场增强非常显着,因为入射场强为 1 V/m。
下图所示的 x-z 平面中的横截面将颜色条调整为 1 到 10 的范围。这使得可以很容易地看到近场强度增强至少为 10 的区域。
模拟还将制作名为 sp_array_nanohole_movie.mpg 的 mpeg 电影。
三、案例分析
3.1 仿真结构
model所包含的内容:
纳米孔是一个个画的,用etch刻蚀材料。
因为只仿单个晶胞,所以simulation time设置的也较小,500fs
仿真区域大小也是纳米孔之间的间距400nm
根据光源的极化,设置了对称边界。
上一届也提到了,蓝色偏振方向垂直于绿色(反对称),平行于蓝色(对称)。
根据上文说的“金材料网格覆盖为 10 nm”,然后基于结构 (base on structure),给每个孔都加了mesh
设置了光源范围为400到750nm.
监视器
这个监视器位于金层下方10nm处,xoy平面,看675nm波长处的反射
这个监视器位于金层上方10nm处,xoy平面,看675nm波长处的透射
这个监视器看xoz平面,局域增强
R和T都是放的更远的只记录功率的监视器
time_hole和time_corner都是记录时域场衰减的。
折射率监视器结果,由于采用了对称边界条件,这里也仅显示1/4的图形结果。
圆边锯齿形:仿真精度不够
上图的折射率监视器显示的是中心波长0.575um下的折射率分布。
3.2 sp_array.lsf
##########################################################################
# Scriptfile: ap_array.lsf
#
# Description: This script calculates the transmission
# and reflection vs wavelength
# for the file ap_array.fsp. It also
# creates plots of field profiles.
#
# Copyright 2012, Lumerical Solutions, Inc.
###########################################################################
# calculate the transmission and reflection as a function of wavelength
# 计算作为波长函数的透射和反射
f = getdata("R","f");
lambda = c/f;
T = transmission("T");
R = -transmission("R");
plot(lambda*1e9,R,T,R+T,"wavelength (nm)","T and R");
legend("R","T","R+T");
r=100e-9;
period=400e-9;
plot(lambda*1e9,T/(pi*r^2/period^2),"wavelength (nm)","T (normalized)","T normalized to pi*r^2/unit_cell_area)");
# 归一化为孔面积除以晶胞面积的透射图,以便很容易看到我们有非凡的透射
ngold=getfdtdindex("Au (Gold) - CRC",f,min(f),max(f));
# 返回材料的折射率
plot(c/f*1e6, real(ngold),imag(ngold),"wavelength um"," n, k","index of gold simulated");
legend("n","k");
setplot("x min",c/f(1)*1e6);
setplot("x max",c/f(length(f))*1e6);
# look at the field profiles recorded at 495 nm, reflected surface
# # 查看在 495 nm 处记录的场剖面,反射表面
E2_r = getelectric("profile_at_675nm_R");# 返回所有电场分量的振幅平方和
E2_t = getelectric("profile_at_675nm_T");
E2_xz = getelectric("profile_at_675nm_xz_plane");
x = getdata("profile_at_675nm_R","x");
y = getdata("profile_at_675nm_R","y");
z = getdata("profile_at_675nm_xz_plane","z");
image(x*1e6,y*1e6,E2_r,"x (microns)","y (microns)","|E|^2 at reflected surface");
image(x*1e6,y*1e6,E2_t,"x (microns)","y (microns)","|E|^2 at transmitted surface");
image(x*1e6,z*1e6,E2_xz,"x (microns)","z (microns)","|E|^2 at y=0");
setplot("colorbar min",0);
setplot("colorbar max",10);
3.2.1 getfdtdindex
3.2.2 setplot
3.2.3 getelectric