**Meep** is a free and open-source software package for electromagnetics simulation via the finite-difference time-domain (**FDTD**) method spanning a broad range of applications.

**Key Features**

**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.

## Time-Domain Simulation

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.

## Download

The source repository is hosted on GitHub. Gzipped tarballs of tagged versions are in Releases. The release history is in NEWS. Installation instructions are in Installation.

## Documentation

For a list of topics, see the left navigation sidebar. For new users, the most important items to review are the Introduction, Tutorial/Basics, and FAQ.

This documentation is for the master branch of the source repository. Note that certain features described in this documentation may therefore be *unavailable* if you are using a tagged release.

### Mailing Lists

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: `news.gmane.io/gmane.comp.science.electromagnetism.meep.general`

.

### Bug Reports and Feature Requests

For bug reports and feature requests, please file a GitHub issue.

## Acknowledgements

The Meep project is maintained by the developer community on GitHub. Acknowledgements provides a complete listing of the project contributors.

## Support and Feedback

If you have questions or problems regarding Meep, you are encouraged to query the mailing list.