MEEP - The Electromagnetic World

In my last blog, we looked at OpenFOAM - https://ace-net.ca/cfd-for-the-masses.html - an open source general solver for fluid mechanics that's available on all of our clusters. This time, we will be looking at MEEP (MIT Electromagnetic Equation Propagation), another open-source simulation software package available on the clusters. A little more specialized, MEEP is designed to solve problems involving electromagnetic forces as the main physics.

MEEP can manage one, two and three-dimensional problems, and uses a technique called FDTD (Finite Difference Time-Domain) to do relatively accurate calculations in a short amount of time. It takes Maxwell's equations and solves them for a fixed volume of space, from one point in time to another. It is pre-programmed to run on your laptop, and can be scaled up in order to use the full capabilities available on our systems. For all the scientific Python users out there, there is also a framework available that allows you to use it directly from your Python code. Because you can run MEEP from Python, you can also do all of your post-processing, like graphing, directly from the same code.

To run a MEEP simulation, you begin by defining the spatial volume in which your simulation is taking place, including the boundary conditions. For example, you need to define whether the calculations wrap around to the opposite border, or get absorbed by the boundary.

Once you've established the spatial volume, you can start to define any objects that exist within this space. A nice feature of MEEP is that it includes a library of predefined materials that lays out the electric and magnetic properties that you will need in order to make the calculations. Alternatively, you can define your own specific properties.

You will then need to define any sources of electric or magnetic fields. For example, you could define a radio antenna (for an electromagnetic field) or a permanent magnet (for a purely magnetic field).

The final step is to define a simulation object. This is where all of the details of how to actually run your simulation are laid out, such as memory usage and runtimes.

There are great tutorials available on the MEEP website describing several examples of what you can do with it. This, along with all the predefined elements available, means that you can get work done on complex problems in short order, while also having the ability to extend the system to take your research even farther.
 

I hope that I've inspired you to consider MEEP when you have problems to solve involving electromagnetic forces. If you have any questions, or would like some help to get started, please contact support@ace-net.ca