Software

Features
EMerge is designed to do simulation setup, CAD modelling, meshing, physics setup, solving and post-processing all within Python in a compact efficient human readable design.
What is currently implemented in the EMerge FEM RF solver.
GMSH & OpenCASCADE integration
EMerge uses GMSH for mesh generation, with the OpenCASCADE kernel handling CAD. This functionality is wrapped in EMerge’s own class system, making interaction and manipulation much simpler for the user.
Microwave / RF physics
EMerge uses the second-order edge element basis function implementation of the time-harmonic EM wave equation. It can handle both frequency-domain studies and eigenmode analysis.
Boundary Conditions
The boundary condition options in EMerge keep growing. Currently available are: PEC, PMC, Absorbing Boundary, Wave Port, Lumped Port, Periodic Boundaries, Surface Impedance and Floquet Port (without grading modes).
3D view and Post Processing
Solutions from frequency-domain sweeps return scalars like S-parameters and field data, which can be easily interpolated at arbitrary coordinates. Far-field computations are also supported, with or without symmetry planes.
For 3D visualization, EMerge uses PyVista. Its simplified interface makes it easy to add objects, port modes, fields, cut planes, and iso-surfaces to a 3D view.

Multi-core and multi-threaded computing out of the box!
EMerge is built on the linear algebra solvers in SciPy. For direct solvers it relies on SuperLU, UMFPACK, Intel’s PARDISO (x86 only), and NVIDIA’s cuDSS, while eigenmode solvers use ARPACK and LAPACK. For MacOS users with ARM architecture, we can offer guidance to install the MUMPS parallel solver which performs extremely well on apples ARM chips.
Frequency-domain sweeps can be easily distributed across multiple cores or processes.
Geometry
Box, Cylinder, Coax, Horn, Cone, Sphere, Half Sphere, Polygons, Extrusion, Revolution, Add, Subtract, Intersect, Embed, Stretch, Change coordinate system
Plus advanced features:
- PCB Layout/route tool
- PML Box + Layers
- Automated periodic cells
Boundary conditions
-
PEC
-
PMC
-
Absorbing Boundary (1st, 2nd order)
-
Port (wave, lumped, Floquet, rectangular waveguide, modal with eigenmode solver, user defined)
-
Periodic
-
Lumped Element
-
Surface Impedance/Material + Hammerstad-Jensen model
Others
-
Adaptive mesh refinement.
-
Optimization and parameter sweeps.
-
Detailed manual mesh refinement.
-
Frequency/Coordinate dependent material properties (full tensors)
-
Material library with 300+ materials*
-
S-parameter sweep**
-
Vector Fitting
-
Far-field 2D/3D with symmetry plane support
-
E and H field
-
Touchstone Export
* Material properties have pending verification on their accuracy.
** No port sweeps where any one port sweeps over two or more modes with dissimilar propagation constants, for example TE10 and TE20 etc.
Performance
Performance matters. While it’s difficult to compete with software that’s been refined for decades, EMerge still manages to carve out its niche.
EMerge is designed to be simple to install and use. Thanks to its lightweight design, small simulations run extremely fast on multi-threaded systems. And by leveraging powerful sparse solvers like PARDISO, UMFPACK, SuperLU, MUMPS, and cuDSS, performance limitations compared to commercial tools are minimal.
For problems under 1M DoF, EMerge performs on par with commercial software.
Adaptive mesh refinement does experience significant slow down versus manual mesh refinement.


