matlab设置边界_利用Matlab处理Lumerical FDTD的三角纳米片电场分布仿真结果

本文介绍了如何将Lumerical FDTD的电场分布仿真结果导入到Matlab中进行处理。通过FDTD原始结果、数据导出到Matlab的步骤以及在Matlab中的绘图技巧,详细阐述了如何优化图片分辨率和比例,并提供了调整FDTD图像边界的两种方法。最后,使用Matlab的contourf和pcolor函数展示了电场分布的可视化效果。
摘要由CSDN通过智能技术生成

FDTD计算得到的电场分布,但是FDTD通过另存为jpg或者截屏所得到的图片分辨率很低,得到的图片往往不能直接使用。因此,可以通过脚本输入到Maltab,然后再利用Matlab处理图片并输出。
但是将数据从FDTD输出到Matlab中,并不是想象中那么简单,经历了好几次坑,反复摸索之后,得到了一种比较可行的方案,介绍如下。

1. FDTD原始结果

这里我们选用三角纳米片的电场分布仿真结果进行举例。图1是FDTD直接输出的结果(截图),可以明显看出,x方向和y方向的比例并不相同,而且不容易调节成比例尺相同,我目前有两个可行的方案可以解决这个问题,一种是先建立一个方形的图片,利用签字笔在电脑屏幕上画出方形的边界,然后再反复调节FDTD的图片,使其边界和画出的边界重合;第二种方案相对更精准也更方便,借用Snipaste截图软件创建一个方形的贴图,这个好处是这个贴图可以一直置于顶层,然后再调节FDTD中图片的边界即可。这两种方案都是调节好之后进行截图,因为直接另存,FDTD输出的图片更加模糊,而且也没有在FDTD Solutions软件中找到可以设置分辨率的选项(FDTD Solutions版本为2018版),因此可以使用高分辨率截图软件或者较高分辨率的软件,然后将图片放到PS或者AI中进行分辨率的进一步调节。FDTD中能够调节的着实比较少,很有必要继续调整。

7dc1bf9cd4f8da42d5266f87fa6a16bb.png

2. FDTD结果导出到Matlab

FDTD数据导入到Matlab主要参考Lumerical官网的介绍文档matlabsave。
可以通过如下脚本实现电场的读取:

1
2
3
4
E=getresult("z=0","E");
E2=getelectric("z=0");
E1=sqrt(E2);
matlabsave("tri120.mat",E,E1);

其中E得到的是一个struct结果:

1
2
3
4
5
6
7
8
9
包含以下字段的 struct:
E: [48841×3 double]
Lumerical_dataset: [1×1 struct]
f: 4.2827e+14
lambda: 7.0000e-07
x: [221×1 double]
y: [221×1 double]
z: 0

struct中E是一个包含三个x, y, z三个方向的电场分布,是矢量信息,而通过getelectric并开根号得到的是电场的标量数值。值得一说的是,对结构体struct中内容的调用可以采用E.x等命令进行直接读取。
值得注意的是,FDTD和Matlab采用的矩阵规则不同,输出后的结果需要进行非共轭转置,才能够和FDTD的结果进行对应。
x,y, E 等的信息除了利用getdata或getresult获取以外,也可以通过右键单击,将结果输出到脚本,可以得到相同的效果。

f1739b50550c791aa93666d3a228d185.png

3. Matlab作图

将电场结果,x,y,z数据导出到matlab中之后,作图可以有多种方案,contour,contourf,pcolor等均可以实现,pcolor更为方便。

5dbb16ed4ac02a883b2b413a5f4cd1b4.png

contourf和pcolor的语句如下:

1
2
[C,h] = contourf(E,M) %counterf, M越大,越精细
h = pcolor(x,y,E) %pcolor

如图3为pcolor输出的结果。作图后,仍需进行如下调整:

1
2
3
4
set(h,'LineStyle','none'); %线型设置为无
colorbar %色标
colormap jet %色标模式选用jet
axis equal %x, y 等比例尺

最后,如果有仿真相关需求,欢迎通过微信公众号联系我们。

微信公众号:320科技工作室。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值