本节是关于结构组的介绍。
结构组是一组结构的集合,它作为一种管理和编辑组内对象的工具,极大地方便了用户在光学器件建模与设计时的操作。
其特点是:
针对常用的结构类型,本软件内置了一系列预定义的结构组,方便用户高效完成复杂的建模任务。
Name | Description |
---|---|
Cylinders | 圆筒类;如自定义旋转体(Custom revolution)、齿轮圆柱体(Gear cylinder)、粗糙圆柱体(Rough cylinder)、圆角圆柱体(Rounded cylinder)等。 |
Cylindrical fibers | 光纤;如布拉格光纤(Bragg fiber)、芯包层光纤(Core-cladding fiber)等。 |
Ellipsoids | 椭球体;如涂层椭圆体(Coated ellipse)、涂层球体(Coated sphere)、二聚体球体(Dimer sphere)等。 |
Extruded polygons | 拉伸多边形;比如所有边和角都是圆形的结构(All rounded quadrilateral)、十字形结构(Cross)、等腰梯形(Isosceles trapezoid)、圆角等边多边形(N-sided equilateral polygon with rounded corners)、星形多边形(Star polygon)等。 |
Gratings | 光栅;包括闪耀光栅(Blaze grating)、布拉格光栅(Bragg grating)和光栅耦合器(Grating coupler)。 |
Integrated optics | 集成光学;如180弯曲波导(180-deg waveguide bend)、交叉波导(Cross waveguide)、定向耦合器(Directional coupler)、环形谐振器(Ring resonator)、Y形分路器(Y-splitter)等。 |
Photonic crystals | 光子晶体;如体心立方光子晶体(BCC PC lattice)、面心立方光子晶体(FCC PC lattice)、六边形晶格光子晶体H腔(Hexagonal lattice PC H-cavity)、矩形光子晶体(Rectangular PC lattice)、矩形晶格光子晶体阵列(Rectangular lattice PC array)、木堆晶格(Woodpile)等。 |
Polyhedrons | 多面体;包括六角化八面体(Disdyakis dodecahedron)、正八面体(Regular octahedron)和截角八面体(Truncated octahedron)。 |
Pyramids and cones | 棱锥和圆锥;如涂层金字塔形结构(Coated pyramid)、圆锥体(Cone)、多面金字塔(N-sided Pyramid)、抛物面锥体(Parabola cone)、正四面体(Tetrahedron)、截锥体(Truncated cone)等。 |
Random particles | 随机颗粒;包括高斯随机粒子分布(Gaussian random Particle distribution)、线性随机粒子分布(Linear random particle Distribution)和均匀随机粒子分布(Uniform random particle distribution)。 |
Toroids | 圆环;如圆形环面结构(Circular toroid)、椭圆形环面结构(Ellipse toroid)、等边多边形环面结构(Equilateral n-side polygon toroid)等。 |
Uncategorized structures | 未分类的结构;比如螺旋结构(Helix)等。 |
本软件内置结构组,打开查看,图示如下,点击Insert即可添加到对象树中:
添加一个结构组,比如Cylinders>Gear Cylinder,并打开编辑窗口,如下图所示:
软件内置结构组不但允许修改全局参数(相对位置、旋转)或脚本变量等,而且允许单独修改某个单元的参数或删除/添加某个结构单元。
软件支持自建结构组,创建结构组的一般流程为:
基于上述的创建流程,下面将进行实际操作,构建一个普通光阑结构组。
分析组件的组成,将复杂结构拆分为许多基本单元的组合,比如圆孔光阑,其结构通常为平板上挖出的圆形通光孔。因此建立光阑选择2D polygon结构。
添加一个空结构组,操作如图:
定义光阑的参数:
在结构组Script页面书写脚本,代码如下:
deleteall;
# setup variables
Rin = 0.5e-6;
Lout = 2e-6;
res = 100;
# setup script
xin = Rin.*cos(linspace(0,2*pi,res));
yin = Rin.*sin(linspace(0,2*pi,res));
xout = [Lout,Lout,-Lout,-Lout,Lout,Lout,Rin];
yout = [0,Lout,Lout,-Lout,-Lout,0,0];
V = [xout,xin;
yout, yin];
add2dpolygon;
set("name","2d ring");
set("vertices",V);
创建的结构组如下图所示(图片已做适当处理):