Meep is a free finite-difference time-domain (FDTD) simulation software package to model electromagnetic systems. Meep is an acronym which officially stands for MIT Electromagnetic Equation Propagation. Its features include:
- Free software under the GNU GPL.
- Complete scriptability via Python, Scheme, or C++.
- Simulation in 1d, 2d, 3d, and cylindrical coordinates.
- Distributed memory parallelism on any system supporting the MPI standard. Portable to any Unix-like operating system such as Linux and MacOS.
- Arbitrary anisotropic electric permittivity and magnetic permeability , along with dispersive and including loss/gain and nonlinear (Kerr & Pockels) dielectric and magnetic materials, and electric/magnetic conductivities .
- PML absorbing boundaries and/or perfect conductor and/or Bloch-periodic boundary conditions.
- Exploitation of symmetries to reduce the computation size — even/odd mirror symmetries and 90°/180° rotations.
- Field output in the HDF5 standard scientific data format, supported by many visualization tools.
- Arbitrary material and source distributions.
- Field analyses including flux spectra, Maxwell stress tensor, frequency extraction, local density of states, arbitrary functions, near to far field transformations; completely programmable.
A time-domain electromagnetic simulation simply takes Maxwell's equations and evolves them over time within some finite computational region, essentially performing a kind of numerical experiment. This can be used to calculate a wide variety of useful quantities, but major applications include:
- Transmission and Reflection Spectra — by Fourier-transforming the response to a short pulse, a single simulation can yield the scattering amplitudes over a wide spectrum of frequencies.
- Resonant Modes and Frequencies — by analyzing the response of the system to a short pulse, one can extract the frequencies, decay rates, and field patterns of the harmonic modes of lossy and lossless systems including waveguide and cavity modes.
- Field Patterns (e.g. Green's functions) — in response to an arbitrary source, archetypically a CW (fixed-) input.
Meep's scriptable interface makes it possible to combine many sorts of computations along with multi-parameter optimization etcetera in sequence or in parallel.
Tutorial/Basics gives examples of all of these kinds of computations.
The latest development sources are available on GitHub. The source tarballs are available on the Download page. The release history is described in the Release Notes. The installation instructions can be found in the Installation page.
Please cite Meep in any publication for which you found it useful.
Subscribe to the read-only meep-announce mailing list to receive notifications of updates and releases. Subscribe to the meep-discuss mailing list for discussions about using Meep. The meep-discuss archives includes all postings since 2006 spanning a large number and variety of discussion topics related to installation, setting up simulations, post-processing output, etc.
Bug Reports and Feature Requests
For bug reports and feature requests, please file a Meep GitHub issue.
Contacts and Feedback
If you have questions or problems regarding Meep, you are encouraged to query the mailing list.
Professional consulting services for photonic design and modeling including development of turn-key simulation modules, training and technical support for getting up and running with Meep as well as free access to Meep in the public cloud via Amazon Web Services (AWS) are provided by Simpetus.