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

Potential inconsistencies in 2D effective index approximation #153

Open
thanojo opened this issue Aug 6, 2024 · 0 comments
Open

Potential inconsistencies in 2D effective index approximation #153

thanojo opened this issue Aug 6, 2024 · 0 comments
Assignees

Comments

@thanojo
Copy link

thanojo commented Aug 6, 2024

Hi, thank you for your wonderful software and tutorials.

A little note:

The EffectiveIndexApproximation.ipynb tutorial may be slightly misleading with regards to the cited source Manfred Hammer and Olena V. Ivanova, "Effective index approximations of photonic crystal slabs: a 2-to-1-D assessment," Opt Quant Electron 41, 267–283 (2009)DOI:10.1007/s11082-009-9349-3.

In the source, the TE index approximation is stated as

$$ \epsilon_{\text {eff }}=\frac{\beta_{\mathrm{r}}^2}{k^2}+\frac{\int\left(\epsilon-\epsilon_{\mathrm{r}}\right) \chi_{\mathrm{r}}^2 \mathrm{~d} x}{\int \chi_{\mathrm{r}}^2 \mathrm{~d} x}, $$

where the subscript $r$ denotes the reference point with corresponding index profile $\epsilon_{\mathrm{r}}$ and slab mode with effective index $\frac{\beta_{\mathrm{r}}}{k}$, and profile $\chi_{\mathrm{r}}$ .
Thus, as $\chi_{\mathrm{r}}$ is the slab mode profile at the reference point, it chosen once and should not change with in-plane position. However, due to the way the effective index is calculated in the tutorial, the user is given the impression that this reference mode profile and reference index should change with in-plane position. To be more precise, the effective index in the tutorial is in fact calculated as

$$ \epsilon_{eff}(x,y)=n_{eff}(x,y)^2+\frac{\int_z[\epsilon(x,y,z)-\epsilon_{ref}(x,y,z,\omega)]|M_{x,y}(z,\omega)|^2dz}{\int_z|M_{x,y}(z,\omega)|^2dz}, $$

where I have added the $x,y$ subscript to the mode profile $M$ to make clear that this is not a reference mode profile, but rather the mode profile at the point $(x,y)$.

If we wanted to rigorously match the source, we could denote the reference point as $\mathbf{r}=(x_{\text{ref}},y_{\text{ref}})$, and then we should actually write something like

$$ \epsilon_{eff}(x,y)=n_{eff}(\mathbf{r})^2+\frac{\int_z[\epsilon(x,y,z,\omega)-\epsilon(\mathbf{r},z ,\omega)]|M_{\mathbf{r}}(z,\omega)|^2dz}{\int_z|M_{\mathbf{r}}(z,\omega)|^2dz}, $$

where $M_{\mathbf{r}}$ is the mode profile at the reference point $\mathbf{r}$.

Thus first line the implementation of var_eps_eff should change to

def var_eps_eff(point, ref_point, sim, wavelength=1.55, inf=1000):
    ...

    sim_2d_center = (ref_point[0], ref_point[1], 0) 

    ...

Now, while this may be a more accurate representation of the source, it is not necessarily more useful. If you go through the examples in the tutorial, you may actually need to do more work to get the material fit working and the final results will be less accurate with respect to the 3D simulation, which makes this all the more interesting. In particular, you also will observe small $<1$ or negative effective indices in the cladding, as predicted by the source.

However, for certain applications the interpretation/implementation above is more accurate. This includes applications where the reference slab mode profile does not overlap so much with the permittivity difference profile $\epsilon(x,y,z, \omega)-\epsilon(\mathbf{r},z,\omega)$ in the cladding, decreasing the size of the integral in the numerator. These cases may coincide with deeply etched waveguides or with more than 2 materials being involved.

That said, maybe a suggestion would be to try to reproduce some of the results of the paper, maybe within the notebook itself. This could be a nice addition to the tutorial, and would also help to clarify the differences between variants of the effective index approximation, which I hope will make its way into the core tidy3d library at some point.

thanojo pushed a commit to thanojo/tidy3d-notebooks that referenced this issue Aug 6, 2024
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