
Why Python?
Python may not be the fastest programming language, but that’s not a drawback here. The computationally intensive tasks required for FEM solvers are efficiently handled by powerful libraries like Numba, NumPy and SciPy. These optimized packages ensure high performance while allowing EMerge to leverage Python’s ease of use and flexibility.
​
Python’s simplicity and versatility make it a natural fit for ease of use and integration into the engineering design process. EMerge would definitely not be the first EM solver or even FEM solver for Python. However, the goal is to make it the easiest to use by far. This is done by:
Minimal Dependences
EMerge restricts itself to as few libraries as possible making installation virtually unbreakable with either pip or conda.
Simplified Scope
Most engineers will not use the vast majority of features modern commercial packages offer. EMerges core philosophy is to simplify implementation options which decreases the amount of configuration for the users and improves development speed and support.
Everything in one place
By coding as much as possible in Python, there is no need to interface with other software and languages. Start your simulation in Python and finish in it.
Maximum freedom
EMerge provides direct access to the assembled matrices and vectors, giving you full control over how many cores, processes, or even computers handle each task.

Advantages
-
Custom Optimization Without Extra Costs
Optimization toolboxes can also come at a premium with commercial solvers. With EMerge, this isn’t an issue. Since simulations are essentially a single function call, you can seamlessly integrate them into your favorite optimization algorithms—at no extra cost. -
Streamlined Pre- and Post-Processing
Say goodbye to cumbersome data exports. Many commercial solvers make you deal with clunky file formats and tedious data parsing. With EMerge, you have direct access to all the simulation data, making post-processing and visualization as intuitive as any other Python computation.

Get started in just 10 lines of code!
EMerge stands out as a FEM solver for electromagnetics, recognized for its user-friendly interface. Simple simulations be set up in just minutes, eliminating the need for extensive boilerplate code. With EMerge, a basic waveguide simulation can be executed in only 10 lines of code, where two lines are dedicated to imports and one is for plotting. This efficiency enhances the experience significantly.
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
-
Only first order Absorbing Boundary condition
-
No adaptive mesh refinement
-
Limited pool of geometries.
Many of these limitations will be addressed in upcoming versions.
