Using adjoint solver for varying holes radius in a photonic crystal. #2391
-
Hi everyone, I have a photonic crystal (PhC) structure formed from triangular lattice of holes in a dielectric where there is a cavity and a line defect. I need to optimize the coupling between the cavity and the waveguide, meaning I need to find the parameters which would lead to highest transmission in the waveguide. So I was wondering, would it be possible to use the adjoint solver to try and optimize hole radius for transmission? I have read other discussions here and it seems that the solutions are with significant caveats. So I guess the better question is if there is any progress on non-density based optimization using the adjoint solver, which would allow for solving this problem? If not, this may not be the best place to ask, but would it be possible to use scipy together with autograd to try and do this? Thank you! |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 5 replies
-
So it sounds like you've already read the various discussions that talk about our hybrid density-based TO approach, which allows you to use your density variables as a level set. This is important, because a level set is needed in order to do shape optimization. To answer your question, there hasn't been much progress. But we are starting to ramp up development here again. To answer your other question, simply plopping in scipy and autograd isn't going to solve your problem (we already use autograd?) To be clear, the issue isn't with gradients. Meep computes gradients well through the whole pipeline, and relies on autograd when necessary. The issue is with the parameterization and how it interacts with the PDE. So writing your own implementation would still require you to figure out how to produce a level set for your PhC holes. I'll say that I think your problem is better suited for density-based methods anyway. You'll get much better coupling efficiency between the modes. In fact, using a full Maxwell adjoint method seems overkill if all you're optimizing is a hole radius. I'll also add that an FDTD method probably isn't a suitable choice when part of your problem involves a high Q resonance... it's going to take forever to resolve the dft fields. Unless you can incorporate a Pade approximate. |
Beta Was this translation helpful? Give feedback.
So it sounds like you've already read the various discussions that talk about our hybrid density-based TO approach, which allows you to use your density variables as a level set. This is important, because a level set is needed in order to do shape optimization.
To answer your question, there hasn't been much progress. But we are starting to ramp up development here again.
To answer your other question, simply plopping in scipy and autograd isn't going to solve your problem (we already use autograd?) To be clear, the issue isn't with gradients. Meep computes gradients well through the whole pipeline, and relies on autograd when necessary. The issue is with the parameterization and how it …