personal set of FDFD codes used for my research. Much of this has been inspired by Yu (Jerry) Shi and Wonseok Shin. While python is really popular these days, Matlab will natively run many linear algebra operations (particular eigensolves) way faster than python (even with MKL it seems) so there are certainly practical advantages to using Matlab aside from the ease of prototyping code.
Functional version of MatLab 2016 or greater. This was coded in Matlab 2017.
Implementations of FDFD for 1D, 2D, and 3D simulations
Will do simulations with a source (point source, line source, mode profiles, plane waves, etc.) or can do a variety of eigenmode solves for band structures
New type of mode solvers which can be used for 2 dimensional structures, based on the paper shown here https://www.osapublishing.org/ol/abstract.cfm?uri=ol-40-6-1053
As an example, we consider the classic and simple 2D photonic crystal circle (pillars) in the TE polarization (the parameters of the circle and unit cell are taken from the Johannopoulos book, Photonic Crystals).
Here, blue is FDFD and green is PWEM (need to fix the legend). There is an anomalous point which could have been caught with a mode filter (note no mode filter applied so almost everything output is realistic)
For comparison, here is the non-dispersive eigensolver (k is the input, frequency is the output)
And for the TM polarization, the dispersive solver with the imaginary parts shown:
(I'll need to rerun the TM with higher plane wave orders and higher discretization accuracy, did not use enough for either)
The advantage of this formulation is you get the imaginary parts of the band structure
uses a powerful reformulation of Maxwell's equations to accelerate iterative solutions based on the Beltrami-Laplace operator shown here: http://www.mit.edu/~wsshin/pdf/shin2013oe.pdf
tested on 60x60x60 grids (dipole in vacuum) on a laptop and QMR and runs reasonably quick
Very simple adjoint example (hopefully more work here later)
For this package, note that most things are specified so that any spatial units are in units of microns.