-
-
November 6, 2024 at 2:34 pm2357898783Subscriber
我在做一个有限周期光栅,观察不同衍射级的衍射光场分布,再参考您的论坛帖子光源大於有限週期光柵尺寸的模擬設置問題后,我使用了三种方式进行我的仿真,但对于仿真结果来看,光栅衍射级次和光场分布并没有达到预期效果。
所以采用下面三种方式进行我的仿真:
1. 我使用了TFSF作为我的光源,正入射到我的光栅结构(d=2微米)中,边界处使用PML边界条件,上层部分是金属银,下层为我的PDMS弹性体。
光栅几何设置
在光栅传输面上的光场分布
在z=-0.2微米处
在z=0.4微米处
在z=2.5微米处(如何验证我的高阶衍射的正确性)
1) 按照TFSF光源,在近场分布下可以利用峰值代替衍射级;
2) 远场的光场分布在高阶的情况是对的,这两种看起来衍射都不太明显
2. 使用高斯光束的标量光束(束腰半径为25微米)
光栅几何设置
在光栅传输面上的光场分布
在z=-1.2微米处
在z=-0.4微米处
在z=10微米处
3. 使用自己构造的平顶光束(我觉得我构造的平顶光束使用了tanh的函数实现,但中间部分有较低的区域,光栅传输面的光场分布有点奇怪)
在光栅传输面上的光场分布
在z=-0.2微米处
在z=0.4微米处
在z=10微米处
-
November 6, 2024 at 6:24 pmGuilin SunAnsys Employee
我估计是因为衍射光栅的个数比较少,直射部分太强。
TFSF仅适合计算近场,不适合做远场,因为监视器边缘的场不为零;
高斯光束因为场分布不均匀,导致衍射效果可能不够强。
你应该建立一个矩形平顶光束,减少不必要的直射光。
实验时只有这么大的光栅区域吗?实际照明光束什么样?
建议你先研究无限光栅看看高级衍射如何。如果衍射角很小或者只有零级衍射,可以将现有光栅想象成周期很大的局部光栅,用周期边界看看。
-
November 7, 2024 at 1:33 am2357898783Subscriber
老师您好,我们这个实验不适合使用周期性的边界条件。因为后面我们会有一些复合光栅,不满足周期性的边界条件。
在实际实验中,我们采用的是斜入射的,入射角为30度的平行平板光。实验的光栅尺寸是1毫米*1毫米,光栅常数是1.5微米。
现在我们构建的圆形平顶光使用的是tanh函数,类似于多个高斯光束的叠加。但我不清楚如何构建矩形平顶光束,所以想请教您有什么合适的方法?
-
November 7, 2024 at 1:40 am2357898783Subscriber
老师,这个是我构建平顶光束的一个脚本。另外补充一下我们上面的模型的仿真区域大小是50微米*50微米,最大能做到的仿真的光栅区域大小是100微米*100微米,更大的可能要在电脑上重新试一试。
# Clear existing variables
clear;
#switchtolayout;# Define position vectors for spatial grid
x = linspace(-45e-6, 45e-6, 41); # Updated x range
y = linspace(-45e-6, 45e-6, 41); # Updated y range
z = -0.2e-6; # Set z position to 0.11 micrometers
X = meshgridx(x,y);
Y = meshgridy(x,y);# Wavelength and wave vector
lambda0 = 0.5e-6;
f = c/lambda0;
k = 2*pi/lambda0;# Define the flat-top beam profile
w0 = 25e-6; # beam waist
sigma = 0.5e-6; # controls edge smoothness
G = 1.0; # peak amplitude# Beam envelope: Gaussian edges with a flat top
#envelope = G * exp(-((-(X^2 + Y^2) - w0^2)^2 / (2*sigma^2)));
R =30e-6;#调控平顶的半径
r = (R-sqrt(X^2+Y^2))/lambda0;
n=10;#调控平顶的范围
envelope = ((exp(n*r)-exp(-n*r))/(exp(n*r)+exp(-n*r))+1)/2;
# Define electric field components for radial polarization (as an example)
phi = atan2(Y, X);
Ex = cos(phi) * envelope;
Ey = sin(phi) * envelope;
Ez = 0;# Package field data into the dataset for Import Source
EM = rectilineardataset("EM fields", x, y, z);
EM.addparameter("lambda", c/f, "f", f);
EM.addattribute("E", Ex, Ey, Ez);# Save dataset to .mat file
#matlabsave("import_data.mat", EM);# Load dataset into Import Source
select("import_beam");
importdataset(EM);
set("center wavelength", lambda0);
set("wavelength span", 0);# Run simulation
#run;# Visualize the field
#visualize(EM);
-
-
November 7, 2024 at 4:02 pmGuilin SunAnsys Employee
1毫米*1毫米,光栅常数是1.5微米。 如此大的光栅,可以设想为无限周期。其角宽度基本上就是1毫米矩形函数对应的。至于细节可能不太一样。
你仿真几十微米宽度不代表1毫米的结果。
矩形平顶光束就是中间一部分强度相同而已。指定这部分区域后,你把这部分光源再除以tanh函数归一化即可。你琢磨一下如何操作。
-
November 8, 2024 at 1:28 am2357898783Subscriber
老师您好!谢谢您的回复!我们尝试构造下平顶光源。
另外,上面您提到“仿真几十微米宽度不代表1毫米的结果”,我想问一下需要一个什么样的尺寸的仿真才能近似看成一毫米的结果。因为我们实验中的光栅有部分区域是非周期排布,所以我们认为用周期条件不太合适。
-
November 8, 2024 at 4:46 pmGuilin SunAnsys Employee
你仿真的目的需要斟酌一下。 如果想要衍射级衍射角,用无限周期的单元仿真就可以。多大尺寸也无法代表1毫米的大小,FDTD是物理仿真,你给它什么它计算什么。实验与仿真各有优缺点和困难之处,显然此时要仿真实际器件就很困难,当然也不是不行,你需要足够强大的计算机!
我估计在有限计算资源情况下,无论如何仿真都有近似,有时是需要加上自己有根据的分析。如果是逐步地变周期,可能衍射级对应的衍射角宽度越来越大。你想想是不是。
-
November 10, 2024 at 11:41 am
-
November 11, 2024 at 5:51 pmGuilin SunAnsys Employee
如之前所说,你可以先测变周期光栅中最大和最小周期的无限周期结果,看看它们的衍射角差比多少。如果差别不大,可以同一个无限周期代替。
你仿真区的结果是否代表实际情况,允许误差是多少全凭你决定,我只是提一些建议而已。
你如果计算机足够强大,就仿真整个结构;不是很强大,就仿真一部分。至于与实际情况差别多少,我这里没法给你数量概念,你需要做些测试看看,这些不是仿真软件问题,是非常规仿真,不同的人可能根据不同情况仿真不同尺寸,你也无法说别人的不正确,因为还受到实际情况(计算机,时间)的限制。一般需分析来跟进。具体怎么做你需要边琢磨边测试,看看结果是否有明显改善。
-
- You must be logged in to reply to this topic.
-
1156
-
488
-
486
-
225
-
201
© 2024 Copyright ANSYS, Inc. All rights reserved.