Skip to content

NanoComp/mpb

Repository files navigation

Latest Docs Build Status

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

Features

  • 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. Lossy and wavelength-dependent $\varepsilon$ and $\mu$ are not supported.
  • 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:

Documentation

See the manual on readthedocs for the latest documentation.