FDTD操作案例2
lumeical的fdtd的structures

Lumerical公司是一家致力于提供光电子设计软件解决方案的国际知名企业。
其旗下的FDTD解决方案是一款基于有限差分时域(FDTD)算法的光学结构仿真软件,被广泛应用于光学通信、光电子器件设计、纳米光学等领域。
在本文中,我们将重点介绍Lumerical的FDTD解决方案在光学结构仿真方面的特点和应用。
1. FDTD算法有限差分时域(FDTD)算法是一种数值求解Maxwell方程组的方法,可以用于模拟光学结构中的电磁波传输、吸收、散射等过程。
FDTD算法是一种非常灵活、高效的仿真方法,能够准确地模拟复杂的光学结构,包括光子晶体、光波导、光栅等。
相比于传统的有限元法(FEM)和有限差分法(FDFD),FDTD算法具有更好的模拟效果和更快的计算速度。
2. Lumerical的FDTD解决方案Lumerical公司推出的FDTD解决方案是基于FDTD算法的一款专业光学结构仿真软件。
该软件集成了强大的仿真引擎和直观的用户界面,可以帮助用户快速、准确地设计和优化光学器件。
与传统的FDTD软件相比,Lumerical的FDTD解决方案具有以下几个突出特点:(1)高性能计算引擎:Lumerical的FDTD解决方案采用了最新的并行计算技术,能够充分利用多处理器和多核心,实现快速、高效的仿真计算。
(2)丰富的模拟功能:该软件支持多种光学模式的仿真,包括线偏振光、圆偏振光、自由空间光波等。
用户可以根据需要进行灵活的设置和仿真,以获取更准确的仿真结果。
(3)直观的用户界面:Lumerical的FDTD解决方案具有简洁直观的用户界面,支持图形化编辑和仿真设置,使用户能够快速上手并进行高效的工作。
3. 应用案例Lumerical的FDTD解决方案在光学结构仿真方面具有广泛的应用,下面将介绍几个典型的应用案例:(1)光子晶体器件设计:光子晶体是一种具有周期性结构的光学材料,在光子学器件中有重要的应用。
利用Lumerical的FDTD解决方案,用户可以对光子晶体的光子带隙、光子波导等性质进行准确的仿真和优化,为器件设计和性能调控提供重要参考。
时域有限差分法(FDTD算法)的基本原理及仿真

