-
Notifications
You must be signed in to change notification settings - Fork 19
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
Meep script to compute transmittance of metagrating imported from CSV file #5
Conversation
Metagrating3D/metagrating-meep.py
Outdated
diff_eff_P = 0.9114 # P-pol. diffraction efficiency computed using Reticolo (RCWA) | ||
diff_eff_S = 0.9514 # S-pol. diffraction efficiency computed using Reticolo (RCWA) | ||
# convert diffraction efficiency into transmittance in the Z direction | ||
Treticolo = (diff_eff_P if P_pol else diff_eff_S) * Tfresnel * math.cos(theta_d) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This conversion should not be necessary, since apparently reticolo is computing the power efficiency: the Poynting flux per unit cell in the diffraction order divided by the Poynting flux per unit cell in the incident wave.
I have simulated the device using Reticolo RCWA again with different number of Fourier orders. TM pol (P-pol) is quite stable with 91% efficiency while TE pol (S-pol) is sensitive to number of Fourier orders. It might be the issue that Reticolo is not good at simulating device with small feature size for TE polarization. Therefore I have generated 3 robust devices and uploaded them to the repo. Their efficiencies are reported in README.md. I've simulated them with different number of Fourier orders, their efficiencies should only have 1% variation. |
I think the problem here is that it is not currently possible to demonstrate that the Poynting flux values (or what is referred to as "deflection efficiency") are converged with respect to the Meep grid resolution because the image files (e.g., @jiaqi-jiang, is it possible to provide image files of your devices at significantly larger resolutions (i.e., 200+ pixels/μm)? |
With some minor changes, I am able to reproduce the ~0.90 transmittance values from #8 for the P polarization: 0.909333 for
The reason there is such large changes can perhaps be understood by looking at the actual structure. Most of the air-silicon interfaces have a surface normal in the x direction. The P polarization involves an Jx current source whereas the S polarization uses a Jy source. It's no wonder that small changes in the grid resolution therefore tend to be larger changes in the S polarization response. Large discretization errors thus seem to be an inherent feature of the design, unfortunately. |
Is there a narrow resonance effect here? e.g. what happens if you fix the resolution and vary λ? |
There does seem to be a resonance effect. For the S polarization of
This is not surprising since, as described in the Based on this, we may want to just use a different set of designs preferably broadband structures. |
I have updated the metagrating designs in my repo. They are only optimized for TM polarization. |
So far, I have been able to obtain the transmittance for |
I am now able to obtain transmittance values for all three designs using Meep which show reasonable agreement with RCWA:
It turns out that to ensure the fields did not blow up it was necessary to disable the default subpixel averaging (by specifying Nevertheless, even though these designs were optimized for just a single polarization (TM) with the expectation that they would be more robust to discretization artifacts than the previous set of designs which used both polarizations, the transmittance significantly degrades if the wavelength is perturbed from its nominal value of 1.05 μm. To demonstrate this, here are results for
@jiaqi-jiang, I think we now have the agreement we need so you can go ahead and create a PR with the newest set of designs. |
This PR adds a Meep script to the
Metagrating3D
subfolder for computing the transmittance of the m=+1 diffracted order of the 3d metagrating with 2d design imported fromdevice1.csv
. Results for the S and P polarizations are compared with the values from RCWA (Reticolo) provided in theREADME.md
file.At a resolution of 20 pixels/μm, results for the P polarization are in reasonable agreement with a relative error of ~10%. However, there is a large discrepancy of ~45% in the results for the S polarization.
edit: Increasing the resolution to 50 pixels/μm, the discrepancy seems to get worse: