facebookresearch / fmmax

Fourier modal method with Jax
MIT License
95 stars 9 forks source link

Document near2far nuances #80

Open smartalecH opened 7 months ago

smartalecH commented 7 months ago

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.