在lumerical中,可以使用脚本进行操作,可在右侧脚本编辑器运行,structure group处使用script,或者直接在下方shell输入。
结构的搭建
创建长方体
um = 1e-6;
nm = 1e-7;
addrect;
set("name","myRect");
set("material","SiO2 (Glass) - Palik");
set("render type","wireframe"); # 默认是细节渲染,也就是detailed
# 通过中心位置与宽度设置尺寸
set("x",0);
set("y",0);
set("x span", 1.2*um);
set("y span", 1.2*um);
# 通过最大最小值设置尺寸
set("z max",0);
set("z min",-1*um);
利用脚本创建结构的过程和利用GUI创建的过程几乎相同,首先是addrect,其效果相当于点击structures里的Rectangle,创建一个长方体。
接下来的set就和edit时候的操作类似,如set(“name”,“your name”)便是设置该物体的名称,其几何尺寸与位置设置方式和gui中相同,可以通过最大最小值或者中心值与范围来进行设置。
材料设置的时候比较麻烦的一点是材料的名字太长了,还得手敲。
GUI的第三个标签rotations里设置的是旋转轴,一般来讲我不会特意设置这个,如果需要也可以使用脚本
set("first axis","x");
set("rotation 1",45);
图形渲染的话如不设置,便默认为细节渲染,也就是你能看到具体的样子,不过为了减少渲染压力,也可以使用线框渲染。
创建柱体
多边形柱体
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J8k5ovjH-1646707998173)(https://baozi.bladehamster.xyz/wp-content/uploads/2022/03/Pasted-image-20220308094400-300x201.png)]
创建多边形柱时,名称、材料、渲染方式等设置都与创建长方体相同,其差别仅在于几何参数的设置。其创建指令为addpoly
如图所示,z轴方向的设置与创建长方体时相同,都有两种创建方式,但是xy方向则必须设置中心点,然后需要逐次指定棱柱边缘在XY平面上投影的坐标。
在脚本中,我们使用向量组来实现对一系列角点的指定。
um=1e-6;
nm=1e-9;
verts=[0,0;0,1;2,0;2,2;1,3;0,1]*um; #向量组
addpoly;
set("name","polyCol");#名称
set("material", "Au (Gold) - Palik");#设置材料
set("vertices",verts);#设置角点
set("x",0);#中心坐标
set("y",0);
set("z",0);
set("z span",1*um);
运行脚本,可以查看,新创建出的棱柱的角点顺序便为我们向量组的点的顺序。利用多边形棱柱可以做出一些相对复杂的图形。如果希望棱柱的轴不再为z轴,可以添加rotations使旋转,如
set("first axis","x");
set("rotation 1",90);
(椭)圆柱体
圆柱体的创建与多边形柱体类似,只是不再需要指定角点,而是指定半径,其初始轴也是沿着z轴方向。其创建指令为addcircle
如
um=1e-6;
nm=1e-9;
addcircle;
set("name","circle");
set("material","Au (Gold) - Palik");
set("x",0);
set("y",0);
set("z",0);
set("z span",1*um);
set("radius",1*um);#半径/x轴半径
lumerical支持椭圆圆柱,与GUI中的设置相同,只需先启用 “make ellipsoid” ,再设置第二轴半径即可,如
set("make ellipsoid",1);#生成椭圆
set("radius 2",800*nm);#y轴半径
圆环柱
圆环与其它柱体类似,其特征为需要设置内部半径、外部半径以及圆心角的起点和终点角度。其创建指令为addring
如
um=1e-6;
nm=1e-9;
addring;
set("name","ring");
set("x",0);
set("y",0);
set("z",0);
set("z span",1*um);
set("outer radius",2*um);#外圆半径
set("inner radius",1*um);#内圆半径
set("theta start",30);#起始角
set("theta stop",150);#终止角
自定义形状
自定义形状的添加指令为addcustom,其需要设置一段曲线方程来进行形状的创建。
在GUI中可以看到custom标签下有equation设置以及create 3D object by的模式选择。
在equation中,写下f(x)表达式,便可确定在XY投影上的图形边界,(范围由几何页面的参数确定)
在创建方式中extrusion类似于solidworks的拉伸,3dmax的挤出,直接将平面图形拉伸,而revolution则是旋转。
如
# 创建一个半圆柱
addcustom;
set("create 3D object by","extrusion");
set("equation 1","sqrt("+num2str(0.5)+"^2-(x-"+num2str(0.5)+")^2)");
set("x span",1e-6);
set("y span",1e-6);
set("z span",2e-6);
# 创建一个半球
addcustom;
set("create 3D object by","revolution");
set("equation 1","sqrt("+num2str(0.5)+"^2-(x-"+num2str(0.5)+")^2)");
set("x span",1e-6);
set("y span",1e-6);
set("z span",2e-6);
默认模式下,图形是关于YZ平面对称的,如果创建方式选择extrusion,则可选择不对称,如
addcustom;
set("create 3D object by","extrusion");
set("equation 1","sqrt("+num2str(0.5)+"^2-(x-"+num2str(0.5)+")^2)");
set("make nonsymmetric",1);
set("equation 2","x*3");
set("x span",1e-6);
set("y span",1e-6);
set("z span",2e-6);
创建surface
不过感觉这个一般用不到,其创建指令为addsurface
其设置方式还是用set一条一条去设置便可,此处注意如果需要用的equation,变量名为u,v
波导
与前述类似,可以参考[[# 多边形柱体]]用向量组设置poles,创建指令为addwaveguide
球
最简单的设置,只需要球心坐标和半径,若要建立椭球,则需要另外两轴的半径,创建指令为addsphere
棱锥
创建指令为addpyramid,其特殊之处为xy必须设置其顶面和底面的x、y范围。
如
addpyramid;
set("x",0);
set("x span bottom",1e-6);
set("x span top", 1e-7);
set("y",0);
set("y span bottom",1e-6);
set("y span top", 1e-7);
set("z",0);
set("z span", 1e-6);