Introduction to MEEP
Posted on Thu 20 July 2017 in MEEP
MEEP is a free (GNU GPL) finite-difference time-domain package developed by MIT for modelling electromagnetic systems.
It has some useful features such as:
- 1D, 2D, 3D and cylindrical coordinates
- Parallelism using the MPI standard
- Arbitrary anisotropic electric permittivity ε and magnetic permeability μ
- 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.
- Scriptability — either via a Scheme scripting front-end (as in libctl and MPB), or callable as a C++ library; a Python interface is also available.
- Field output in the HDF5 standard scientific data format, supported by many visualization tools.
- Arbitrary material and source distributions.
- Field analysis including flux spectra, Maxwell stress tensor, frequency extraction, local density of states and energy integrals, near to far field transformations – all completely programmable.
- Multi-parameter optimization, root-finding, integration, etcetera (via libctl).
I've been using MEEP for quite a few years and recently realised I had a whole bunch of different systems I had been modelling that would probably never see the light of day, but might be useful to others.
So I shall slowly be adding these MEEP examples to the blog. In the meantime, I recommend checking out MEEP – install it and go through the tutorials.