-
-
November 6, 2024 at 1:16 pm19040020Subscriber
老师好,我想问一下Small-Scale Metalens – Field Propagation – Ansys Optics里Summing the farfields of unit cells这部分的代码sum_farfield_R11um.lsf中,用了数学形式去求远场,这个计算结果和半径1m的远场结果是一样的,可是这个数学表达式是直接用代码
Efar_lens = Efar_lens + exp(1i*Kx*x_mask(i) + 1i*Ky*y_mask(j))*pinch(Efar,3,ind)求出来的,包含了所求球面的半径信息吗?如果有,是在代码哪里实现的。
还有个问题就是,方向余弦ux = farfieldux(tempEH,1,nx,ny)这是怎么求出来的,背后的数学原理不是很清楚,可以详细解释一下吗?
最后一个问题是theta = acos(ux)*180/pi-90;plot(theta,[pinch(E2far_fdtd,2,floor(ny/2)),pinch(E2far_lens,2,floor(ny/2))],"Theta (Degree)","|E|^2","","linewidth=2");就是沿着phi=0画光场强度图,可是这里的theta不应该是按照Understanding direction unit vector coordinates in far field projections – Ansys Optics里规定的是用theta = asin(ux)*180/pi求的吗? -
November 6, 2024 at 7:45 pmGuilin SunAnsys Employee
“这个计算结果和半径1m的远场结果是一样的” 应该不完全一样:这表示式表示平面波的传播,因为unit cell 的远场已经是平面波,而不是普通监视器得到的近场。近场到远场的透射不是这个表达式。你可以参考FDTD的书,一般都有表述。https://eecs.wsu.edu/~schneidj/ufdtd/chap14.pdf 这本书国内有翻译。
"Efar_lens = Efar_lens + exp(1i*Kx*x_mask(i) + 1i*Ky*y_mask(j))*pinch(Efar,3,ind)求出来的,包含了所求球面的半径信息吗?如果有,是在代码哪里实现的。"
没有。不需要。见上面回复,其实常数位相被忽略了。
“方向余弦ux = farfieldux(tempEH,1,nx,ny)这是怎么求出来的” 就是从-1到+1离散化。
“theta = acos(ux)*180/pi-90;plot(theta,[pinch(E2far_fdtd,2,floor(ny/2)),pinch(E2far_lens,2,floor(ny/2))],"Theta (Degree)","|E|^2","","linewidth=2");就是沿着phi=0画光场强度图” 此theta不是彼theta,你可以把它叫做alfa, beta,omega, 随意。你这个不是此例子中的脚本吧?新版没有这个。
-
November 7, 2024 at 6:35 am
-
November 7, 2024 at 3:53 pmGuilin SunAnsys Employee
正常的监视器都在坐标面内;如果非常必要,你可以用斜的分析器组得到一个平面:https://optics.ansys.com/hc/en-us/articles/360034395134-Creating-curved-and-angled-monitors
如果仔细想一想,一般都没有必要。实在不行可以选择结构也是一个办法。
-
- You must be logged in to reply to this topic.
-
1156
-
488
-
481
-
225
-
201
© 2024 Copyright ANSYS, Inc. All rights reserved.