Skip to content
Go to file


Failed to load latest commit information.

Latest Docs Build Status

MPB is a free and open-source software package for computing electromagnetic band structures and modes.


  • Free and open-source software under the GNU GPL.
  • Complete scriptability via Python or Scheme APIs.
  • Portable to any Unix-like system such as Linux, macOS, and FreeBSD.
  • Distributed memory parallelism on any system supporting the MPI standard.
  • Fully-vectorial 1d, 2d, 3d calculations. Iterative eigensolver techniques are employed to make large calculations possible.
  • Direct, frequency-domain eigensolver as opposed to indirect methods, e.g. time-domain. This means that you get both eigenvalues (frequencies) and eigenstates (electromagnetic modes) at the same time. See comparison of time-domain and frequency-domain techniques.
  • Targeted eigensolver. Iterative eigensolvers normally compute states (harmonic modes) with the lowest few frequencies. MPB 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.
  • Support for arbitrary, anisotropic dielectrics including gyrotropic/magneto-optic materials and non-orthogonal unit cells.
  • Field output in the HDF5 data format.

Citing MPB

We kindly request that you cite the following reference in any publication for which you use MPB:


See the manual on readthedocs for the latest documentation.


MIT Photonic-Bands: computation of photonic band structures in periodic media




No packages published
You can’t perform that action at this time.