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. Lossy and wavelength-dependent
$\varepsilon$ and$\mu$ are not supported. - Field output in the HDF5 data format.
We kindly request that you cite the following reference in any publication for which you use MPB:
- Steven G. Johnson and J. D. Joannopoulos, Block-iterative frequency-domain methods for Maxwell's equations in a planewave basis, Optics Express vol. 8, no. 3, pp. 173–190 (2001).
See the manual on readthedocs for the latest documentation.