deleteall;
# Hexagonal lattice PC array
# A periodic array of photonic crystals in a hexagonal lattice.
# Input properties
# nx, ny: 列数和行数
# z span: 高度
# a: 小单位的长度尺寸
# radius: 单位结构之间的半径
# index:折射率
# material
#简化变量
# simplify variable names by removing spaces
z_span = %z span%;
x_span = %x span%;
y_span = %y span%;
n_rows = ny-1;
n_cols = nx-1;
even_flag = 0;
for(i=-n_rows/2:n_rows/2) {
for(j=-n_cols/2:n_cols/2) {
#添加圆柱
addcircle;
set("radius",radius);
if( even_flag==0 ) {
set("x",(j)*a + a/2);
} else {
set("x",(j)*a);
}
set("y",(i)*a*sqrt(3)/2);
set("z",0);
set("z span",z_span);
#设置材料
set("material",material);
if(get("material")=="<Object defined dielectric>")
{ set("index",index); }
#添加矩形
addrect;
set("name","wood");
if( even_flag==0 ) {
set("x",(j)*a + a/2);
} else {
set("x",(j)*a);
}
#set("x",(j)*a);#可以直接设置为数字,公式
set("y",(i)*a*sqrt(3)/2);
set("z",0);
set("z span",z_span);
set("x span",x_span);
set("y span",y_span);
set("material",material);
if(get("material")=="<Object defined dielectric>") {set("index",index); }
}
if(even_flag==0) {
even_flag=1;
} else {
even_flag=0;
}
}