时域有限差分法(FDTD算法)的基本原理及仿真时域有限差分法(FDTD 算法)时域有限差分法是1966年K.S.Yee 发表在AP 上的一篇论文建立起来的,后被称为Yee 网格空间离散方式。
这种方法通过将Maxwell 旋度方程转化为有限差分式而直接在时域求解, 通过建立时间离散的递进序列, 在相互交织的网格空间中交替计算电场和磁场。
FDTD 算法的基本思想是把带时间变量的Maxwell 旋度方程转化为差分形式,模拟出电子脉冲和理想导体作用的时域响应。
需要考虑的三点是差分格式、解的稳定性、吸收边界条件。
有限差分通常采用的步骤是:采用一定的网格划分方式离散化场域;对场内的偏微分方程及各种边界条件进行差分离散化处理,建立差分格式,得到差分方程组;结合选定的代数方程组的解法,编制程序,求边值问题的数值解。
1.FDTD 的基本原理FDTD 方法由Maxwell 旋度方程的微分形式出发,利用二阶精度的中心差分近似,直接将微分运算转换为差分运算,这样达到了在一定体积内和一段时间上对连续电磁场数据的抽样压缩。
Maxwell 方程的旋度方程组为:E E H σε+∂∂=⨯∇t H HE m tσμ-∂∂-=⨯∇ (1) 在直角坐标系中,(1)式可化为如下六个标量方程:⎪⎪⎪⎪⎭⎪⎪⎪⎪⎬⎫+∂∂=∂∂-∂∂+∂∂=∂∂-∂∂+∂∂=∂∂-∂∂z z x y y y z x x x yz E t E y H x H E t E x H z H E t E z H y H σεσεσε,⎪⎪⎪⎪⎭⎪⎪⎪⎪⎬⎫-∂∂-=∂∂-∂∂-∂∂-=∂∂-∂∂-∂∂-=∂∂-∂∂z m zx y y m y z x x m x y z H t H y E x E H t H x E z E H t H z E y E σμσμσμ (2)上面的六个偏微分方程是FDTD 算法的基础。
Yee 首先在空间上建立矩形差分网格,在时刻t n ∆时刻,F(x,y,z)可以写成),,(),,,(),,,(k j i F t n z k y j x i F t z y x F n =∆∆∆∆= (3)用中心差分取二阶精度: 对空间离散:()[]2),,21(),,21(),,,(x O xk j i F k j i F x t z y x F n n xi x ∆+∆--+≈∂∂∆= ()[]2),21,(),21,(),,,(y O yk j i F k j i F y t z y x F n n yj y ∆+∆--+≈∂∂∆= ()[]2)21,,()21,,(),,,(z O zk j i F k j i F z t z y x F n n zk z ∆+∆--+≈∂∂∆=对时间离散:()[]22121),,(),,(),,,(t O tk j i F k j i F t t z y x F n n tn t ∆+∆-≈∂∂-+∆= (4) Yee 把空间任一网格上的E 和H 的六个分量,如下图放置:oyxzEyHzExEzHxEyEyEzEx HyEzEx图1 Yee 氏网格及其电磁场分量分布在FDTD 中,空间上连续分布的电磁场物理量离散的空间排布如图所示。
OptiFDTD操作说明

以下先描述本设计软件需要用到的几个基本设置,在了解这些基本设置后,最后从总体上总结下模型设计步骤。
(一)软件需要用到的几个基本设置(1)wafer的意义及其设置Wafer是设计模型的工作区域。
一个文件只能有一个wafer。
Wafer可以理解为背景空间。
Wafer有三维构成,x轴和z轴可以在平面上看到,如上图所示。
Y轴垂直于屏幕。
长度:沿着屏幕的水平方向(z轴)宽度:沿着平面的垂直方向(x轴)Wafer的包层是一个块状区域。
长度沿着z轴(屏幕水平方向),宽度沿着x轴(屏幕垂直方向),高度是沿着y正半轴(垂直屏幕向外)。
Wafer的衬底层是一个块状区域。
长度沿着z轴(屏幕水平方向),宽度沿着x轴(屏幕垂直方向),高度是沿着y负半轴(垂直屏幕向里)。
(2)profile、material的意义和基本设置。
Wafer设置中长度和宽度单位都是微米。
X轴方向向上,z轴方向向右。
XYZ三周方向满足右手螺旋定则。
Y轴负半轴空间对应wafer中的衬底区域。
Y轴正半轴空间对应wafer中的包层区域。
层状波导轮廓的设置:Width:x方向上的波导轮廓尺寸Thickness:y方向上的波导轮廓尺寸波导轮廓截面默认为xy面。
波导轮廓截面所在xy平面上,截面在某方向上具有渐变特性。
这里的水平和垂直就是对应z方向和x方向。
Start和end中的水平和垂直坐标,对应的是线性波导结构在zx平面内截面的中分线两端点的坐标。
Width指zx截面内与中分线垂直方向上的结构的尺度。
Depth指结构沿着y轴最靠内的截面所在的y轴坐标。
对于linear waveguide 而言。
从y=depth开始到wafer空间y的正半轴最大值,一直都分布着这种linear waveguide。
这里指厚度(即y方向上)的尺寸渐变。
这里的start和end下面的水平和垂直坐标分别对应波导在xz截面内中分线两端点的坐标。
Width下面的start和end分别指两端点所在端的宽度。
FDTD使用

以上面图像为例子,设置时只需要设置一个周期,然后将边界设为周期结构即可。
1.打开fdtd软件
2.单击structures设置结构。
3.选中物体单击右键设置参数。
给结构命名,x,y,z确定结构在各个方向上的范围。
5设置选中结构的材料,如果material里有想要的材料直接选中即可,没有的可以通过查询,将其折射率直接输入到index中。
6.当结构重叠时,可勾选下面按钮,设置重叠部分的优先性,数字越小优先性越高。
7.设置基底上的光栅结构,先设置下层Al。
8.设置中间层PMMA
9.设置上层Al
10.单击Simulation选中region设置模拟区域。
Geometry设置单元结构参数,一般选取一个周期即可,所以X span和Y span就是周期,然后在boundary conditions中将x,y都选为periodic。
点击OK.
11.在Source中选取plane wave,genaral中入射方向改为向下入射,geometry中X span和Y span选取的要比周期大,Frequency/wavelength中改变入射波长范围。
12.在Monitor中选取frequency domain field and power探测器。
勾选第一项,将frequency points变为200,将探测器放于光源上方探测反射率。
还可以在选取一个探测器放于下方探测投射,一次模拟可以放入多个探测器。
13.结构设置完成之后,点击RUN,运行,待运行完毕后,选择对应的探测器,可以看出探测到的结果。
FDTD案例分析续篇

11
纳米粒子散射
12
实例二 :纳米线栅偏振器
1、纳米线网格偏振镜紧凑光子偏振控制元素——与解决方 案设计和优化FDTD • 高对比度极化控制装置的组成sub-wavelength金属光栅纳米线偏振器件——正在取代网格批量光学元素。纳米线 网格偏振器件提供改进消光比对比,最小的吸收来解决高 亮度照明,紧凑的形式因素促进大规模生产和集成在小型 光学组件。然而,纳米线偏振器件是富有挑战性的网格组 件来设计,特别是如果制造缺陷都考虑进去。在这个应用 程序中,我们将展示FDTD解决方案可以用来最大化对比度 的纳米线偏振镜网格任意角度,同时保持高传播。
33
SPR纳米光刻
• 第三步:分析了表面等离子体共振光刻近场数据 详细的研究结果和数值的解决方案,所有复杂的光学波的 交互的接口的许多材料,包括硅基片上的反射,准确地对待。 一个阴谋的近场强度在截面通过银丝面膜层(y=0到60海里) 和光刻胶层(y = -50到0 nm)显示在对数。表面等离子体模 式是清楚地看到在银胶面罩/接口。周期性结构允许入射光 束夫妇counter-propagating表面等离子体波,这引起了亚波 长的变化在光阻层强度的设计思想。
18
纳米线栅偏振器
19
纳米线栅偏振器
• 第四步:模拟得到的响应非正态纳米线网格发病率照明。 铝光栅wiregrid偏振镜有TE传播的大约85%的normallyincident平面波。现在,与一个源呈四十五度角,传播下降到 大约83%。这些结果生成模拟一个时期的wiregrid偏振镜,然 后使用复杂的脚本的环境,在解决方案将FDTD响应从单个光 栅牙的反应,multi-tooth组成部的铝光栅。
36
6-1 FDTD举例

4. 编程 (1) 点源在中间(空间采样点第31点),编程时要考虑往+Z&-Z 方向传播。 (2) 编程时,以时间做外循环,计算各个时刻的电场E,磁场 H;由于前一时刻的E(H)和后一时刻的H(E)相互 关联,空间做内循环,迭代计算。 (3) ε 0 =8.854e-12;
μ0 =1.256e-6;
课程设计一 用FDTD模拟一维点源Ei(t)=Ex(t)=)sin[2π×109t] 在z方向的传播情况,模拟范围0~1.0m,点源在中间(0.5米 处)。 请画出t=0.5×10-9、10-9、6.0×10-9时刻的Ei~z的波形图; 分析在z=0和z=1.0处加吸收边界条件和不加吸收边界条件的波 形。 1. 推导其FDTD差分方程公式;
n
3. 空间和时间离散 (1) 空间步长:Δs≤(c/f)/12 (2) 时间步长: Δ t ≤ T/12=(1/f)/12 (3) 一维情况中的Courant稳定性条件: Δ t*c ≤ Δ s 根据题目所给条件可取: Δ t=1/f/20=0.05ps; Δ s=(c/f)/18=1/60m; 在1m范围内,可取60个空间步长,最少120个时间采样点。 取K=61(空间采样点),N=120可以符合要求。
Ei,(v/m) 0
-0.2
-0.4
0.4
-0.6
-0.5 0.2
-0.8
-1
0
-1
-1.2
-0.2
0
5
10
15
20 25 Z轴 ,(DS/2)
30
35
40
45
-1.5
0
5
10
15
20 25 Z轴 ,(DS/2)ຫໍສະໝຸດ 303540
FDTD原理及例子
u
n i 1
2uin
u
n i 1
2u
n i
u
n1 i
t2 c 2O x2 O t2
得: e jt
ct 2
e jk~x
2 e jk~x
2 e jt
x
最后得色散关 系
k~
1 x
cos
1
基础知识
麦克斯韦方程微分形式:
FDTD方式将时间进 行差分,并且磁场与 电场交替迭代更新
对于有耗媒质:
H D J t
E B t
•B 0
•D
时谐场形式:
H
D t
Je, Je
E
B E t Jm , Jm sH
Da Ca , Db Cb
,并注意到E与H在时间上差半个步长,
可以直接从磁场FDTD公式得到电场的FDTD公式。如:
Ex i, j, k, n 1 CaEx i, j, kEx i, j, k, n CbEx i, j, k
H y i, j, k 1, n 1 H y i, j, k, n 1
DbHy i,
j,
k
Ex i,
j,
k
x
1, n
z
Ex i,
j, k, n
H z i, j, k, n 1 DaHz i, j, kH z i, j, k, n
Ex i, j 1, k, n Ex i, j, k, n
数值稳定性问题
二维的Yee算法数值Courant稳定性条件
一个二维的FDTD程序
一个二维的FDTD程序% 本程序实现2维TM波FDTD仿真% 此程序用PML设置吸收边界条件% FDTD_2D_kongqi_PML% 仅含有Ez,Hx,Hy分量clear;clc; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1.初始化T=200; % 迭代次数IE=100; %JE=100;npml=8; % PML的网格数量c0=3*10^8; % 波速f=1.5*10^(9); % 频率lambda=c0/f; % 波长wl=10;dx=lambda/wl;dy=lambda/wl;pi=3.14159;dt=dx/(2*c0); % 时间间隔epsz=1/(4*pi*9*10^9); % 真空介电常数epsilon=1; % 相对介电常数sigma=0; % 电导率spread=6; % 脉冲宽度t0=20; % 脉冲高度ic=IE/2; % 源的X位置jc=JE/2; % 源的Y位置for i=1E+1;for j=1:JE+1;dz(i,j)=0; % z方向电荷密度ez(i,j)=0; % z方向电场hx(i,j)=0; % x方向磁场hy(i,j)=0; % y方向磁场ihx(i,j)=0;%ihy(i,j)=0;iz(i,j)=0; % z方向求和参量,频域卷积转化为时域求和end;end;for i=2E; %for j=2:JE;ga(i,j)=1;end;end; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %PML参数的设置for i=1E;gi2(i)=1;gi3(i)=1;fi1(i)=0;fi2(i)=1.0;fi3(i)=1.0;endfor j=1:JE;gj2(j)=1;gj3(j)=1;fj1(j)=0;fj2(j)=1;fj3(j)=1;endfor i=1:npml+1; %设置PML层中的参数xnum=npml+1-i;xn=0.33*(xnum/npml)^3;gi2(i)=1.0/(1+xn);gi2(IE-1-i)=1/(1+xn);gi3(i)=(1-xn)/(1+xn);gi3(IE-1-i)=(1-xn)/(1+xn);xn=0.25*((xnum-0.5)/npml)^3;fi1(i)=xn;fi1(IE-2-i)=xn;fi2(i)=1.0/(1+xn);fi2(IE-2-i)=1/(1+xn);fi3(i)=(1-xn)/(1+xn);fi3(IE-2-i)=(1-xn)/(1+xn);endfor i=1:npml+1;xnum=npml+1-i;xn=0.33*(xnum/npml)^3;gj2(i)=1.0/(1+xn);gj2(JE-1-i)=1/(1+xn);gj3(i)=(1-xn)/(1+xn);gj3(JE-1-i)=(1-xn)/(1+xn);xn=0.25*((xnum-0.5)/npml)^3;fj1(i)=xn;fj1(JE-2-i)=xn;fj2(i)=1.0/(1+xn);fj2(JE-2-i)=1/(1+xn);fj3(i)=(1-xn)/(1+xn);fj3(JE-2-i)=(1-xn)/(1+xn);end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 2.迭代求解电场和磁场for t=1:T;for i=2E; % 为了使每个电场周围都有磁场进行数组下标处理for j=2:JE;dz(i,j)=gi3(i)*gj3(j)*dz(i,j)+gi2(i)*gj2(j)*0.5*(hy(i,j)-hy(i-1,j)-hx(i,j)+hx(i,j-1));end;end; % 电场循环结束pulse=sin(2*pi*f*t*dt); % 正弦波源dz(ic,jc)=dz(ic,jc)+pulse; % 软源for i=1E; % 为了使每个电场周围都有磁场进行数组下标处理for j=1:JE;ez(i,j)=ga(i,j)* dz(i,j); %反映煤质的情况都是放到这里的% iz(i,j)=iz(i,j)+gb(i,j)*ez(i,j) ;end;end; % 电荷密度循环结束for j=1:JE;ez(1,j)=0;ez(IE,j)=0;endfor i=1E;ez(i,1)=0;ez(i,JE)=0;end;for i=1E; % 为了使每个磁场周围都有电场进行数组下标处理for j=1:JE-1;curl_e=ez(i,j)-ez(i,j+1);ihx(i,j)=ihx(i,j)+fi1(i)*curl_e;hx(i,j)=fj3(j)*hx(i,j)+fj2(j)*0.5*(curl_e+ihx(i,j));end;end; % 磁场HX循环结束for i=1E-1; % 为了使每个磁场周围都有电场进行数组下标处理for j=1:JE;curl_e=ez(i+1,j)-ez(i,j);ihy(i,j)=ihy(i,j)+fj1(j)*curl_e;hy(i,j)=fi3(i)*hy(i,j)+fi2(i)*0.5*(curl_e+ihy(i,j));end;end; % 磁场HY循环结束end;end;在Maxwell 旋度方程的差分表示中,按照Yee 氏的空间网格设置,将出现半空间步长,通过前一时刻的磁、电场值得到时刻的电、磁场值,并在每一时刻上,将此过程算遍整个空间中随时间变化的电、磁场值的解,但在编程计算中不使用1/2的空间表示,而要通过一定的相互关系把它表达出来,在自制的C 程序中采用数组来表示上面的表达式中各场值及系数,其表达式在程序中表示如下所示: ez[k+1][i][j]=CA[i][j]*ez[k][i][j]+CB[i][j]*CD*(hy[k][i+1][j]-hy[k][i][j] (6)+hx[k][i][j]-hx[k][i][j+1])hx[k+1][i][j+1]=hx[k][i][j+1]+CD*(ez[k][i][j]-ez[k][i][j+1]) (7) hy[k+1][i+1][j]=hy[k][i+1][j]+CD*(ez[k][i+1][j]-ez[k][i][j]) (8) 由于各场值起始均赋零,时间步数从零开始,每一时间步均按上面的顺序在整个模拟区计算一遍,这样场的实际那关系和空间关系就完全被体现出来。
FDTD原理及例子ppt课件
H D J t
E B t
•B 0
•D
时谐场形式:
H
D t
Je, Je
E
B E t Jm , Jm sH
• B m
• D e
H j( j )E
E jH
E(x, y, z, t) E0 (x, y, z,t)e jt H (x, y, z, t) H0 (x, y, z,t)e jt
)
z r (k)
只要给定了所有空间点上电/磁场的初值,就可以一步一步地求出任 意时刻所有空间点上的电/磁场值。
一维Maxwell方程的Yee算法
Ex Hy
Ex
n2 n 3/2
Hy Ex
n 1 n 1/ 2
n0
0
1
2
3k
H~
n1/ 2 y
(k
1) 2
H~
n1/ 2 y
(k
1) 2
ct zr (k
FDTD数值分析法
目录
1.麦克斯韦方程的基础知识 2.一维和三维Maxwell方程的Yee算法 3.数值稳定性分析 4.吸收边界条件 5.波源的设置 6.编程思路
麦克斯韦方程微分形式:
BPM 方式
基础知识
H D J t
E B t
•B 0
•D
基础知识
麦克斯韦方程微分形式:
FDTD方式将时间进 行差分,并且磁场与 电场交替迭代更新
DbHy i,
j,
k
Ex i,
j,
k
x
1, n
z
Ex i,
j, k, n
H z i, j, k, n 1 DaHz i, j, kH z i, j, k, n
fdtd mode expansion用法
FD-TD(finite-difference time-domain)模拟是计算电磁波在三维空间内传播的一种常用方法。
FD-TD模拟通常用于分析天线、微波器件和光学器件等电磁波问题。
其中,FD-TD mode expansion方法是用于分析波导中的模式问题的一种有效技术。
本文将介绍FD-TD mode expansion的基本原理、使用方法和在实际工程中的应用。
1. FD-TD mode expansion的基本原理FD-TD mode expansion方法基于模式理论,通过将波导中的场分解为不同模式下的分布来进行分析。
将电磁场分解为一系列基本模式的叠加,可以简化计算复杂度,提高分析精度。
FD-TD mode expansion方法可以有效地解决波导中模式耦合、传输特性等问题,是一种重要的仿真工具。
2. FD-TD mode expansion的使用方法(1)建立波导模型。
需要建立一个准确描述波导几何形状和介质特性的模型,包括波导的截面形状、尺寸、材料参数等。
(2)选择分析频率范围。
根据实际问题的需求,选择适当的频率范围进行分析,以得到所关心的波导模式。
(3)进行模式展开。
利用电磁场的模式分解理论,将波导中的场展开为一系列基本模式的叠加。
(4)求解模式系数。
通过数值计算方法,求解每个模式的系数,得到电磁场在各个模式下的分布。
(5)分析结果。
根据求解得到的模式系数,分析波导中各个模式下的场分布、传输特性等。
3. FD-TD mode expansion在实际工程中的应用FD-TD mode expansion方法在微波器件、光学器件等领域有着广泛的应用。
在微波集成电路设计中,可以利用FD-TD mode expansion 方法分析微带线、波导等结构中的模式耦合、传输特性等问题,指导器件的优化设计。
在光学器件领域,FD-TD mode expansion方法可以用于分析光波导、光纤等结构中的光场分布、波导耦合等问题,为光学器件的设计提供重要参考。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一基于Au薄膜正三角形孔阵列提取光场强度分布图本例子中取Au薄膜厚度30nm,三角形孔阵周期800nm,小孔直径600nm。
Au的材料模型选取“Au (Gold)–CRC”,或者自建材料模型。
参见hole arrays_E fied profile.fsp文件。
1.添加金薄膜,打开FDTD Solution 软件后点击“structure”,添加长方体模块。
如下图所示。
点击,对几何参数和材料类型等进行编辑。
参照下图。
先将“name”改为“Au 30nm”,在“Geometry”下设置金薄膜的几何尺寸,我们只需要对下图红框所示的左边一栏进行编辑,其中“x span、y span、z span”分别对应金薄膜的长、宽和厚度,而“x、y、z”表示其几何中心的坐标值,均设置为0。
在“x span”中输入“0.8*2+0.6”,“y span”中输入“0.8*sqrt(3)+0.6”,“z span”中输入“0.03”,对应金薄膜厚度为30nm,便可得到如下图所示的结果。
点击“material”,选择所使用的材料类型,如下图所示,选中“Au (Gold) - CRC”,点“OK”保存即可。
现在对金膜的几何尺寸和材料类型设置完成。
2.在金薄膜中添加小孔阵列。
点击中的三角形,在下拉菜单中选择“Photonic crystals”。
然后在屏幕右侧的“Object”一栏中选中“Hexagonal lattice PC array”,点击“Insert”进行添加。
在左侧的结构树“object tree”中选中“hex_pc”,即我们刚才添加进去的六边形阵列,点击对它进行编辑。
各参数设置如下图所示,其中“a”表示小孔之间的间距,即三角形孔阵的周期,“radius”表示小孔半径。
设置完成后,点“ok”保存。
经过上面的步骤,我们搭建的模型的如下图所示。
我们发现经过上面的设置所得到的三角形孔阵列其中两个小孔超出了金膜,为了好看起见,希望将多余的这两个小孔删掉,首先,如下图所示,在结构树下选中“hex_pc”,单击鼠标右键在菜单中选择“break groups”,不进行这项操作无法删掉多余的小孔。
在结构树种选择希望删除掉的小孔,所选择的部分会对应于结构视图中,如下图所示,此时,可单击右键选择“delete”进行删除,或者直接点左侧工具栏中的按钮删除。
这时得到我们希望的金纳米孔阵列如下图。
在左侧工具栏中选择可以对视图进行放大和缩小,鼠标左键放大,右键缩小。
3.添加平面光源。
在“source”下拉菜单中选择“plane wave”,如下图所示。
对光源参数进行设置。
在“general”中设置光源入射方向为z轴正方向,光源在xy面上的大小与金薄膜大小相同,区别在于其z轴位置不同。
在“general”、“geometry”和“frequency/wavelength”下的参数设置如下面三个图所示。
其它选项默认不变。
我们设置光源为单色光,波长为500nm。
设置完成后点击“ok”保存。
4.添加光探测器,仿真之后可得到垂直于z轴的平面上的电场强度分布。
选择“monitor”中的“frequency-domain field profile”。
“frequency-domain field profile”探测器对光场的计算比较精确,如果需要得到如透过率、反射率等与能量相关的量,则要选择“frequency-domain field and power”探测器,这个计算能量更精确一些。
对monitor进行设置。
在“general”下勾选“override golobal monitor setting”选项,设置“frequency point”为1,因为仿真所用光源为单一频率,只记录这个频率下的仿真结果就可以了。
Geometry 下的参数设置如下图。
对于“spectral averaging and apodization”和“advanced”选项,保持默认设置不变。
在“data record”下对于我们不关心的输出选项,比如不勾选“Hx”、“Hy”、“Hz”,仿真运行之后不会保持这些分量的值,可以有效减小仿真数据存储空间。
5.添加仿真区域。
点击“simulation”添加仿真区域。
如下图所示。
对仿真区域进行参数设置,如下面几个图所示。
在“mesh setting”选项中将mesh accuracy设为4,设置的数值越高网格划分约细致,但是我们同时要考虑计算机的内存,如果设置的数值过大,仿真运行时内存可能不够用,会导致仿真无法进行,如果此项数值设置过低,仿真结果可能不准确。
对于具有色散特性的金属材料,需要将“mesh refinement”选项设置为“conformal variant 1”,或者“conformal variant 2”。
“boundary conditions”参数设置如下图。
因为纳米孔阵列具有周期性结构,所以我们需要设置周期性边界条件,这样就可以只对最小单元结构进行仿真来模拟无限大的区域。
我们的结构和光源具有一定的对称性,设置对称性能有效减小仿真计算区域,提高效率。
设置对称性时要注意光源的对称性,如果极化方向与对称平面平行,则选择“symmetric”,如果极化方向与对称平面垂直,则选择“anti-symmetric”,我们选择的是平面光源,电场方向沿X轴极化,根据上面的准则,对称性的设置如下图所示。
6.添加网格覆盖区域。
在仿真计算中,我们往往需要在部分区域对网格结构进行更为精细的划分,以使得仿真计算的结果更加准确。
添加网格覆盖区域,就是对这个区域内的网格重新划分,提高计算精度。
因为本例子中金薄膜的厚度为30nm,计算色散材料需要更精细的网格,所以我们在金膜所在的区域重新划分网格。
在“simulation”的下拉菜单中选择“mesh”添加网格覆盖区域。
对“mesh”参数进行设置,如下图所示。
最小网格精度设置为2nm。
因为我们的金薄膜厚度比较小,所以最小网格尺寸要小一些仿真结果才能比较准确。
设置完成后点”ok”保存。
在运行仿真之前,还有两点需要注意一下。
第一,检查材料特性的拟合。
在“check”下选择“material explore”。
至此仿真模型搭建完毕。
模型结构如下图所示。
7. 在运行仿真之前,还有两点需要注意一下。
第一,检查材料特性的拟合。
在“check”下选择“material explore”。
在如下对话框中选择仿真中所用到的材料类型,本例子中选择“Au(Gold)-CRC”,因为光源设置为单色光,只有单一频率,所以无法考察材料拟合的好坏。
如果仿真计算的光源不是单一的频率,例如波段在400nm-800nm 之间,考察材料特性的拟合。
设置的参数如下图所示。
点击“fit and plot”,出现金的介电常数实部和虚部的拟合情况。
从两条曲线可以看出,我们所选的材料在400nm-800nm之间的波段的拟合的很好,说明所选择的材料类型正确。
第二,检查仿真运行所需内存,确保计算机有足够的内存来运行仿真。
在“check”下选择“check simulation and memory requirements”,就可以得到仿真计算所需内存。
如果需要的内存过大,超过了计算机的配置,就要考虑修改参数以减小所需内存。
8.首次运行仿真时,要对计算机进行配置。
点击“resources”,出现下图所示对话框,点“run tests”按钮检查测试是否成功。
如果配置测试通过,下面的“status”一栏中出现“success”。
配置成功后点击“save”保存。
9.运行仿真,点击“run”按钮仿真开始运行。
仿真运行对话框如下图所示。
10.仿真运行结束后,此时工程文件处于分析模式下,可以看到现在文件不能进行编辑了,注意“layout”按钮现在不要去点,所有的仿真数据都被保存在分析模式下,一旦返回“layout”模式下,仿真数据自动清除。
11.提取仿真数据。
选中“monitor”,在“result view”中就会显示仿真数据。
右键单击“result view”下的“E”,选择“new visualizer”,就可以得到电场分布图。
所得到的电场强度分布图如下图所示。
在右侧的“export to ....”下拉菜单中,JPEG表示将结果保存为图片格式,text表示将仿真数据导出到txt文件中。
二金纳米孔阵列透过率仿真在上面例子的基础上,只需要稍加改动,就可以对光穿过金纳米孔阵列的传输特性曲线进行仿真。
搭建模型过程与上面的例子相同,只需要在结构中添加“frequency-domain field and power”即可仿真得到透过率曲线。
见hole arrays_Transmittance.fsp文件。
对刚添加的monitor进行参数设置。
在“general”选项下将“frequency point”设置为200,其它参数的设置如下图。
修改光源参数,由原来的单一波长的光波变为波段在400nm-800nm之间的光波。
参数修改如下图。
仿真透过率时应该注意,如果完全匹配层设置的太少,则仿真结果可能出错,如果得到的透过率曲线中出现负值,则考虑是因为完全匹配层设置的过少的原因,应适当增加完全匹配层PML的层数。
我们仿真透过率时,在“FDTD simulation”下的“advanced options”选项下,修改“minimum pml layer”设置为64,,“maximun pml layers”的值设为128。
如下图所示。
网格覆盖区域的参数设置如下图所示。
考虑到计算机的内存容量,将网格设置的太小时,所需内存过大,则仿真无法进行。
检查仿真计算内存需要,然后运行仿真,计算结束后,进行如下操作,就可以得到金纳米孔的透过率曲线了。
在结构树下单击“monitor”右键,选择“visualize”下的“T”,就可以得到透过率曲线。
得到的透过率曲线如下图所示。