What is openEMS?
openEMS is a free and open-source electromagnetic field solver based on the equivalent-circuit FDTD (EC-FDTD) method, scripted from MATLAB/Octave or Python and typically paired with the CSXCAD geometry library. It supports lumped ports, dispersive materials, PML boundaries, near-to-far-field transformation and cylindrical coordinates, making it a practical no-cost option for patch, PIFA, horn and array simulations.[1][2]
What does an openEMS workflow look like?
- Define geometry and materials in CSXCAD via script.
- Create a rectilinear mesh, refining around edges and following the third-rule at metal edges.
- Add a lumped or waveguide port with a Gaussian excitation covering the band.
- Add PML or absorbing boundaries and a near-field box for far-field transformation.
- Run, then post-process S-parameters, impedance, gain and patterns.[1]
What are its limits?
As an FDTD solver, it uses rectilinear (or cylindrical) grids, so curved and oblique features need fine meshing; high-Q structures need long run times; and it lacks the GUI-driven automation of commercial suites, although community GUIs and examples help.[1][2]
Frequently asked questions
Is openEMS suitable for professional work?
It is used in research and industry for many antenna problems, validated against measurement as any solver should be.
Which scripting languages does it support?
MATLAB/Octave and Python.
Can it compute radiation efficiency?
Yes, from accepted power and the far-field integration.
See also
References
Online sources accessed October 21, 2026; printed works cited by edition. See all sources.
- “openEMS: a free and open electromagnetic field solver using the EC-FDTD method”. openEMS project. accessed October 2026.
- “Computational Electrodynamics: The Finite-Difference Time-Domain Method, 3rd ed.”. A. Taflove and S. C. Hagness, Artech House. 2005.