笔记参考 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数据对照:

Lumerical Python
String string
Real float
Complex np.array
Matrix np.array
Cell array list
Struct dictionary
Dataset dictionary

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

3.进行光子逆向设计

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

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

伴随法(Adjoint method)

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

后续第一阶段的Lumerical Python API开发围绕lumopt进行。

Lumerical Python API学习笔记(二)相关推荐

  1. Lumerical Python API学习笔记(一):Lumopt配置以及样例运行

    参考文章 完美解决Windows用户下lumerical(FDTD)的python库lumopt安装方法 bilibili–lumerical配合pycharm使用python联合开发的问题 0.先说 ...

  2. Lumerical Python API学习(八)——在纳米线应用示例中使用 Python API

    此示例演示了使用应用程序编程接口 (API) 将 Lumerical FDTD 与 Python 集成的可行性. 在此示例中,我们将基于 2D Mie 散射(2D Mie scattering )示例 ...

  3. Lumerical Python API学习之补充笔记

    一.笔记1 1.1.关于SYS 在导入之前添加 Python代码解释 当我们导入一个模块时: import xxx ,默认情况下python解释器会搜索当前目录.已安装的内置模块和第三方模块. 搜索路 ...

  4. Lumerical Python API学习(七)——可视化几何

    Optimizable Geometry - Python API 来自 https://support.lumerical.com/hc/en-us/articles/360052044913-Op ...

  5. Lumerical Python API学习(五)——光子逆向设计概述

    Photonic Inverse Design Overview - Python API 来自 https://support.lumerical.com/hc/en-us/articles/360 ...

  6. Lumerical Python API学习(六)——lumopt入门

    Getting Started with lumopt - Python API 来自 https://support.lumerical.com/hc/en-us/articles/36005099 ...

  7. Programming Computer Vision with Python (学习笔记二)

    首先介绍跟图像处理.显示有关两个库:NumPy和Matplotlib,然后介绍增强图像对比度的实现原理. NumPy NumPy是Python用于科学计算的基础库,提供了一些很有用的概念,如:N维数组 ...

  8. header python 环境信息_python获取网页header头部信息(python小白学习笔记二)

    方法一:代码查看 通过python获取网页的链接url,返回码,以及相关的信息 #对反爬虫网页,可以设置一些headers信息,模拟成浏览器取访问网站 import urllib.request ur ...

  9. python自动化测试学习笔记合集二

    python自动化测试学习笔记-4内置函数,处理json 函数.全局变量 写代码时注意的几点事项: 1.一般写代码的时候尽量少用或不用全局变量,首先全局变量不安全,大家协作的情况下,代码公用容易被篡改 ...

最新文章

  1. C#文件和文件夹输入输出流代码
  2. linux shell 通过 第三方 网站 网页 得到 外网 公网 ip
  3. 如何通过SEO来提升网站转化率?
  4. php 动态多维数组长度,怎么在php中利用count获取多维数组的长度
  5. [html] 如何在不同的端口间共享cookie?
  6. 看了就知道为什么别人C语言学习效率那么高了
  7. python optimize_SciPy优化optimize模块用法
  8. Spoken English-口语-发音规则
  9. 数码管c语言编码,八段数码管编码.doc
  10. JavaScript实现贷款利息计算器
  11. cadence 通孔焊盘_allegro软件通孔类焊盘制作方法及步骤
  12. Xcode14 正式版编译报错‘ does not contain bitcode.解决方案
  13. 生活:你是如何毁掉生活中的情趣的
  14. 项目Demo —— socket下载器
  15. 开发一个会叫自己“爷爷”的“孙子”,是一种什么样的体验?
  16. IAR环境 HandFault定位
  17. pythonwhile true循环_python学习-while True的用法
  18. GO使用go get -u “包“: fatal: unable to access ‘https://github.com/..‘: Failed to connect to报错
  19. 【自学Python】Python特点
  20. 数据结构(二)——Trie、并查集、堆

热门文章

  1. ORACLE锁表解决办法
  2. Ant Design Mobile 5.6.0版本来了
  3. ant design 设置网页的title
  4. 华为防火墙(NAT)
  5. android_使用adb安装app包的详细步骤和可能遇到的问题(apk文件)
  6. MySQL超详细安装教程 手把手教你安装MySQL到使用MySQL 最简单的MySQL安装方式,这种方式装,卸载也简单(安装mysql的步骤和方法)
  7. lucene索引MySQL原因_影响Lucene索引速度原因以及提高索引速度技巧
  8. profinet西门子 Smart200对接工业读写器
  9. WebInspect评估版试用第2天和第3天
  10. HASP 4 加密狗模拟、解密硬复制HASP 4