请问怎么对两个边界同时进行扫参,或者是对三个边界同时扫参呢?

fdtd

#1

QQ%E6%8B%BC%E9%9F%B3%E6%88%AA%E5%9B%BE20180901112122
比如像这样,在两个维度上,对单元的周期边界长度进行扫参。这样是如何处理的呢,还是进行编程呢


#2

上图中,只需要对一个变量周期进行扫描就可以了。

若希望对两个或者更多变量进行扫描,建议写代码进行扫描,但要注意数据的存储和保存。


#3

上图中,x方向上的周期P等于y方向上的周期P。文献上的是对Px=Py,从500nm-900nm进行仿真的。所以在一个变量周期扫描是不行的。
那麻烦请问一下,写代码进行扫描,是怎么写的呢,我弄了几天了一天头绪都没有。能不能提醒一下,感谢。


#4

Px=Py的话,相当于一个变量了。

写代码的话,你得熟悉Lumerical Script,代码是在这里写的。不同命令在下面这个网页可以找到(Scripting Language):
https://kb.lumerical.com/en/index.html

Script的命令格式跟matlab类似,你若熟悉matlab,上手Script就容易了。


#5

熟悉一些脚本程序,但具体编写对二维仿真确实有些困难,能不能具体点呢?十分谢谢。


#6


相关的问题已经有很多人提过了,在提问之前,先使用搜索功能查找一下。你的问题既可以使用软件GUI中自带的sweep实现,也可以自己编写脚本来实现。



#7

您好,我按照您说的去做了,确实有效,网站提供的程序和方法对我帮助很大。谢谢
但是我对P= x span=y span从500nm到900nm仿真,遇到了问题。
这是我的程序,但是对sweep进行编程,只对第一个sweep进行编程,这明显是不对的。如果能把sweep的名字参数化,就能解决问题了。我查阅和搜索了相关资料,但没有找到。您能帮助我吗?
这是我的程序:
for(x=500;x<=900;x=x+5){
yy=3;
addsweep(0);P=x;
setsweep(“sweep”, “name”, “thickness_sweep_script”);
setsweep(“thickness_sweep_script”, “type”, “Ranges”);
setsweep(“thickness_sweep_script”, “number of points”, 1);

define the parameter thickness

para = struct;
para.Name = “xspan”;
para.Parameter = “::model::FDTD::x span”;
para.Type = “Length”;
para.Start = P1e-9;
para.Stop = P
1e-9;
para.Units = “microns”;

add the parameter thickness to the sweep

addsweepparameter(“thickness_sweep_script”, para);
insertsweep(“thickness_sweep_script”);P=x;
setsweep(“sweep”, “name”, “thickness_sweep_script”);
setsweep(“thickness_sweep_script”, “type”, “Ranges”);
setsweep(“thickness_sweep_script”, “number of points”, 1);

define the parameter thickness

para = struct;
para.Name = “xspan”;
para.Parameter = “::model::FDTD::y span”;
para.Type = “Length”;
para.Start = P1e-9;
para.Stop = P
1e-9;
para.Units = “microns”;

add the parameter thickness to the sweep

addsweepparameter(“thickness_sweep_script”, para);
#runsweep(“thickness_sweep_script”);
}
谢谢


#8

名字参数化是什么意思?你想要每个X都建立一个Sweep?如果仅扫描周期,你只需要在Loop之外,先建立Sweep,然后runsweep(“thickness_sweep_script”);就可以了。

请在考虑一下。