The current RCWA (FMM) implementation (S4) requires compilation on the user's computer which is time-consuming and often leads to unexpected problems. To avoid this, and make RayFlare more accessible (and make it so that all features can be used on Windows), a Python-only version of RCWA (or a similar Maxwell solver should be added).
To-do
[x] Decide which back-end to use
Two options are nannos and Inkstone. Nannos has the benefit of having more complete documentation, and having other methods (FEM) available from the same developer. However, initial testing shows that Nannos is also not that easy to install if not using Anaconda. Go with Inkstone for now.
[x] Implement new method for rcwa_structure.calculate
[x] Implement new method for rcwa_structure.calculate_profile
[x] Implement new method for RCWA (matrix method)
[x] Add tests
[x] Check behaviour of all methods with non-air/vacuum incidence medium
[x] Polarisation definition appears different in Inkstone?
The current RCWA (FMM) implementation (S4) requires compilation on the user's computer which is time-consuming and often leads to unexpected problems. To avoid this, and make RayFlare more accessible (and make it so that all features can be used on Windows), a Python-only version of RCWA (or a similar Maxwell solver should be added).
To-do