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

Document near2far nuances #80

Open
smartalecH opened this issue Jan 18, 2024 · 0 comments
Open

Document near2far nuances #80

smartalecH opened this issue Jan 18, 2024 · 0 comments

Comments

@smartalecH
Copy link
Contributor

Normally, near2far transformations within RCWA/FMM codes are really straightforward. All you have to do is propagate your fields until you hit a uniform, homogenous layer. Once you hit that layer, you can look at the relative power in each Fourier order. Since the mode solutions here correspond to plane waves, each Fourier order will have a direction (far field $\theta$ and $\phi$) one can use to map out the far field space. Of course, only planewaves within the lightcone (which aren't evanescent) make it to the far field. If we want to increase your angular far-field resolution, you need to re-run your simulation centered at different points in the Brillouin zone. You'll also want to compute things like solid angle etc. But the idea is that far field maps are easy to generate using RCWA/FMM.

Unless you incorporate PML. In this case, your last homogenous layer propagating infinitely can no longer be decomposed into simple planewaves. So now, in order to compute the far field, you have to use a Green's function convolution. While the Green's function simplifies quite a bit when concerned with the angular far field (it turns into a Fourier transform), you have to include the propagating energy around your emitter -- meaning you'll have to compute the (vectorial) fields through the z stack (depending on your problem).

We should document these nuances.

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

1 participant