📄 gerfield.m
字号:
function field=gerField(r,n,k,order,X,RoW,W,L)
% function field=gerField(r,n,k,order,X,RoW,W,L)
% yhwsoft 2005.4.25
O=[W/2, L/2];
field=zeros(W,L);
for w=1:W,
for l=1:L
rr=sqrt((w-O(1))^2+(l-O(2))^2)*RoW;
theta=abs(angle((w-O(1))+(l-O(2))*i));
% To detect this point is belong to which layer.
for j=2:width_y(r)
if rr>r(j)
J=j-1;
break
end
J=j;
end
% End of this part.
tt=[0 1];
for order_n=2:order
tt(order_n+1)=(2*order-1)/(order-1)*cos(theta)*tt(order_n)-order/(order-1)*tt(order_n-1);
end
t=order*cos(theta)*tt(order+1)-(order+1)*tt(order);
tt=tt(end);
rho=n(J)*k*rr;
if rho<eps
rho=eps;
end
if J==width_y(r)
preX=[t*besselj(order,rho),
t*besselj(order,rho),
tt*(besselj(order,rho)/rho+order/(2*order+1)*besselj(order-1,rho)-(order+1)/(2*order+1)*besselj(order+1,rho)),
tt*(besselj(order,rho)/rho+order/(2*order+1)*besselj(order-1,rho)-(order+1)/(2*order+1)*besselj(order+1,rho))
];
else
preX=[t*besselh(order,1,rho),
t*besselh(order,2,rho),
tt*(besselh(order,1,rho)/rho+order/(2*order+1)*besselh(order-1,1,rho)-(order+1)/(2*order+1)*besselh(order+1,1,rho)),
tt*(besselh(order,2,rho)/rho+order/(2*order+1)*besselh(order-1,2,rho)-(order+1)/(2*order+1)*besselh(order+1,2,rho))
];
end
En=i^order*(2*order+1)/order/(order+1);
field(w,l)=-En*sin(pi/2)*X(J,:)*preX;
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -