Skip to content

Adjoint mehod for metal optics #1567

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
Guizhixing opened this issue Mar 22, 2024 · 5 comments
Closed

Adjoint mehod for metal optics #1567

Guizhixing opened this issue Mar 22, 2024 · 5 comments

Comments

@Guizhixing
Copy link

Guizhixing commented Mar 22, 2024

I tried to design a metal photonic device by using the adjoint method, but I found that few applid FDTD-based adjoint method for metal optics.

Does the tidy3d project consider adding the adjoint sensitivity analysis code for metal photonics?

FDTD is known to be inaccurate along interfaces (this has been remedied in the case of smooth dielectric boundaries but not for corners or metal-dielectric interfaces). Furthermore, the electromagnetic field at a sharp metal corner diverges, and divergent fields cannot be accurately represented by FDTD. The order of the divergence directly limits the rate of convergence of the field calculation, and the error is largest along interfaces between metals and dielectrics. Unfortunately, the adjoint sensitivity calculation for perturbing interfaces depends solely upon the interface electromagnetic fields.

In my humble opinion, this is a challenging problem for which there are no neat solutions available. Do you all have any thoughts on how to solve this problem?

@tylerflex
Copy link
Collaborator

Hi @Guizhixing this is an important feature that we are working on currently, eg #1548 and #1333

In terms of the FDTD modeling of metallic interfaces, we have approaches to handle this more accurately through sub-pixel averaging. There is also much work on improving our absorbing boundaries to prevent divergence in such simulations. @weiliangjin2021 may be able to share more information.

In terms of adjoint, our shifting boundary approach to adjoint uses the fields at the interface. While it is working well for dielectric materials, it can be modified to metallic and dispersive materials. There are important technical issues in handling the dispersion in the adjoint method that we are still working through and testing, but I anticipate it should be completed in Q2 of 2024.

@Guizhixing
Copy link
Author

@tylerflex I'm really looking forward to this feature and hope to try it soon.

@weiliangjin2021
Copy link
Collaborator

Hi @Guizhixing, you are right about the challenges for FDTD in terms of metallic boundary modeling. In Tidy3d, while we have accurate subpixel averaging around dielectric interfaces, the metallic interface is just staircased right now. So this year, we are working on more accurate metallic--dielectric interface modeling. In the upcoming 2.7.0, please expect better subpixel support for PEC boundary. In the next quarter, we'll probably roll out subpixel for good conductors as well.

@tylerflex
Copy link
Collaborator

Closing this issue as it is already tracked. But feel free to continue discussion

@tylerflex tylerflex closed this as not planned Won't fix, can't repro, duplicate, stale Mar 23, 2024
@Guizhixing
Copy link
Author

Hi @Guizhixing, you are right about the challenges for FDTD in terms of metallic boundary modeling. In Tidy3d, while we have accurate subpixel averaging around dielectric interfaces, the metallic interface is just staircased right now. So this year, we are working on more accurate metallic--dielectric interface modeling. In the upcoming 2.7.0, please expect better subpixel support for PEC boundary. In the next quarter, we'll probably roll out subpixel for good conductors as well.

Hi, @weiliangjin2021, I am wondering, does the subpixel method of PEC in the upcoming 2.7.0 version apply in adjoint sensitivity analysis of metal microwave structure?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants