Skip to content
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

Comparison of quality factor obtained via Legume and an FDTD solver #55

Open
nkvij opened this issue Sep 7, 2023 · 1 comment
Open

Comments

@nkvij
Copy link

nkvij commented Sep 7, 2023

Hi,

I have been tinkering around with the Legume software to optimize the design of an L3 photonic crystal cavity to improve its quality factor (Q). In order to validate the design, I am comparing the quality factor of the fundamental cavity mode obtained via Legume and an FDTD solver (Tidy3D). With the initial design, Legume gave me Q ~111k using only 1 k-point and ~170k when averaging over a 2x2 k-point grid (gmax = 2.5). Whereas I got a Q ~ 150k using Tidy3D.

Running the optimization routine, the quality factor increased to Q ~ 1 million (averaging over 2x2 k-point grid, gmax = 2.5), whereas the FDTD solver gave me a Q ~ 255k, which is a huge difference.

I understand that Legume is an approximate solver and that there are several parameters at play here. But is there an intuition on why there could be such a huge difference between the obtained value of Q, particularly for the optimized cavity, and how it can be mitigated?

@momchilmm
Copy link
Member

momchilmm commented Sep 7, 2023

I have a lot of experience with this... and it is not trivial. It is tricky to get a correct result in either gme or fdtd for a high-q cavity. Legume would usually overestimate the Q, while fdtd would underestimate it, when the results of either are not converged w.r.t. some of the possible parameters. For typical use cases, based on your description, I would think that the fdtd result may need a bit more work. Are you following the Tidy3D example in setting up the cavity? To get an accurate high Q, it's important that the simulation domain size is big enough in x and y so that the PML are not introducing some unwanted loss. Also sufficient run time is needed for an accurate resonance finder computation. By the way, I see that some of your Tidy3D simulations are diverging. This can also be tricky when running for a very long time, and is usually due to structures being close to the PML. Do you need help with that?

If everything looks good in the FDTD, some cases in which GME may have a relatively big error include asymmetric structures (e.g. cavity with a substrate), or a cavity in a thick-ish slab, such that higher-order slab modes are important. In both cases, you need to include higher-order gmode_inds in the computation, e.g. [0, 3, 4] if the structure is symmetric, or even [0, 1, 2, 3, 4] if it is not. You could try to figure out if there's one specific index which has a strong effect and add this one to the optimization. But generally, there are cases in which even the converged gme result will just be wrong. My experience with simple silicon-in-air cavities however is that if you work hard enough the converged results should match fairly well.

Let me know if you figure it out!

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

2 participants