
Lumerical脚本语言
文章平均质量分 86
薰衣草2333
好好学习,天天向上
展开
-
inverse-design-of-grating-coupler-3d
本文详细介绍了3D光栅耦合器的设计、优化和仿真流程。首先,通过预定义的环形间距参数在FDTD中生成椭圆光栅结构,并通过用户交互确认几何正确性后,进一步执行参数扫描优化。文章详细讲解了光栅耦合器的类定义、参数初始化、仿真环境设置、光源和监视器的配置,以及光栅结构的生成和更新方法。接着,文章介绍了光栅耦合器的优化流程,包括参数扫描、连接器生成、仿真结果分析和最优参数提取。最后,文章展示了如何通过自动化参数扫描和优化流程,找到光栅耦合器的最佳几何参数,并生成制造所需的GDS文件。整个过程结合了Lumerical原创 2025-05-18 22:48:45 · 810 阅读 · 0 评论 -
逆向设计——CWDM_splitter
优化初期,材料密度(ρ)是连续值(0 ≤ ρ ≤ 1),表示每个网格单元的材料占比。原创 2025-04-28 22:08:30 · 1146 阅读 · 0 评论 -
Lumerical Python API——波导交叉优化
模式光源通过计算波导的。原创 2025-04-02 16:04:17 · 1077 阅读 · 0 评论 -
使用脚本语言实现Lumerical官方案例——环形谐振器(Ring resonator)之第一部分
本文使用脚本语言实现Lumerical官方案例——环形谐振器之第一部分,知识讲解部分稍多。如有错误,欢迎大家批评指正。原创 2024-12-09 15:42:17 · 1248 阅读 · 1 评论 -
使用脚本语言实现Lumerical官方案例——闪耀光栅(Blazed grating)(纯代码)(2)
例如`find(n,n_target)`,`find`函数可能是在向量`n`中查找与`n_target`匹配的元素索引,用于在指定维度上精准定位要提取的数据位置。另外,它也可能是一个逻辑索引向量,其中`true`的位置对应的元素会被提取,`false`的位置对应的元素会被忽略。`,其中`mname`是监视器名称,`i`是频率点的索引,表示获取该频率下每个光栅阶数的功率传输比例.`,其中`mname`是监视器名称,`i`是频率点的索引,表示获取该频率下的光栅阶数对应的衍射角度.第二个参数用于指定频率。原创 2024-12-05 22:06:15 · 1226 阅读 · 0 评论 -
使用脚本语言实现Lumerical官方案例——闪耀光栅(Blazed grating)(纯代码)(1)
BFAST就像是给这个“光的扇子”加了一个特殊的限制,让所有不同波长的光都只能以一个固定的角度照射到物体上,就好像给光规定了一条特定的“跑道”,所有光都得沿着这条“跑道”走. 在研究一些周期性结构,比如具有周期性排列的纳米结构、光栅等的光学特性时,如果用普通的方法,当宽带光以一定角度入射时,计算会变得很复杂,而且容易出错。不过在闪耀光栅中,因为其特殊的结构使得在某些光栅阶下,光的强度会比其他普通光栅在相同光栅阶下的光强要高很多,尤其是在闪耀方向对应的光栅阶上,光就好像被“偏爱”了一样,强度很突出。原创 2024-12-04 21:18:17 · 1360 阅读 · 0 评论 -
使用lumerical脚本语言创建绘制波导并进行数据分析(纯代码实现)(2)
接上篇的波导结构继续进行分析。使用lumerical脚本语言创建绘制波导、配置一维模式求解器的各项参数、执行网格收敛性测试、在z span进行多次模拟进行收敛性测试、进行一维平板波导的模式相关计算和分析及通过改变波导的厚度来扫描不同厚度下多个模式的有效折射率以及 TE 极化分数(代码均有详细注释)。原创 2024-12-03 17:32:27 · 969 阅读 · 0 评论 -
使用lumerical脚本语言创建绘制波导并进行数据分析(纯代码实现)(1)
使用lumerical脚本语言创建绘制波导、配置二维模式求解器、计算模式轮廓、计算有效折射率(neff)和群折射率(ng)随波长的变化关系、计算有效折射率(neff)随波导宽度的变化关系及针对有效折射率法进行相关数据处理(代码均有注释详解)。原创 2024-12-02 21:13:44 · 1868 阅读 · 0 评论 -
使用lumerical脚本语言创建定向耦合器并进行数据分析(纯代码实现)
例如,在光纤通信系统中,定向耦合器可以用于将输入光信号的一部分耦合到另一个光纤分支中,用于监测光信号的强度、波长等参数,或者用于实现光信号的分配,比如把一束光信号分成多束,分别传输到不同的地方。奇数模式:奇数模式下,能量分布在两个波导中也比较均匀,但由于电场的反对称性,在两个波导之间的边界区域,电场的变化较为剧烈,这导致能量在波导边界附近的分布相对更复杂。从光功率耦合的角度来看,在波导间隙较小的情况下,光从一个波导耦合到另一个波导的过程会比较容易发生,并且在较短的传播距离内就能实现较大比例的光功率耦合。原创 2024-12-01 18:10:11 · 1369 阅读 · 0 评论 -
使用lumerical脚本语言创建弯曲波导并进行数据分析(纯代码实现)
本文使用lumerical脚本语言创建弯曲波导,设置有限差分时域(FDTD)模拟,改变波导弯曲半径计算损耗,绘制图像展示电场强度分布情况。原创 2024-12-01 16:32:16 · 2141 阅读 · 0 评论 -
lumerical脚本语言——光栅
以光为例,当光通过一个光学器件(比如光栅或者透镜等)进行传播或者衍射时,主瓣是光强最强的部分,它主要沿着我们期望的方向传播,就像光束的主要“队伍”。例如,在光栅衍射中,可以通过改变光栅的折射率分布或者光栅的形状等方式,使得旁瓣的能量降低,让光信号主要集中在主瓣方向,从而提高信号的质量和准确性。基本概念:布拉格光栅就像是一种特殊的“镜子”,不过它反射的不是我们平常看到的形象,而是光。它是一种周期性的结构,通常是在光纤或者光学材料的表面(或内部)形成的一种有规律的折射率变化的区域。,其中n是材料的折射率,原创 2024-11-24 17:37:26 · 998 阅读 · 0 评论 -
Lumerical脚本——创建基本结构
二、 S弯曲、90°弯曲及Y分支。一、矩形、梯形以及环形的构建。原创 2024-11-22 22:02:03 · 462 阅读 · 0 评论 -
Lumerical脚本语言——材料数据库(Material database)
注意,当采用多系数模式时,拟合结果取决于对材料的设定的拟合参数,材料最大系数和容差。将名称为"materialname"的材料的属性名称为 "propertyname"的值设定为参数 newvalue 给定的值。下面的命令用来在材料数据库添加或者拷贝材料,以及设置材料属性,并在任何频率验证给定材料所得到的复反射率。本高级函数返回数据库中即将用在实际 FDTD simulation 的材料的介电常数,包括有效的有限时间步长 dt。指定频率的反射率是相邻的有对应反射率的频率插值得到的。原创 2024-10-13 21:34:19 · 1282 阅读 · 0 评论 -
Lumerical脚本语言——用户定义的图形用户接口(User defined GUIs)
1 意味着用户 按下第 1 个按钮(通常是 "OK" 或 "Next");-1 意味着用户按下第 2 个按钮(通常是"Back")。1 意味着用户按下第 1 个按钮(通常是 "OK" 或 "Next" );创建一个标签为"label1"和"label2"的两个按钮,通常是 "Next" 和 "Back" 或者是 "Done" 和 "Back"。如果部件( widget)的类型(参数 "type" )是一个“菜单 ("menu"),则提供菜单选项。通常将会是"Done" 或者 "OK"。原创 2024-10-13 20:53:00 · 743 阅读 · 0 评论 -
Lumerical脚本语言——测量和优化数据(Measurement and optimization data)
在大多数情况下,用 getsweepresult 获取一个完全的数据集会更方便些,而不是采用 getsweepdata 获取单独的个别数据元素。如果是 2,可根据边界的对称性或反对称性不装载数据,条件是边界是在 x min, y min 或 z min 与 一个监视器相交形成的。如果是 2,可根据边界的对称性或反对称性不装载数据,条件是边界是在 x min, y min 或 z min与一个监视器相交形成的。创建在当前内存中的一个名称为 "name"的 d-card 全局拷贝。清除分析实体对象的数据。原创 2024-10-13 17:30:54 · 892 阅读 · 0 评论 -
Lumerical脚本语言——运行模拟计算(Running simulations)
运行作业队列中的所有作业。计算结束时,所有的模拟数据会保存到当前的文件中,文件被再次装载。2: 开始单处理器模式 FDTD 计算(旧系统的问题),弹出对话框不再是焦点。option=1: 使用资源管理器中给定的计算机资源和并行设置运行作业(缺省)运行作业队列中的所有作业。从作业队列删除所有作业。option=0: 仅用本地计算机的单处理器模式运行作业。3: 按照资源管理器中的设置开始进行并行模拟计算。按照资源管理器中的设置开始进行并行模拟计算。运行作业队列中的所有模拟计算。从作业队列删除所有作业。原创 2024-10-10 20:22:23 · 647 阅读 · 0 评论 -
Lumerical 脚本语言——操作实体对象(Manipulating objects)
最上部选择的实体对象的指标为 1,随在实体对象树的下降,指标的相应增大。最上部选择的实体对象的指标为 1,随在实体对象树的下降,指标的相应增大。如果名称为"group name" 的组群已经存在,将实体对象添加到已有的组群。删除元素 1("element1")的端口 1( "port1")同元素 2("element2")的端口 2("port2" )的连接。从选择的模式扩展监视器的扩展监视器( "Monitors for expansion" )”列表除去指定名称("name")的监视器。原创 2024-10-09 21:33:21 · 1664 阅读 · 0 评论 -
Lumerical脚本语言——添加实体对象(Adding Objects)
关闭分析窗口,然后可对一个新模拟工程中的模拟实体对象继续操作。向 MODE Solutions 模拟环境添加一个传播模拟实体对象。取决于特性类型,数值可以是一个标量(例如,浓度),是一个 3 元素的向量(例如,斱向),或是 9 个元素的张量等。tab 可设定高斯光束的属性,由缺省的"gaussian#"(#是在当前 deck 存在的高斯光束的总数)返回创建的高斯光束的名称。关闭分析窗口,删除当前模拟数据,然后可以对一个新的模拟环境中的模拟实体对象进行操作。向模拟环境添加一个高斯光源。原创 2024-10-09 17:09:34 · 967 阅读 · 0 评论 -
Lumerical脚本语言——绘图命令(Plotting commands)
线性数据集必须是一个向量,向 E 场,并且没有额外的属性(例如,你有如果 E 是 x,y.z.f 的函数,而 f 有两个或多个值时,命令失败)。创建一个字符串,字符串列出当前选择图形的所有属性。Theta 和 rho 可以是长度相等的向量,或者如果 theta 的长度是 n 时,y 可以是一个 nⅹm 矩阵。Theta 和 rho 可以是长度相等的向量,或者如果 theta 的长度是 n 时,y 可以是一个 nⅹm 矩阵。生成的图形有 m 条线(y(1:n,1) 与 x,y(1: n,2) 与 x,等)。原创 2024-10-09 11:37:40 · 1261 阅读 · 0 评论 -
Lumerical脚本语言-函数(Functions)
● 3 : fft 进行位移,因此零位频率是光谱的中心元素(准确的说,这意味着零位频率点在元素层(N/2 + 1),其中 N 是采样个数)。● N: 如果 N > length(Ex)则从 0 填充到长度 N,其中 Ex 的长度是一个指定维的长度。代表两个线段,一个从(0,0) 到 (1,1) ,另一个从 (0,0)到 (0,1)。在这种情况下,返回的位置是(1.#INF,b), 当线段的顶点退化时 b 值为 0,第 1 个线段的顶点退化时 b 值为 1,第 1 个线 段的顶点退化时 b 值为 2。原创 2024-10-05 19:09:16 · 1526 阅读 · 0 评论 -
Lumerical脚本语言-操作符(Operators)
如果 A - B 小于戒者等于 A + B /2 乘相对系数(relative diff)或者 A - B 小于或者等于绝对系数(absolute diff),返回 1。逻辑否,如果数值为 0 返回 1。如果 A - B 小于或者等于 A + B /2 乘相对系数(relative diff),返回 1。如果 A - B 小于或者等于 A + B /2*1e- 15,返回 1。对于表达式 A^B,如果 B 是复数,A 的相位估计值从 -π 到 π。如果 x, y 任何一个的实部非 0,返回 1。原创 2024-10-03 21:51:04 · 949 阅读 · 0 评论 -
Lumerical脚本语言-变量操作(Manipulating variables)
矩阵数据集用在无任何空间相关性(如反射不频率)的数据(属性和参数)。矩阵数据集可以参数化,可以包含任何特性数据(见 addattribute)和参数(见addparameter)。与 x/y/z 坐标不相关的数据集(例如,频率的传输函数),见 matrixdataset。创建一个同 x/y/z 坐标相关(例如,电场和磁场)的空的线性数据集。创建一个同坐标 x/y/z 相关的名称为 "dataset_name"的 空线性数据集。创建一个所有元素为平均值为 0 标准分布为 1 的正态分布中的一个随机数的矩阵。原创 2024-10-03 20:57:02 · 1354 阅读 · 0 评论 -
Lumerical脚本语言-系统(System)
当在测试 MATLAB 工作区、或者同 MATLAB 环境交互 时,在 MATLAB 的脚本提示写入命令。如果脚本文件的名称和函数的名称相同,运行的是脚本文件(而不是函数)。参数: table 是文件中查找表的名称,design 是一个包含要寻找的定义设计参数的多个结果的单元, extracted 是要提取参数的名称。拷贝的变量名称同 MATLAB 的变量名称相同,并覆盖已有的同名变量。如果仅需要和一定数据类型相匹配的元素,可以用一个字符串形式规定: "6:2" 其中需要的层为 6,要求的数据类型为 2。原创 2024-09-28 15:55:02 · 1612 阅读 · 0 评论