MIT Photonic Bands

From AbInitio

(Redirected from MPB)
Jump to: navigation, search

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

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.)

See also our complementary Meep package for time-domain simulations, reflection/transmission spectra, etc.


MPB download

You can download the full source code (in ANSI C) for MPB under the free GPL license. The installation section of the manual describes how to install it; mainly, this consists of downloading and installing various prerequisites if you do not have them already.

Latest version: 1.5

The MPB release notes describe what is new in each version; the current version of MPB is 1.5.

You can also download the latest development sources from MPB on Github.


MIT Photonic Bands
Release notes
MPB manual
User Tutorial
Data Analysis Tutorial
User Reference
Developer Information
License and Copyright

The MPB manual is readable online. Note especially the tutorial section of the manual, to get a flavor of what it is like to use the program. You may be also interested in the libctl manual, which describes a Guile/Scheme-based scripting library that we build our interface on top of, and also a collection of Guile and Scheme links.

We have published a paper (available online) on the computational methods underlying MPB:

Steven G. Johnson and J. D. Joannopoulos, "Block-iterative frequency-domain methods for Maxwell's equations in a planewave basis," Optics Express 8, no. 3, 173-190 (2001).

See also our referencing suggestions for how to cite MPB in your work.

Mailing Lists

The MPB mailing lists and their archives are another source of information about MPB.

Subscribe to the read-only mpb-announce mailing list to receive notifications of updates and releases. Subscribe to the unmoderated mpb-discuss mailing list for discussions about using MPB. Archives are available here. You can also read and post to the list via the newsgroup from Gmane.

Bug reports and feature requests

For bug reports and feature requests, please file an MPB Github issue.


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. (See also a comparison of time-domain and frequency-domain techniques in the MPB manual.)
  • 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.)
  • Free software under the GNU General Public License. (See also the MPB License and Copyright section of the manual.)

To give you some feel for how long these calculations take, let us consider one typical data point. For the 3d band-structure of a diamond lattice of dielectric spheres in air, computing the lowest 10 bands on a 16×16×16 grid at 31 k-points, MPB 1.0 took 2 minutes on a 550MHz Pentium-III under Linux with the ATLAS optimized BLAS library. (Thus, at each k-point, MPB was minimizing a function with 81920 degrees of freedom in 4 seconds on average.)


Many people and groups have contributed to the development of this software, both directly and indirectly. Please see the acknowledgements section of the manual for those to whom we feel especially grateful.

Contacts and Feedback

If you have questions or problems regarding MPB, you are encouraged to query the mailing list.

For professional consulting as well as free access to MPB in the public cloud via Amazon Web Services (AWS), see Simpetus.

Personal tools