nm=1e-9;
um=1e-6;
W=45nm; #微柱宽
L=90nm; #微柱长
H=3000nm; #微柱高
S=100nm; #微柱周期(间隔)
Lambda=730nm; #工作波长
f=10um; #超透镜焦距(测试用)
#f=90um; # 文献中焦距
#R=2um; # 超透镜半径
N=40;M=40; # 横向N、纵向M 微柱个数的一半
循环生成微柱、根据微柱坐标旋转结构。再用判断语句,将结构限制为圆形
for (i=-N:N){
for(j=-M:M){
x=iS; y=jS;
#Circle=(x2+y2<R^2);
#if(Circle)
#{ #判断语句用于将结构限制为圆形
Theta=-180*(f-sqrt(x2+y2+f^2))/Lambda; #微柱旋转角 degree
#Theta=3/4*(x2+y2)
addrect;
set(“material”,“AZO”);
name=“AZO”+num2str(i)+"/"+num2str(j); # 每个微柱名字不同
set(“name”,name);
#set(“index”,2.4);
set(“render type”,“wireframe”); # 渲染模式为线框,减小显卡压力
set(“x”,x);
set(“y”,y);
set(“z min”,-H);
set(“x span”,L);
set(“y span”,W);
set(“z max”,0);
set(“first axis”,“z”); # 指定旋转轴为z轴
set(“rotation 1”,Theta); # 旋转 Theta角(degree)
}
}
run;