用径向偏振光的话如何测散射呢?

fdtd

#1

您好:
我想请教下如果设置一个径向偏振光,那怎么算一个颗粒的散射呢?因为颗粒前方设置个探测器的话就像光源设置为平面波一样,会把光源的光给考虑进去,怎么能排除这个光源的影响呢?算透射,反射也是一样的道理,都会考虑了光。有没类似TFSF这种可以把光给排除的?


如何用tfsf光源设置矢量光场?
#2

你想用自己的光源计算散射?如果是,你可以用用户自定义的方法:就是要做两个仿真,一个没有散射体作为参考,另一个有散射体,将结果相减得到散射,参见这个例子


#3

是的,我用自己定义的光源,importSource导入的,我用您给的这个案例算了个球的散射,但感觉不对,案例用的是高斯光,它也用的对称条件,脚本也好像也是针对这种对称情况处理的,mx=0;my=0;mz=0;#1 means using symmetry/antisymmetry BCs, automatic detect,写着是自动探测,但我看它下面的代码探测到x2面有数据就把mx那些置为1了。我自己定义的光源不能用对称条件,都用PML,直接拿这个脚本算会有问题吗?


#4

那当然不能直接用,需要根据情况修改mx=0;my=0;mz=0不使用对称性边界条件。另外,自输入光源常见的一个问题是,设置的尺寸太小,把光源截断了,因此我在编写脚本时有一个监视器显示强度分布,请你再检查一下。


#5

您好:
对于您写的代码我有几个问题想请教下。
1是这个代码是对于入射光源沿y正方向的对吧,如果我光源沿z是不对的吧,因为
#totaling the power, for the case the source is along y axis这个标题下面的代码P_scat和P_tot都是针对光源沿y入射情景吧?
2是我x,y,z都PML,不用对称性条件,这代码我看会自动检测的吧,
#obtain E, H and the power
if (havedata(“total::x1”)) {
mx=1;e_ref_x1=getresult(“total::x1”,“E”);
h_ref_x1=getresult(“total::x1”,“H”);
}
e_ref_x2=getresult(“total::x2”,“E”);
h_ref_x2=getresult(“total::x2”,“H”);
开始mx,my,mz都是0,它检测到x1有值置mx=1,如果我不是对称的要改什么呢?把mx=1给删了?但下面数据处理mx=1都跳过没法处理了。


#6

A1:你可以修改 source_axis=“z”;# give the source injection axis in order to get the averged intensity
测试后如果有问题请说明;
A2:这代码会自动检测,能自动提取数据。

你不需要修改。


#7

嗯嗯,我算了应该没问题。
但如果我想要斜入射的话怎么办?这代码生成的场是固定的了,import source里面没有角度可以调的。


#8

这个时候你需要将角度项添加到光源场里面。你现试一下吧。参见这个例子。你这个问题已经偏离题目了,再有问题请另外发帖。