Skip to content

personal set of FDFD codes used for my research. Much of this has been inspired by Yu (Jerry) Shi and Wonseok Shin

License

Notifications You must be signed in to change notification settings

zhaonat/FDFD_modules

Repository files navigation

FDFD_modules

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.

dependencies

Functional version of MatLab 2016 or greater. This was coded in Matlab 2017.

dimensionalities d = 1,2,3

Implementations of FDFD for 1D, 2D, and 3D simulations

driven simulations and band structures

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

Dispersive 2D mode-solvers/eigen solvers

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

3D Solver with acceleration and enhancements

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

basic adjoints

Very simple adjoint example (hopefully more work here later)

unit conventions

For this package, note that most things are specified so that any spatial units are in units of microns.

About

personal set of FDFD codes used for my research. Much of this has been inspired by Yu (Jerry) Shi and Wonseok Shin

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published