- Free and open-source software under the GNU GPL.
- Complete scriptability via Python, Scheme, or C++ APIs.
- Simulation in 1d, 2d, 3d, and cylindrical coordinates.
- Distributed memory parallelism on any system supporting MPI.
- Portable to any Unix-like operating system such as Linux, macOS, and FreeBSD.
- Precompiled binary packages of official releases via Conda.
- Variety of arbitrary material types: anisotropic electric permittivity ε and magnetic permeability μ, along with dispersive ε(ω) and μ(ω) including loss/gain, nonlinear (Kerr & Pockels) dielectric and magnetic materials, electric/magnetic conductivities σ, saturable gain/absorption, and gyrotropic media (magneto-optical effects).
- Materials library containing predefined broadband, complex refractive indices.
- Perfectly matched layer (PML) absorbing boundaries as well as Bloch-periodic and perfect-conductor boundary conditions.
- Exploitation of symmetries to reduce the computation size, including even/odd mirror planes and 90°/180° rotations.
- Subpixel smoothing for improving accuracy and shape optimization.
- Custom current sources with arbitrary time and spatial profile as well as a mode launcher for waveguides and planewaves, and Gaussian beams.
- Frequency-domain solver for finding the response to a continuous-wave (CW) source as well as a frequency-domain eigensolver for finding resonant modes.
- ε/μ and field import/export in the HDF5 data format.
- GDSII file import for planar geometries.
- Field analyses including discrete-time Fourier transform (DTFT), Poynting flux, mode decomposition (for S-parameters), energy density, near to far transformation, frequency extraction, local density of states (LDOS), modal volume, scattering cross section, Maxwell stress tensor, absorbed power density, arbitrary functions; completely programmable.
- Adjoint solver for inverse design and topology optimization.
- Visualization routines for the simulation domain involving geometries, fields, boundary layers, sources, and monitors.
A time-domain electromagnetic simulation simply evolves Maxwell's equations over time within some finite computational volume, essentially performing a kind of numerical experiment. This can be used to calculate a wide variety of useful quantities. Major applications include:
- Transmittance and Reflectance Spectra — by Fourier-transforming the response to a short pulse, a single simulation can yield the scattering amplitudes over a broadband spectrum.
- 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 via a continuous-wave (CW) input (fixed-ω).
Meep's scriptable interface makes it possible to combine many sorts of computations along with multi-parameter optimization in sequence or in parallel.
Tutorial/Basics provides examples of the various kinds of computations.
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 regarding 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. The list archives can also be accessed using a newsgroup reader via the NNTP interface address:
Bug Reports and Feature Requests
For bug reports and feature requests, please file a GitHub issue.
Support and Feedback
If you have questions or problems regarding Meep, you are encouraged to query the mailing list.