FDTD快速入门之Lumerical脚本语言Pickup(七)数据获取与分析(Analysis)

您所在的位置:网站首页 absorb咋读 FDTD快速入门之Lumerical脚本语言Pickup(七)数据获取与分析(Analysis)

FDTD快速入门之Lumerical脚本语言Pickup(七)数据获取与分析(Analysis)

2023-10-20 07:07| 来源: 网络整理| 查看: 265

文章目录 前言数据获取数据可视化“?”命令

前言

这篇文章里,我们讲一讲如何进行仿真数据的获取和分析。FDTD的仿真结果通常只有光波的复振幅、相位、透射率等较为简单的数据;如果想要获得一些自己想要的结果,比如材料表面的相位损失,衍射波的分布,以及一些更复杂的结果,就需要对获取的数据进行分析。本文仅列出一部分关于仿真结果获取的命令,关于更复杂的分析和计算我们将不会在本文中说明,大家可以在FDTD给出的一些分析组(Analysis group)中查看,也可以根据自己阅读的文献或有关理论编写自己的分析脚本。

下面我们假定仿真模型为如下的一个模型,并且运行后处在Analysis模式(这个时候可以直接获取仿真结果并查看,也可以利用脚本进行数据的分析),在此基础上我们使用后文的脚本绘制一段监视器T处获取的“频率-相位”关系。 在这里插入图片描述

数据获取

一般来说仿真结果的获取方式有getdata()和getresult()两种,而原始数据可以通过get()和getnamed()获取,下面给出了几种不同方式获取数据的例子:

#使用get获取光源位置 select("Planewave"); source_z=get("z"); #使用getnamed获取监视器T位置 T_z=getnamed("T","z"); #使用getdata获取T所在位置的光波相位 Ey=getdata("T","Ey"); phase=angle(Ey); phase=pinch(phase); #使用getresult获取光波的频率f E=getresult("T","E"); f=E.f; #绘制f-phase曲线 plot(f,phase,"f Hz","pha");

输出结果如图: 在这里插入图片描述

数据可视化

一般来说FDTD里面主要绘制的都是数据的二维平面图,所以有三种命令:

plot(一维折线图,需要至少两组数据)image(二维彩色图,只能以二维矩阵作为输入)visualize(二维彩色图,以数据集(dataset)作为输入) 示例如下: #plot x=linspace(1,50,50); y=randmatrix(1,50); plot(x,y,"x","y"); #image mtx=randmatrix(50,50); image(mtx); #visualize a=linspace(1,50,50); b=linspace(1,40,40); R=randmatrix(length(a),length(b)); r=matrixdataset("r"); r.addparameter("a",a); r.addparameter("b",b); r.addattribute("R",R); visualize(r);

下面是输出(按顺序排列):

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 一般来说getresult()获取的是dataset,可以直接用visualize绘图,如果是个人处理过的数据,用plot或者image更为常见。

“?”命令

FDTD设置参数和获取数据的方式相对来说比较简单,但是有的时候我们可能并不清楚自己想要获取的数据叫什么名字,或者不知道能够从监视器中获取哪些结果,那么可以通过在单行命令窗口输入"?"命令很方便的得到(图中红圈标出的位置)在这里插入图片描述

下面是一些例子:

?get;

在这里插入图片描述

?getdata("R");

在这里插入图片描述

?set;

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3