一个关于远近场外推时对称边界的设置问题


#1

老师,您好!我是云南大学的学生,我现在正在看远场投影时用6个表面监视器包围散射体来进行远场投影的例子。在官网给出的例子《usr_farfield_symmetry.fsp》中有这么一段程序
if (havedata(“x1”, “f”)) {
symm_x = 0;
} else {
xtemp = getdata(“y2”, “x”);
ztemp = getdata(“y2”, “z”);
Eztemp = pinch(getdata(“y2”, “Ez”));
Ez2mid = sum(Eztemp(round(length(xtemp)/2), 1:length(ztemp))^2);
if (Ez2mid != 0) {
symm_x = 1;
} else {
symm_x = -1;
}
}

if (havedata(“y1”, “f”)) {
symm_y = 0;
} else {
ytemp = getdata(“x2”, “y”);
ztemp = getdata(“x2”, “z”);
Eztemp = pinch(getdata(“x2”, “Ez”));
Ez2mid = sum(Eztemp(round(length(ytemp)/2), 1:length(ztemp))^2);
if (Ez2mid != 0) {
symm_y = 1;
} else {
symm_y = -1;
}
}

if (havedata(“z1”, “f”)) {
symm_z = 0;
} else {
xtemp = getdata(“y2”, “x”);
ztemp = getdata(“y2”, “z”);
Eytemp = pinch(getdata(“y2”, “Ey”));
Ey2mid = sum(Eytemp(1:length(xtemp), round(length(ztemp)/2))^2);
if (Ey2mid != 0) {
symm_z = 1;
} else {
symm_z = -1;
}
}

我知道是用来设置对称边界的,但为什么要这么做,我百思不得其解,请老师指点!谢谢


#2

由於加了對稱邊界條件, 所以不是全部monitor都有數據。上面的程序是為了找出到底在什麼方向加了什麼對稱邊界條件, 亦即symn_x, symn_y, symn_z 的數值是什麼

然後在以下的計算會用到symn_x, symn_y, symn_z 的數值, 例如line 125, etc.