Jump to: navigation, search

The MIT Photonic-Bands (MPB) package is a program for computing the band structures (dispersion relations) and electromagnetic modes of periodic dielectric structures. It was developed by Steven G. Johnson at MIT along with the Joannopoulos Ab Initio Physics group.

MPB Logo.png

This program computes definite-frequency eigenstates (harmonic modes) of Maxwell's equations in periodic dielectric structures for arbitrary wavevectors, using fully-vectorial and three-dimensional methods. It is especially designed for the study of photonic crystals (a.k.a. photonic band-gap materials), but is also applicable to many other problems in optics, such as waveguides and resonator systems. (For example, it can solve for the modes of waveguides with arbitrary cross-sections.)


Some of the more noteworthy features of the MIT Photonic-Bands package are:

  • Fully-vectorial, three-dimensional calculation. Iterative eigensolver techniques are employed to make large, three-dimensional calculations possible. (Can handle 2D and 1D problems too, of course.)
  • Direct, frequency-domain eigensolver (as opposed to indirect methods, e.g. time-domain). For one thing, this means that you get both eigenvalues (frequencies) and eigenstates (electromagnetic modes) at the same time.
  • Targeted eigensolver. Normally, iterative eigensolvers provide you with the states (optical bands/modes) with the lowest few frequencies. Our software can alternatively compute the modes whose frequencies are closest to a specified target frequency. This greatly reduces the number of bands that must be computed in guided or resonant mode calculations.
  • Flexible, scriptable user interface based upon the GNU Guile extension & scripting language.
  • Support for arbitrary, anisotropic dielectric structures (including gyrotropic/magneto-optic materials) and non-orthogonal unit cells.
  • Field output in HDF format for input into many popular graphing and visualization tools.
  • Portable to most any Unix-like operating system; tested under Linux, AIX, IRIX, and Tru64 (née Digital) Unix. See also the installation section of the manual.
  • Support for parallel machines with MPI. (Tested on an SGI Origin2000 and on an SMP Linux machine with MPICH.)