Lumerical Python API学习笔记(二)

笔记参考 LINK

1.会话管理
fdtd = lumapi.FDTD

打开新的FDTD Solutions界面
可以一次创建同一产品和不同产品的多个会话,例如:

mode1 = lumapi.MODE()
mode2 = lumapi.MODE()
device = lumapi.DEVICE()

每个产品的构造函数都支持以下命名的可选参数:

  • hide(默认为 False):在启动时显示或隐藏 Lumerical GUI/CAD 环境
  • 文件名filename(默认为空):如果为空则启动新应用程序,如果提供 lsf 文件将运行脚本。 如果提供了项目文件名; 如果可以在路径中找到它,它将尝试加载项目。

eval()函数:相当于把一段包含脚本信息的字符串文本或者.lsf文件识别出来,然后打开fdtd窗口运行该段脚本。

在管理会话时发现pycharm运行脚本完成后Lumerical窗口会自动关闭,导致存图等操作不方便。可以用:

import time
while 1:
  time.sleep(10)

让窗口一直悬停开启或者:

if input() == '1':
  exit()

控制程序结束。

使用构造函数添加模拟对象:

fdtd.addfdtd(dimension="2D", x=0.0e-9, y=0.0e-9, x_span=3.0e-6, y_span=1.0e-6)

其他一些常用函数:

from collections import OrderedDict
props = OrderedDict([("name", "power"),("override global monitor settings", True),("x", 0.),("y", 0.4e-6),
            ("monitor type", "linear x"),("frequency points", 10.0)])
fdtd.addpower(properties=props)

文档字符串:有关环境中lumapi方法的信息,支持Lumerical会话对象的Python文档字符串,可以使用Python内置函数help来查看文档字符串:

help(f.addfdtd)
2.数据传递

使用Python API驱动Lumerical时,环境建立了联系但是二者不共享工作区。getdata()可以返回参数以及单个场数据,比如Ex;getresult()可以直接返回数据集
Python和Lumerical数据对照:

LumericalPython
Stringstring
Realfloat
Complexnp.array
Matrixnp.array
Cell arraylist
Structdictionary
Datasetdictionary

后续遇到相关问题再详细讨论

3.进行光子逆向设计

该领域的简要介绍可以参考:
LINK
这是对文章的中文解读 LINK

掌握一些基本术语:梯度下降优化(gradient descent optimization);品质因数(figure of merit),也缩写成FOM;局部最小值(local minima);成本函数(the cost function)。

伴随法(Adjoint method)

在Lumerical中,伴随方法被打包成lumopt模块。Lumopt有两种不同方式——形状优化和拓扑优化。
形状优化可以直接定义要变化的几何参数,以及参数的界限。这允许用户从一个好的初始起点开始设计并对其进行改进;但是,定义几何形状需要一些工作,并且可以通过此参数化实现的解决方案集可能会受到限制。像这样的显式参数化意味着可轻松执行可制造性的设计规则。
拓扑逆向设计要求用户简单地定义可优化的封装和所涉及的材料。 结果,参数只是该区域的体素,允许实现非常不直观的形状。 通常会实现莫名其妙的形状和出色的性能,但由于出现的小特征,这些结构往往更难用光刻法制造。 我们采取了多种措施来确保它们的可制造性,包括平滑函数和惩罚项以减少小特征。
在这里插入图片描述
后续第一阶段的Lumerical Python API开发围绕lumopt进行。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值