Photonics

Photonics

Topics related to Lumerical and more.

Grating Coupler Double Etch Optimization using Gradient Based Inverse Design

    • clian
      Subscriber

      I am currently following the sample tutorial: Inverse Design of Grating Coupler (2D). This tutorial only offers optimization of a single etch depth, and I would like to expand this simulation to 2-step etching to see if this can help further improve the efficiency of the inversely designed grating coupler. 

      My current approach is by expanding the params array from 2n_grates to 4n_grates, where the first two elements represent the width of each tooth and the next two elements represent etch depth. I plug these four elements into verts. However, there are two problems with this approach. The etch depth is limited by the same minimum feature constraint I set for the tooth width, which is not applicable to the etch depth. Second, I cannot have a varying etch depth as it will not be possible to fabricate. The etch depth must take on one of the two values: full or half etch. So I'm wondering what is the approach to set bounds to this optimization.

      I have attached the current result of my simulation. The optimization process terminates at iteration 7, and it's not hard to see that it is probably terminating due to extremely low FOM. Any help is appreciated, thanks!

    • Guilin Sun
      Ansys Employee

      The current model does not offer directly what you desired. You may try to modify the parameters to have binary values only, with known depths based on experience (you can change them, or have initial guess, or get help from publications), but locations are random. Or after the first round of optimization, binarize the depths and check the results to see if it significantly deviates the original optimization.

      The feature for inverse design is to be expanded as different users have different optimzation rules. However the current frame work only provides one depth mechanism . More desired features are to be explored by genious scholars and engineers.

       

    • clian
      Subscriber

      Regarding your suggestions, I still have a few questions about the number of parameters you can optimize in one run. If I were to optimize both etch depth and tooth position at the same time, do I add two parameters representing etch depth and tooth position respectively or do I expand the current parameter in the code to a 2 by 2*n_grates matrix? For example, params = matrix(i,j); params(i,1) = tooth position, params(i,2) = etch depth.

      When you say locations are random, does it mean that the simulation will not follow a gradient-based optimization, which means it would be hard to know if the simulation has reached a local maximum in FOM? If that is the case, I would think it makes more sense to first optimize the position of the tooth and etch depth (without constraint in the latter) and then binarize the depths. Is the lumopt package capable of doing binarization only, or do I need to use a separate package?

      Finally, the last idea is by optimizing the two etch steps separately, by running the optimization once using the half etch height and once again using the full etch height and then somehow combine the two. Do you think it is worth going down this path? Thanks again.

Viewing 2 reply threads
  • The topic ‘Grating Coupler Double Etch Optimization using Gradient Based Inverse Design’ is closed to new replies.