FDTD操作案例
fdtd api python代码
fdtd api python代码FDTD API Python代码:模拟电磁波传播的利器FDTD(Finite-Difference Time-Domain)方法是一种数值求解电磁波传播问题的方法,它将Maxwell方程组离散化为差分方程,通过时间步进的方式求解电磁场的分布。
FDTD方法在电磁波传播问题的数值模拟中得到了广泛应用,而Python作为一种高效的编程语言,也提供了FDTD API Python代码,使得使用FDTD方法进行电磁波传播问题的模拟变得更加简单和方便。
FDTD API Python代码的使用方法非常简单,只需要导入相应的库,设置模拟参数,然后进行模拟即可。
下面是一个简单的FDTD API Python代码示例:```pythonimport fdtdimport numpy as np# 设置模拟参数nx, ny, nz = 100, 100, 100dx, dy, dz = 0.01, 0.01, 0.01dt = 0.01# 创建模拟对象sim = fdtd.Simulation(nx, ny, nz, dx, dy, dz, dt)# 设置边界条件sim.set_boundary_conditions(fdtd.BC_PERIODIC, fdtd.BC_PERIODIC, fdtd.BC_PERIODIC)# 设置电磁场源source = fdtd.GaussianPulseSource(0.5, 0.5, 0.5, 0.1, 0.1, 0.1, 0.5, 0.5, 0.5, 0.1, 0.1, 0.1)sim.add_source(source)# 进行模拟for i in range(100):sim.update()# 获取电磁场分布ex = sim.get_array('ex')ey = sim.get_array('ey')ez = sim.get_array('ez')hx = sim.get_array('hx')hy = sim.get_array('hy')hz = sim.get_array('hz')# 可以对电磁场分布进行进一步的处理和分析```在上面的代码中,我们首先导入了fdtd库和numpy库,然后设置了模拟参数,包括模拟区域的大小和分辨率,时间步长等。
fdtd边界条件
FDTD边界条件介绍FDTD(Finite-Difference Time-Domain)是一种求解时域电磁问题的数值仿真方法。
在FDTD方法中,边界条件的处理十分重要,其对仿真结果和计算精度有着直接影响。
本文将探讨FDTD边界条件的不同类型、原理以及应用。
一、边界条件的作用边界条件在数值仿真中是非常关键的,它模拟了物理领域内的边界行为。
在FDTD 方法中,合适的边界条件可以使电磁波在仿真空间内自由传播,减少反射和影响,提高仿真的准确性和稳定性。
因此,边界条件的选择和设计是进行FDTD仿真的重要一环。
二、FDTD边界条件分类根据FDTD方法的不同发展和应用,边界条件可以分为吸收边界条件(ABC,Absorbing Boundary Condition)和非反射边界条件(PML,Perfectly Matched Layer)。
下面将对这两种边界条件进行详细介绍。
1. 吸收边界条件(ABC)吸收边界条件旨在消除电磁波从计算区域反射回来的影响,使得计算区域内的电磁波在仿真过程中逐渐衰减并最终消失。
常见的吸收边界条件有:1.1 第一类Mur边界条件第一类Mur边界条件是FDTD中最早提出的一种吸收边界条件,其基本原理是通过改变仿真区域内Accuracy的系数,使得边界处的电磁波消散到仿真区域外。
该边界条件的特点是简单易实现,但在一些场景下可能会产生较大的数值反射。
1.2 第二类Mur边界条件第二类Mur边界条件通过在仿真区域内增加一层增益层来减少反射,改善第一类Mur边界条件的不足。
该边界条件的特点是相对于第一类Mur边界条件,其增加了计算复杂度,但能够有效抑制反射。
1.3 PML边界条件PML边界条件是一种效果更加优越的吸收边界条件。
PML边界条件通过引入复杂的嵌套介质结构,在仿真区域内产生消散性能损耗,从而减少电磁波的反射。
相比于Mur边界条件,PML边界条件能够更好地消除反射和影响,提高仿真的准确性和稳定性。
FDTD原理及例子
H
z
i,
j
1,
k,
n
z
1
H
z
i,
j,
k, n
1
y
2 t CaEw 2 t Ew所在空间位置
2t
CbEw 2 t Ew所在空间位置
三维Maxwell方程的Yee算法
媒质参数赋值 在所有空间点给电磁场分量赋初值
1 2
)
H
n 1 / y
2
(k
1 2
)
1
E
n x
(k
1)
E xn
(k)
t
0r
(k
1 2
)
z
一维Maxwell方程的Yee算法
采用归一化磁场
H~ 0 H 0
使得电场与归一化磁场有相同的数量级,于是可以得到FDTD
迭代公式为
H~
n 1 / y
2
(k
1) 2
1 x
cos
1
1
x ct
2
cost
1
我们想要k与没加元胞之前的k一样,但是差分近似后k变
的不一样
差分近似所带来的数值色散
将平面波带入差分方程所出现的稳定性、色 散、以及各向异性,这些特性并非由介质的 物理特性所引起,而是数值计算中的差分近 似所致,在FDTD数值计算中,稳定性、色 散、各向异性将影响计算精度。
y i, j 1,k 1
y
22
H x i, j, k, n 1 DaHx i, j, kH x i, j, k, n
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原理及例子
三维Maxwell方程的Yee算法
采用时间平均近似
n 1
n1
H x
t
n i, j1,k1
H H 2 x i, j1,k1
2 x i, j1,k 1
22
22
t
O
t
2
22
n
n
1
1
n
n
2
2
H H n
x i, j1,k1
x i, j1,k1
22
22
2
H O t x i, j 1,k 1
0
1
H
z
n 1 2
i, j
Hz
n1
2 i1, j
E e E n1 x i, j1 2
yt 0
n x i, j1 2
1 y y
e yt
0
1
H
z
H n1
2
i, j1
z
n1 2
i, j
第23页/共40页
波源的设置
为了用FDTD法模拟电磁场工程问题,必须在FDTD网格中 引入电磁波激励源。
电场和磁场在时间上交替抽样抽样时间彼此相差半个时间步三维maxwell方程的yee算法maxwell旋度方程为thhe????????????1??????????e???e???h?xzyxhyezeth??1????????????e?e???e?e???hh?yxzyhzxt??11????????????zyxzhxyt????????????h???h???e?xyzxezhyhte??11????????h???h???e?yzxyexzt??1?????????????zxyzeyxt??teeh???????????三维maxwell方程的yee算法??1212121212122112222nnnxxijkijkxijkhhhottt???????????????????采用时间平均近似????221212121212121212tohhhnkjixnkjixnkjix????????????????2211212121zozeezenkjiynkjiynkjiy????????????????221211?2121yoyeeyenkjiznkjiznkjiz?????????????e???e?????????y?????????????????????k?????nkjienjieznkjinkjikjidnkjihkj1idnkjihzzyybhxxahxx11最后得
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软件介绍及案例分析一
21
深紫外线(DUV)光刻仿真
• 第一步:光刻仿真设置在布局编辑 光学光刻技术继续改善,所以也有提高光刻仿真技术。时
域有限差分算法解决方案使用时域有限差分技术严格解决的 对象字段的面具。所有衍射,折射,干扰、吸收和极化效应计 算近场之面具没有近似。时域有限差分算法解决方案也把一 个分级网,这大大降低内存需求和时间每仿真。通过时域有 限差分算法的仿真数据的后处理,空中形象可计算出晶圆片
5
FDTD Solutions软件介绍—特点
• 高性能计算技术 -高速计算引擎 -优化的源代码 -并行计算充分利用多核计算机系统的高性能 -CPU使用的最大化 -支持常用的各种操作系统 -软件授权许可证与硬件、操作系统无关; -避免不必要的计算 -提供各种边界条件 -优化的集成设计 -高级网格化技术
铬二进制掩码是表现为建设布局编辑FDTD的解决方案。面 具的模型由一个周期性阵列的十字形空缺CD = 2λ 。布局编 辑器提供了一个全面的观点的结构模型和数据来源和监视器 用于进行计算。几个例子如何做这个显示在下面。
22
深紫外线(DUV)光刻仿真
23
14
CMOS图像传感器像素设计
• 第三步:优化角度回应的CMOS图像传感器和测量主要射线 角度:增加光学效率、降低光谱光相声
测量光谱光相声,向下的功率流在邻近的sub-pixels可以 计算,结合矢量。光谱光相声一般产生最小光学效率最大化, 但在陡峭的角度入射高浓度的相声观察到,在某种程度上,不 可避免的。更复杂的装置设计,由其他的像素元素(如互连) 也改变时,可以提供一种方法,可以减少整体相声水平。
15
CMOS图像传感器像素设计
16
一个二维的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 圆弧处理
fdtd 圆弧处理
FDTD,全称有限差分时域法,是一种常用的数值计算方法,用于模拟电磁波的传播和散射。
在处理电磁波与圆弧形结构相互作用的问题时,通常会采用FDTD方法。
以下是使用FDTD方法处理圆弧的基本步骤:
建立模型:首先,需要建立一个描述圆弧结构的几何模型。
这个模型应该包括圆弧的半径、高度、材料属性等信息。
网格划分:在几何模型上划分网格,用于离散化处理。
网格的大小会影响计算的精度和计算量,需要根据实际情况选择合适的网格大小。
初始条件和边界条件设置:根据问题设定初始条件和边界条件。
例如,如果圆弧结构是封闭的,可能需要设定封闭的边界条件;如果圆弧结构是开放的,可能需要设定开放的边界条件或者散射边界条件。
时间推进:使用FDTD方法进行时间推进计算,模拟电磁波在圆弧结构中的传播和散射过程。
在每个时间步长内,根据麦克斯韦方程和初始条件、边界条件更新电磁场量(如电场和磁场)。
后处理:对计算结果进行后处理,例如可视化、提取信息等。
后处理可以帮助理解电磁波在圆弧结构中的传播特性和散射规律。
值得注意的是,处理圆弧形结构时,需要注意一些特殊的问题。
例如,由于圆弧形结构的曲率,电磁波在传播过程中可能会发生聚焦、散射等现象。
此外,对于非线性材料或者有源电路等复杂情况,还需要考虑更多的物理效应和边界条件。
以上是使用FDTD方法处理圆弧形结构的基本步骤和注意事项。
具体实现时,还需要根据具体问题和需求进行相应的调整和处理。
FDTD软件介绍及案例分析一
15
CMOS图像传感器像素设计
16
CMOS图像传感器像素设计
17
CMOS图像传感器像素设计
• 第四步:点扩展函数计算通过时域有限差分算法解CMOS影 像感测器 相声可表征空间光通过点扩展函数——多少接收信号量
3
二:FDTD Solutions软件介绍—特点
2、软件特点: • 该软件用于下一代光子学产品的精确、多功能、高性能仿真
设计 -精确严格求解3维矢量麦克斯韦方程 -是学术界尖端研究和工业界产品开发 -易学易用的设计工具 -及时地充分利用高性能计算技术 • 该软件可解决具有挑战性关键设计的技术 -能高效准确地模拟色散材料的难题 -独有的多系数材料模型 -为准确描述色散材料的性质提供了理想的工具
一:公司背景介绍
1、公司介绍 • FDTD Solutions软件由加拿大Lumerical Solutions公司出品。
该公司成立于2003年,总部位于加拿大温哥华。用户用该 公司软件已发表大量高影响因子论文,并被许多国际著名 大公司和学术团队所使用 • FDTD Solutions:基于矢量3维麦克斯维方程求解,采用时 域有限差分FDTD法将空间网格化,时间上一步步计算,从 时间域信号中获得宽波段的稳态连续波结果,独有的材料 模型可以在宽波段内精确描述材料的色散特性,内嵌高速、 高性能计算引擎,能一次计算获得宽波段多波长结果,能 模拟任意3维形状,提供精确的色散材料模型
铬二进制掩码是表现为建设布局编辑FDTD的解决方案。面 具的模型由一个周期性阵列的十字形空缺CD = 2λ 。布局编 辑器提供了一个全面的观点的结构模型和数据来源和监视器 用于进行计算。几个例子如何做这个显示在下面。
22
FDTD使用说明文档
FDTD使用说明文档FDTD(Finite-Difference Time-Domain)是一种计算电磁波动方程的数值模拟方法。
它通过将空间和时间离散化,将整个问题转化为了差分方程的求解。
FDTD方法适用于计算二维和三维空间中的电磁波的传播和辐射问题,广泛应用于大气物理、电磁学、光学和电磁兼容等领域。
下面是FDTD的使用说明文档,包括基本原理、步骤和参数设置等。
一、基本原理:FDTD方法基于麦克斯韦方程组,将空间和时间划分为网格进行离散化,通过差分形式的麦克斯韦方程进行求解。
具体步骤如下:1.空间离散化:将计算区域划分为网格,每个网格点上都有电场和磁场分量。
2.时间离散化:使用时间步长Δt,将时间进行离散化。
3.更新电场:根据麦克斯韦方程组的电场更新公式,根据磁场的值更新电场的值。
4.更新磁场:根据麦克斯韦方程组的磁场更新公式,根据电场的值更新磁场的值。
5.边界条件:设置适当的边界条件,如吸收边界条件、周期性边界条件等。
6.重复步骤3-5,直到模拟结束。
二、步骤:使用FDTD方法进行模拟一般可分为以下步骤:1.设定计算区域的大小和网格划分,根据模拟需求确定网格节点数和间距。
2.初始化电场和磁场,设置初始场分布。
3.根据模拟需求设置时间步长Δt,以及计算的总时间或模拟步数。
4.迭代更新电场和磁场,按照FDTD的原理进行计算。
5.设置边界条件和吸收边界条件,确保计算区域的边界不会对计算结果产生影响。
6.输出结果,根据需求选择输出电场、磁场以及网格中其他物理量的数值。
7.模拟结束。
三、参数设置:在使用FDTD方法进行模拟时,一些重要的参数需要进行合理的设置,以保证模拟结果的准确性和稳定性:1.网格分辨率:根据模拟的需求和计算资源,设置合适的网格划分和节点数,以充分捕捉到目标问题的细节。
2.时间步长:时间步长Δt决定了模拟的时间分辨率,需要根据模拟的频率范围和计算精度要求设置。
3.边界条件:选择适当的边界条件,可以是吸收边界条件、周期性边界条件等,以避免计算区域的边界对计算结果的影响。
FDTD_solutions操作案例1
以上面图像为例子,设置时只需要设置一个周期,然后将边界设为周期结构即可。
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,运行,待运行完毕后,选择对应的探测器,可以看出探测到的结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一基于A u薄膜正三角形孔阵列提取光场强度分布图本例子中取Au薄膜厚度30nm,三角形孔阵周期800nm,小孔直径600nm。
Au的材料模型选取“Au (Gold)–CRC”,或者自建材料模型。
参见hole arrays_E fied 文件。
1.添加金薄膜,打开FDTD Solution 软件后点击“structure”,添加长方体模块。
如下图所示。
点击,对几何参数和材料类型等进行编辑。
参照下图。
先将“name”改为“Au 30nm”,在“Geometry”下设置金薄膜的几何尺寸,我们只需要对下图红框所示的左边一栏进行编辑,其中“x span、y span、z span”分别对应金薄膜的长、宽和厚度,而“x、y、z”表示其几何中心的坐标值,均设置为0。
在“x span”中输入“*2+”,“y span”中输入“*sqrt(3)+”,“z span”中输入“”,对应金薄膜厚度为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 fieldprofile”探测器对光场的计算比较精确,如果需要得到如透过率、反射率等与能量相关的量,则要选择“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 文件。
对刚添加的monitor进行参数设置。
在“general”选项下将“frequency point”设置为200,其它参数的设置如下图。
修改光源参数,由原来的单一波长的光波变为波段在400nm-800nm之间的光波。
参数修改如下图。
仿真透过率时应该注意,如果完全匹配层设置的太少,则仿真结果可能出错,如果得到的透过率曲线中出现负值,则考虑是因为完全匹配层设置的过少的原因,应适当增加完全匹配层PML的层数。
我们仿真透过率时,在“FDTD simulation”下的“advanced options”选项下,修改“minimum pml layer”设置为64,,“maximun pml layers”的值设为128。
如下图所示。
网格覆盖区域的参数设置如下图所示。
考虑到计算机的内存容量,将网格设置的太小时,所需内存过大,则仿真无法进行。
检查仿真计算内存需要,然后运行仿真,计算结束后,进行如下操作,就可以得到金纳米孔的透过率曲线了。
在结构树下单击“monitor”右键,选择“visualize”下的“T”,就可以得到透过率曲线。
得到的透过率曲线如下图所示。