Photonics – Chinese

Photonics – Chinese

Topics related to Lumerical and more, in Chinese language.

Lumopt 2D转3D问题:

    • m202373352
      Subscriber

      您好老师,目前在使用lumopt工具进行光子器件的逆向设计(拓扑)时遇到了一些问题,就是在2D转3D的过程中,因为在2D仿真中使用的是有效折射率,对于硅来说大概2.8左右,但在三维仿真中,使用的是材料的真实折射率,硅材料为3.48左右,现在比较困惑的地方在于从2D仿真转移到3D的过程中,折射率是如何对应转变的呢?例如,假如在2D仿真中的某个像素对应的有效射射率为2.8,那么转到3D仿真中该像素的对应的折射率应为3.48,那么它是如何进行相应的映射的呢?如果像素的折射率刚好在边界处那转换还比较好说,但是如果处于中间状态的像素点在从2D仿真转移3D仿真时应如何对应转换呢?有没有相应的转换公式呢?

      希望能您在百忙中抽空查看,祝您身体健康,工作顺利!

    • Kirill
      Ansys Employee

      This topic has been moved to the Photonics – Chinese forum. Thank you!

    • GuanYo Dong
      Subscriber

      你好

      我的理解,要用2D仿真來近似3D的波導仿真,重點就是模式要盡量接近,
      形狀2D/3D肯定不同了,那就讓"模式的等校折射率"接近,怎麼做到呢?

      Inverse Design of a Splitter Using Topology Optimization – Ansys Optics 

      從上述的案例來說,可以先在3D的模型已知的波導尺寸(截面尺寸,寬度y跟厚度z)下,利用模式光源物件找到了"模式的等校折射率",2.45左右
      然後在2D的模型中,用相同的波導尺寸(寬度y不變),只是2D仿真只截取了含波導的一個Z平面,藉由"調整波導物件的n值",找到模式等校折射率也是2.45左右的情況

      所以模型上,2D跟3D寬度不用改變,僅改變波導的假設折射率讓波導就可以轉換2D與3D
      這也是由於2D/3D模型最大的差異就是波導處Z方向有沒有描述折射率變化,所以現在可以理解我們把Z方向的折射率變化轉換成等校折射率了

      莎益博 董冠佑

    • GuanYo Dong
      Subscriber

      不好意思句子有點跳,倒數第二行說明:

      所以模型上,2D跟3D寬度不用改變,僅改變波導的假設折射率讓波導就可以轉換2D與3D

      莎益博 董冠佑

    • m202373352
      Subscriber

      非常感谢您的回复,但是您好像没理解我的意思,请允许我在重复一遍:首先,我本人使用的是lumopt中的拓扑优化模型,因二维和三维的几何边界是相同的,这点已经确定了,只是内部的像素点进行优化,而且我想仿真的是具体的某一个器件,并非是一个简单的波导。其次,我想知道的是从2D拓扑优化转移到3D拓扑优化时,折射率应该如何转移过去。因为根据官网所给的案例,这里以硅材料为例,2D拓扑优化中折射率的上界使用的是硅的有效折射率,为2.8左右;假如说要把一个在2D情况下已经基本收敛的模型导入3D仿真继续进行优化,那么这个时候的折射率就应该换成材料的真实折射率,而不再用有效折射率,对于硅材料来说,折射率约为3.48左右。具体来说,假如在2D仿真中的某个像素对应的有效折射率为2.8,那么转到3D仿真中该像素的对应的折射率应变为3.48,那么它是如何进行相应的映射的呢?如果像素的折射率刚好在边界处那转换还比较好说,但是如果处于中间状态的像素点在从2D仿真转移3D仿真时应如何对应转换呢?有没有相应的转换公式呢?

      再次烦请您能在百忙中抽空查看,祝您身体健康,工作顺利!

    • GuanYo Dong
      Subscriber

      一樣以案例來說


      2D仿真中有core的位置,材料畫素(x1,y1,z)=2.8 ,z只有單一值,因為2D就是Z=定值的平面
      對應3D中,材料畫素(x1,y1,z1)=3.48, (x1,y1,z2)=1.44 
      其中x1,y1固定, z1為core厚度範圍,z2為cladding範圍
      比如案例假設仿真範圍Z 1.2um,有12個格子,大概其中第6~7兩個格子是3.48,其他1.44,這是我們core厚度跟位置決定的
      我們是把x1 y1 分布的多個z1,z2的3.48跟1.44轉換成了2D中一個2.8的值,等校折射率是Z方向的材料簡化來的,3.48跟1.44的邊緣就是根據core的Z方向邊界而來
      沒有core的區域就都是cladding材料

      你說的中間狀態,是說優化完不是min或是max的折射率?
      假設2D仿真中,一個區域優化完為2.16(剛好是案例1.44跟2.8的中間值),優化函數會根據連續性算出在XY平面上怎麼分布一半的2.8跟一半的1.44,假設結果是左上三角為2.8,右下三角為1.44,那轉換為3D就是左上三角2.8的位置厚度Z方向有3.48跟1.44分布,根據core設計來分Z的區域,水平X Y部分的座標會跟2D完全一樣,所以有2.8的XY位置,就是後來有3.48的XY位置,不用做轉換。

      這樣有沒有解答到?

      莎益博 董冠佑

    • m202373352
      Subscriber

      非常感谢您的回复!您所说的我大致能听明白,但还有一些疑惑的点:

      1.首先,请问在3D仿真中同一个XY坐标对应不同的z的值,即XY平面上的同一位置的不同高度的像素,折射率难道不是相同的吗?还是说不同高度的像素也是单独变化的?如果是单独变化的,那么假如说同意XY位置的不同高度的像素的折射率差异较大,那在最终的“二值化”阶段会不会造成麻烦,或者说不能很好的二值化到上下边界处?

      2.“假設2D仿真中,一個區域優化完為2.16(剛好是案例1.44跟2.8的中間值),優化函數會根據連續性算出在XY平面上怎麼分布一半的2.8跟一半的1.44,假設結果是左上三角為2.8,右下三角為1.44,那轉換為3D就是左上三角2.8的位置厚度Z方向有3.48跟1.44分布”。您这里的解答我不是很理解,在lumopt中,每个小像素点的尺寸为20nm*20nm的矩形,这应该就是优化的最小单位了吧?所以您这里提到的左上角右下角的概念我不是很懂。。

      3.您说的“等效折射率是Z方向的材料简化来的”,这个我理解,因为在2D仿真中实际只求解了一个平面,因而将材料在Z轴方向进行了压缩,采用等效折射率计算。我之前的表述可能有些疏漏的地方,这里再补充说明一下:之前提问主要也是针对XY平面。按照您说的,如果在2D仿真中,像素的折射率为设置为了2.8,那么转到3D仿真中时该位置刚好就对应3.48;同理,如果2D中是1.44的位置,即包层材料,转移到3D仿真中时恰好对应的折射率也为1.44(包层的折射率),不知道这么理解是否正确?那比如说,某个像素的折射率处在1.44和2.8之间的任意一个值,比如说1.8,那么此时如果从2D转到3D,该像素的折射率应该如何转换呢?

      4.“優化函數會根據連續性算出在XY平面上怎麼分布一半的2.8跟一半的1.44”。您这里所说的意思是不是说优化函数会根据连续性计算出每个像素处2.8和1.44的占比,是这个意思吗?如果是这样的话,是不是意味着每个位置的像素的折射率实际上是由上下边界值的不同系数的混合构成的:

      即:index = α*1.44 +β*2.8;α和β为系数,表示二者所占的比例。这样理解是正确的吗?如果正确的话,那么从2D转移到3D仿真时,是不是也按照这个比例进行的转移,只不过上下边界值发生了变化,即:index' = α*1.44 +β*3.48;α和β为系数?

      5.您回答中提到的“優化函數”请问指的是哪个函数?是软件安装时带有的lumopt文件夹中的“Optimization”函数吗?还是说是其他函数?那么具体在什么位置有说明折射率从2D到3D的转换过程的呢?能不能麻烦您帮忙指出?

      最后,真诚的感谢您的认真回复,再次烦请您能在百忙中抽空查看,祝您身体健康,工作顺利!

    • GuanYo Dong
      Subscriber

      1.3D仿真中同一个XY坐标对应不同的z的值,即XY平面上的同一位置的不同高度的像素,他們的折射率不相同,core只有在中間一段範圍,上下都是cladding.但是這個Z分布是固定的,在3D仿真中也不改變分布,所以不單獨變化

      2.Optimizable Geometry - Python API – Ansys Optics 請看一下 Greyscale 跟 Binarization 段落的說明
      20*20nm在Greyscale(比較大的範圍的均值)後他是你說中間值折射率,但是經過Binarization他就被二值化了,所以2D的結果也只有index max跟min 2值化的結果
      這樣轉換成3D就沒有問題了?
      我舉例的分區成左上三小跟右下三角,是指的被二值化後的區域了

      Optimizable Geometry - Python API – Ansys Optics 這網址看懂,應該3~5也沒問題了,
      只有2D的index max我們用了Z方向做的,其他都是水平方向的問題

      莎益博 董冠佑

    • m202373352
      Subscriber

      再次感谢您的认真回复!!但是还是有些不太理解的地方需要向您请教:

      首先,可能是之前我的表述有误,导致您理解出现了偏差,在此深表歉意。“请问在3D仿真中同一个XY坐标对应不同的z的值,即XY平面上的同一位置的不同高度的像素,折射率难道不是相同的吗?还是说不同高度的像素也是单独变化的?”,这里我想表达的其实是限定在core中,根据您的回答,在core中,XY平面上的同一位置的不同高度的像素折射率相同。这样理解是否正确?

      其次,Optimizable Geometry - Python API – Ansys Optics 您给出的网址我也已经仔细阅读了几遍,但还是没太理解您的意思,十分抱歉。所以我还是不太清楚2D仿真转移到3D仿真,每个像素的折射率具体是如何对应转变的,特别是那些处于折射率上下边界值之间(1.44和2.8之间的)的像素点。可能还得烦请您进行解释。(包括之间提出的的3~5问题)辛苦老师。

      最后,还有就是对于优化流程的询问:按照官网的介绍,先进行2D的拓扑优化,得到一个相对较好的值之后,将其转入3D仿真中继续进行优化,等到3D优化接近收敛时,进行二值化以及后续的DFM等相关操作。请问,在2D仿真得到较好的结果后,是直接导入3D仿真中(不进行二值化,即β = 1);还是说进行部分二值化后(例如β值达到10,根据官网示例),然后再导入3D仿真?如果是将2D仿真得到的结果完全二值化后再导入3D仿真中,则不存在我所疑惑的折射率从2D如何转变到3D的问题,但是根据官网和经验所言,导入处于灰度或者部分灰度阶段的模型到3D仿真中,往往能更快的获得收敛,因为参数空间的变化范围更大,更容易优化的进行。所以可能在导入3D时,还是存在那些处于“中间态”的像素(折射率位于上下边界值之间),因而还要烦请您进行解答!!

      真诚的感谢您不厌其烦的认真回复,再次烦请您能在百忙中抽空查看,祝您身体健康,工作顺利!

    • GuanYo Dong
      Subscriber

      目前模型在core 中,只有一種材料,所以core的折射率皆相同。

      官網目前僅有導入2D部分非2值化到3D當初始條件的操作(如下圖也還是Optimizable Geometry - Python API – Ansys Optics 的截圖)
      因此我也不確定3D模型長甚麼樣子,即是3~5題沒有網頁說明轉換公式,已經都被函數打包了

      不過我看到我們案例檔案有附上相關的3D腳本,包含下圖由2D結果當3D初值的情況,您可以下載案例,優化中在Lumerical running時中打開fsp檔案看看
      儘管不知道怎麼算得結構,但可以看比如某個中間態折射率在3D中的樣子,多看幾種中間值來做反推看看

      5.我理解函數應該是跟幾何相關的,可能要細讀Basic Theory — LumOpt documentation ,您參考看看,
      因為函數主要都被打包了,我們並不能看到最底層,應該也是原廠knowhow所以打包了。

      我想您直接下載案例看3D部分可能會比猜測快,只能答到這裡了

      莎益博 董冠佑

    • m202373352
      Subscriber

      好的,还是十分感谢您的解答!

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