如何提取fde计算模式的电磁场分量


#1

Lumerical mode-solutions仿真光子晶体光纤光栅,如何写入光栅 继续讨论:

你首先需要将模式的电磁场取出来,然后积分。这个脚本得到电场和磁场以及分母,至于分子,你需要从现有坐标里面提取出空气孔的坐标,相当于给分母的被积函数添加一个窗口函数,这个你自己做吧。


如何计算指定面积的模式部分功率或者限制因子(脚本窗口函数)
#2

多谢老师回复。分母的脚本是给了链接么?
然后关于气孔坐标,应当是找出横截面上折射率为1的点的坐标,坐标点的精度问题是否应该考虑呢?气孔直径2.6µm,max mesh=0.1µm。


#3

抱歉忘记附脚本了:get_mode_data.lsf (147 字节)
坐标点的精度问题不需要考虑,因为内部给出的折射率就是按网格点的。你可以根据折射率的大小设置这个窗口函数。
你可以参考这个帖子


#4

我参考这个贴子写了过滤函数,但是计算结果和分母一样,过滤函数没有起作用。
x = getdata(“mode1”,“x”);
y = getdata(“mode1”,“y”);

Ex = getdata(“mode1”,“Ex”);
Ey = getdata(“mode1”,“Ey”);
Hx = getdata(“mode1”,“Hx”);
Hy = getdata(“mode1”,“Hy”);

Pz=pinch(Exconj(Hy)-Eyconj(Hx));
P=integrate(Pz,1:2,x,y);

n=getresult(“FDE::data::material”, “index”);
n = n.index_x;
filter=matrix(length(x),length(y));
for (i=1:length(x)) {
for (j=1:length(y)) {
if(n(i,j)=1) {
filter(i,j)=1;
} else {
filter(i,j)=0;
}
}
}
Exf=pinch(Ex)*filter;
Eyf=pinch(Ey)*filter;
Hxf=pinch(Hx)filter;
Hyf=pinch(Hy)filter;
Pzf=pinch(Exf
conj(Hyf)-Eyf
conj(Hxf));
Pf=integrate(Pzf,1:2,x,y);


#5

这个语句错误,正确的应该是
if(n(i,j)==1) {

以后再出问题,请将脚本文件直接发上来,因为我需要测试,有时间拷贝下来的脚本因为格式问题需要大量修改引号,比较费时间。