FDTD Script命令学习-farfield3d/farfieldux/farfielduy

本文介绍了FDTD方法中用于3D模拟的farfield3d命令,用于将功率或场轮廓投影到远场,生成电场强度数据。命令包括两种语法,分别适用于监视器和数据集。参数包括监视器名称、频率点、投影分辨率等。farfieldux和farfielduy命令则分别用于获取远场数据的ux和uy坐标分量。文章提供了示例代码展示如何使用这些命令进行远场分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、参考FDTD官网farfield3d命令介绍:

https://optics.ansys.com/hc/en-us/articles/360034930693-farfield3d-Script-command

 1. farfield3d命令功能:在3D模拟中将给定的功率或场轮廓监视器,或直线数据集投影到远场,将会返回电场强度|E|^2。

(1) 语法1:out=farfield(“mname”, f, na, nb, illumation, periodsa, periodsb, index, direction) ;将给定的功率或常轮廓监视器投影到远场。如果1个频率点被投影,将会返回N*M阶矩阵,其中N和M相当于na和nb投影的分辨率,即个数;如果多于1个频率点被投影,将会反馈N*M*P阶矩阵,其中P相当于被投影的频率的点数;

(2)语法2:out=farfield(dataset, f, na, nb, illumation, periodsa, periodsb, index, direction);参考语法1介绍,二者区别在于本语法是将数据集dataset中的数据返回

2.  farfield3d语法中相关参数定义说明:

(1)mname:监视器名称(mintor name),必须输入(required),属于字符串;

(2)dataset:包含电场E和磁场H的直线型数据集,必须输入(required),属于数据集;

(数据集的介绍可参考https://optics.ansys.com/hc/en-us/articles/360034409554-Datasets

(3)f:目标频率点的索引,可以是一个数字或者矢量;在R2016b (这个是matlab的版本??)中引入了多线程投影功能可以允许多个频率点的数据同时进行投影。选择性输入(optional),不输入时默认值为1,属于矢量;

(4) na/nb:投影到远场的点数,选择性输入(optional),不输入时默认值150,属于数字;

(5) illumination:用于周期性结构,对于高斯照明输入1,对于平面波照明输入2;选择性输入,不输入时默认值为1,即采用高斯照明,属于数字;

(6)periodsa/periodsb:周期性照明中采用的周期数;选择性输入(optional),不输入时默认值1,属于数字;

(7)index:进行投影的材料的折射率,选择性输入(optional),不输入时默认值为监视器中心处才材料折射率,属于数字;

(8)direction:可以为±1,选择性输入(optional),不输入时默认值为最大功率流方向,属于数字;

3. 下面的表格总结了不同监视器取向下ux, uy坐标矢量和周期输入特性与坐标轴的对应关系。

监视器取向

监视器表面法线

‘na’,’ux’,’period a’对应于

‘nb’,’uy’,’periods b’对应于

XY平面

Z

x轴

y轴

XZ平面

Y

x轴

z轴

YZ平面

X

y轴

z轴

4. FDTD官网示例:

(1)第一个示例:对名称为“monitor”的2D监视器的远场投影进行成像。在该示例中选择第二个频率点进行投影。如果监视器中只含有与一个频率的数据,第二个参数可以不用输入。

E = farfield3d("monitor",2); #2表示第二个频率点
ux = farfieldux("monitor",2); #farfieldux命令参考下面说明
uy = farfielduy("monitor",2); 
image(ux,uy,E,"","","title","polar"); #ux和uy分别为x和y轴,对E进行作图,对应的图表名称“polar”

思考:farfield("monitor",2)中2可以被识别为f的数值,其它参数均采用默认值;如果对于后面参数不再采用默认值时,前面的参数一定要进行输入,比如na=nb=1000时,输入应为farfield("monitor",2,1000,1000);

(2)第二个示例:对一个直线型数据集的远场投影进行成像。这里的数据集来自一个2D监视器。

dataset=getresult("monitor", "E"); #采用getresult命令来获取名称为monitor的监视器中数据集E的数据
dataset.addattribute("H",getattribute(getresult("monitor","H"),"H"));#采用getresult获取名称为“monitor"的监视器中的数据集H的数据,然后采用getattribute命令获取数据集中的所有属性,最后采用addattribute命令在数据集dataset中添加一个矢量属性H,包含H的所有属性;
E = farfield3d(dataset,2); 
ux = farfieldux(dataset,2); 
uy = farfielduy(dataset,2); 
image(ux,uy,E,"","","title","polar"); 

思考:在getattribute命令中未找到getattribute(getresult("monitor","H"),"H")这种语法说明,即getattribute(dataset,"a")格式。不知此处的"H"代表啥?

参考FDTD官网getattribut命令:https://optics.ansys.com/hc/en-us/articles/360034409534-getattribute-Script-command

二、参考FDTD官网farfieldux/farfielduy命令介绍:

https://optics.ansys.com/hc/en-us/articles/360034410134-farfieldux-Script-command

https://optics.ansys.com/hc/en-us/articles/360034410154-farfielduy-Script-command;

1. Farfieldux命令功能:将farfield3d中进行3D模拟获得的远场数据来赋值给ux矩阵。可以参考farfield3d文档中关于不同监视器取向ux,uy,na,nb的解释信息。

(1)语法1 out=farfieldux(“mname”, f, na, nb, index) :可以参考farfield中的说明,相关参数定义同farfield3d。获得的矩阵为N*M阶矩阵,其中N是空间索引数目,M是频率点数;

(2)语法2 out=farfieldux(dataset,f,na,nb,index): 可以参考farfield中的说明,相关参数定义同farfield3d。获得的矩阵为N*M阶矩阵,其中N是空间索引数目,M是频率点数。

2. Farfielduy命令功能:将farfield3d中进行3D模拟获得的远场数据来赋值给ux矩阵。可以参考farfield3d文档中关于不同监视器取向ux,uy,na,nb的解释信息。

(1)语法1 out=farfielduy(“mname”, f, na, nb, index) :可以参考farfield中的说明,相关参数定义同farfield3d。获得的矩阵为N*M阶矩阵,其中N是空间索引数目,M是频率点数;

(2)语法2 out=farfielduy(dataset,f,na,nb,index): 可以参考farfield中的说明,相关参数定义同farfield3d。获得的矩阵为N*M阶矩阵,其中N是空间索引数目,M是频率点数。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值