Photonics – Chinese

Photonics – Chinese

Ansys Insight: 用拓扑优化来进行Y分束器的逆向设计 Inverse design

    • Guilin Sun
      Ansys Employee

       2019b R2 以及更新版本支持拓扑优化。 相关例子参见

      Inverse Design of a Splitter Using Topology Optimization

      Topology Optimization of a 4-channel wavelength demultiplexer 2D-TE

      Topology optimization of a O-band/C-band wavelength de-multiplexer with 100nm feature size constraint

      Inverse design of waveguide crossing

      Optimizable Geometry - Python API 

      简介

      使用拓扑优化进行逆向设计可以使用用户自定义评价函数FOM生成优化的器件。在本例中我们优化的是T_up 最大化,即上臂的(平均) 透射率,所以在仿真时使用了对称性边界条件(模式光源也具有此对称性)。 上臂的最大透射率是0.5, 所以我们将优化函数定义为 FOM=0.5 - T_up,相当于插入损耗。

      此种优化的特点是用户只需要指定优化的区域,而不需要参数化结构和优化结构形状(参见之前的API优化)。虽然结果看起来并不是很直观(例如为什么是这个样子),但是透射效率很高。

      当然,此种优化的缺点是可制造性。为了控制最小尺寸,可以定义半径函数滤波,进而一处太小的几何形貌并将尖角光滑话,进而改善可制造性。

      下面是优化步骤。

      Step 1: Define base simulation project

      首先需要定义基础仿真文件,它含有器件的普通结构,含仿真区,输入输出波导,模式光源和监视器。本例50:50 splitter的工作波长是1450nm 到 1650nm。可以使用脚本文件生成splitter_base_2D_TE_topology.lsf 

      打开FDTD并运行脚本文件后可以看到

      结构组‘initial_guess’生成优化的器件的起点,不过这个并不是必要的,拓扑优化也可以从零结构开始优化。 当然,先有初步结构可能会减少迭代次数。

      Step 2: Define optimization region

      首先需要你定义几个要优化的参数:

      NameValue in the exampleDescription
      size_x3000 [nm]Length of the device
      size_y1800 [nm]Since we use symmetry along the y-axis, the value is half the height of the device
      delta_x20 [nm]Size of a pixel along x-axis
      delta_y20 [nm]Size of a pixel along y-axis
      filter_R500 [nm]Radius of the smoothing filter which removes small features and sharp corners
      eps_max2.8^2=7.84Effective permittivity for a Silicon waveguide with a thickness of 220nm
      eps_min1.44^2=2.0736Permittivity of the SiO2 cladding

      此外还需要定义 FOM 和一些其它的优化设置。 所用脚本参见 pt_2D_TE_topology.py
      这里也定义了初始参数。 前面讲过拓扑优化的优点是不需要设置复杂的初始条件,而是简单地在优化区设置为均匀的 eps_max 或 eps_min.

      Step 3: Run topology optimization

      运行Python 脚本文件就可以开始优化了。在这个例子中,拓扑优化有两个阶段: 第一,灰色阶段 ‘grayscale phase’,优化器可以自由地使用 [eps_low,eps_high ] 中的任何数值。当优化器达到一个优化后, 它将开始二值化阶段 ‘binarization phase’。 此时优化器将连续的介电常数分布变成二值结构,即 eps_low 或者 eps_high但是没有其它中间值,此时用来选择实际材料。大约经过500次迭代后有结果。

      我们看到FOM曾暂时变差,每一个极值预示着一个二值化因子的增加,进而进一步改善FOM。优化的最后我们看到FOM稍有变差,这是因为二值化结构表现得不如连续结构。但是实际上FOM是按半对数画出的结果,所以绝对的变化是很小的。

      4. design for the manufacturing (DFM) phase

      二值化后有些地方可能有很小的细节/孤岛,不利于实际制造。TopologyOptimization class里面有一个min_feature_size,可以指定最小半径 filter_R。

      geometry = TopologyOptimization2D(params=params, eps_min=eps_min, eps_max=eps_max, 
      x=x_pos, y=y_pos, z=0, filter_R=filter_R, min_feature_size=filter_R)

      注: 此优化方法因为需要FDTD内部的一些参数,所以必须使用2019b R2及以上版本。 

      更多细节请参考例子,GitHub和LumApi。

      虽然例子用的是单个介电常数,原则上也可以用色散材料。不过,优化仅对一个目标函数进行,光源是单色的,如果需要宽谱,应该修改光源和目标函数,比如用平均透射率等。

      此外,强烈建议使用软件自带的Python,不要自己下载Python和其编辑器,否则不仅需要设置好路径,有些功能还不支持,或者不兼容等。

       

Viewing 0 reply threads
  • You must be logged in to reply to this topic.