如何在场的.fld文件中添加法向和面积以便做重叠积分?

孙老师您好!我使用overlap指令计算两个场的重叠积分时遇到如下错误:


场1来源于DFT监视器,场2是自建光源,保存成.fld文件再读入d-card(因为我不知道如何直接把.mat光源文件与DFT监视器做overlap)。将光源转成.fld的脚本为ellipse guassian_new2fld.lsf (1016 Bytes) 和usr_create_fld.lsf (3.6 KB) ,ellipse guassian_new2fld.lsf中的第29、30行是为了将光斑转换至Y-Z平面适应仿真结构。

使用getdata得到监视器中的数据,DFT中的数据有:image
读入d-card的光源包含的数据有:
image
缺失了surface_normal和dimension,请问如何在user_create_fld.lsf中补上这两个量?

其实这个问题源于我想计算反射回光源的能量。如果直接在光源前放置DFT监视器的话受到反射光的影响就不能得到正确的纯光源场。所以如果能让DFT监视器只记录沿一个方向传播的光场的话问题就简单了。不知道孙老师有什么方法?

谢谢!

此种情况我建议提取所有数据,自己写脚本计算overlap。
我这里有一个脚本供你参考。
第一步:计算光源的场
第二步:从监视器或者LDF文件中提取数据、
第三步:计算OVERLAP
suppose the cross section is in yz

c11=Ey1conj(Hz1)-Ez1conj(Hy1);

c22=Ey2conj(Hz2)-Ez2conj(Hy2);

c12=Ey1conj(Hz2)-Ez1conj(Hy2);

c21=Ey2conj(Hz1)-Ez2conj(Hy1);

p11=integrate(c11,1:2,y0,z0);

p22=integrate(c22,1:2,y0,z0);

p12=integrate(c12,1:2,y0,z0);

p21=integrate(c21,1:2,y0,z0);

?overp=real(p12*p21/p11)/real(p22);

overlap_illustration.lsf (1.5 KB)
也可以直接提取场参数
Ex=pinch(getdata(“monitor_2_1”,‘Ex’));
Hx=pinch(getdata(“monitor_2_1”,‘Hx’));
参见 几个简单实用的脚本Script命令:用于结果分析

这个是解决脚本计算Overlap的帖子.

至于你说的计算反射光的场,请另外一个帖子详细说明. 如果只是计算反射率,请参见这个帖子
如何计算吸收率以及监视器应该放在光源背后还是前面
其它情况请另开一个帖子详细说明.

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.