学习例子solver_far_field.fsp时的一些问题


#1

solver_far_field.lsf (6.0 KB)solver_far_field.fsp (13.1 KB)

孙老师,我在学习例子solver_far_field.fsp的时候,脚本solver_far_field.lsf中有些语句不太明白。

  1. 根据脚本中第77和78行的语句E = farfieldvector3d(“z2”);Ex = pinch(E,3,1);可以得到远场的Ex分量。这里的Ex是关于ux和uy的函数,利用语句image(ux,uy,abs(Ex),"","","|Ex|");画出的图为左图;同样的数据,利用脚本中第83行语句image(ux, uy, abs(Ex),"","","|Ex|",“polar”);画出的图如右图所示。右图是转化成了极坐标系,但是如何得到theta与Ex的关系的?我们得到的数据只有ux, uy, 和Ex,其中ux和uy都与方位角phi有关系,右图周围一圈角度应该就是phi;右图中横线上标注的10 20 30 40 50应该就是theta吧?但是theta应该与z轴上的坐标有关系才对,这里并没有出现z坐标,利用这个命令画出的图是如何与theta角建立起的联系?
  2. 关于farfield3d()函数
    我查了一下,farfield3d(“mnamed”, f, na, nb, illumination, periodsa, periodsb, index, direction),其中na和nb代表The number of points in the far field.
    脚本中第172行,E2far1=farfield3d(m,1,res,1);按照顺序,res对应na,1应该对应nb,这样算出来的是远场对应的是哪个位置的强度值?按照我之前的理解,应该是远场强度随x坐标的变化。但是脚本第183行plot(theta,E2far1,E2exact1,“theta”,"|E|^2",“1m radius”);
    画的却是计算出来的远场随theta的变化,请问软件是怎么知道对应的是theta而不是x或者其他的坐标呢?

#2

Theta与Z无关;
首先你需要将ux和uy转换为Theta, Phi:

Ex现在是2D坐标,我建议你指定Phi,再得到theta与Ex的关系,这个是1D,如此的话关系比较清楚。
你需要使用Find找到指定的Phi,参见

我不明白你说的哪个位置是指的什么位置?farfield3d结果在半球面上,res对应在半球面上的取样点数,它可以ux, uy联系起来,因为它们的抽取样点是一样的。没有X坐标相关联。

183行:软件并不知道对应的是theta而不是x或者其他的坐标,它只认抽样点数,例如你可以用
plot(1:101,E2far1,E2exact1,“theta”,"|E|^2",“1m radius”);
是作者知道这个关联。