
Why Python?
Python may not be the fastest programming language, but that’s not really a drawback here. The heavy lifting needed for FEM solvers is handled by powerful libraries like Numba, NumPy, and SciPy. These optimized packages deliver high performance while still letting EMerge take advantage of Python’s ease of use and flexibility.
​
Python’s simplicity and versatility also make it a natural choice for integrating into the engineering design process. EMerge isn’t the first EM or FEM solver in Python, but the goal is to make it by far the easiest one to use. That’s achieved by:
Minimal Dependencies
EMerge keeps dependencies to a minimum, making installation almost foolproof with either pip or conda.
Simplified Scope
Most engineers don’t actually use the majority of features that modern commercial packages offer. EMerge’s core philosophy is to keep things simple. This means fewer options to wade through means less setup for users, faster development, and easier support.
Everything in one place
By writing as much as possible directly in Python, there’s no need to deal with other software or languages. You can start your simulation in Python and finish it there too.
Maximum freedom
EMerge gives you direct access to the assembled matrices and vectors, so you have full control over how many cores, processes, or even machines handle each task.
What can it do?
EMerge is a frequency-domain FEM solver for the time-harmonic Helmholtz equation. Like HFSS or COMSOL, it lets you run frequency sweeps and eigenmode studies to explore electromagnetic behavior in complex structures.
With EMerge you can simulate:
-
RF & Microwave devices – filters, waveguides, resonators, couplers, antennas
-
Photonic structures – integrated waveguides, cavities, photonic crystals
-
Resonances & modes – eigenmodes, cut-off frequencies
-
Scattering & S-parameters – reflection, transmission, insertion loss
​


Advantages
Custom Optimization Without Extra Costs
Commercial solvers often charge extra for optimization toolboxes. With EMerge, that’s not a problem. Since simulations are basically just a single function call, you can plug them straight into your favorite optimization algorithms with no added cost.
​
Streamlined Pre- and Post-Processing
No more painful data exports. Many commercial solvers force you to wrestle with clunky file formats and tedious parsing. With EMerge, you get direct access to all your simulation data, so post-processing and visualization feel as natural as any other Python workflow.

Get started in just 10 lines of code!
EMerge stands out as a FEM solver for electromagnetics and radio-frequency physics thanks to its user-friendly interface. Simple simulations can be set up in just minutes, without the burden of boilerplate code. A basic waveguide simulation, for instance, runs in only 10 lines of code, two for imports, one for plotting, and the rest for the actual setup.
Limitations
EMerge has the following limitations.
-
Ports support 1 mode only, no multi-mode sweeps
-
No iterative solvers for large problems
-
Only fundamental Floquet modes
-
No scattered field formulation
-
Limited pool of geometries.
Many of these limitations will be addressed in upcoming versions.
​
Adaptive mesh refinement will get a beta version released soon!



