top of page

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 is still able to keep up in terms of solver performance.

EMerge supports both parallel and single threaded sparse direct solvers on all operating systems. It also supports CuDSS through Cupy but the interface seems to be limited to 32-bit integers for sparse matrix storage which can be a limitation for very big simulations. It is more likely limited by the available VRAM.

Adaptive mesh refinement does experience significant slow over multiple iterations when compared to commercial solvers.

Supported Direct Solvers

 

Having sparse direct solvers available on all platforms is crucial! EMerge runs on all platforms and supports other solvers if the appropriate modules are installed.

For more information on installing other solvers, check the user manual.

Solver
Windows (10/11, x86)
MacOS (ARM)
Linux (x86)
MacOS (x86)
SuperLU (Scipy)
x
x
x
x
PARDISO
x
x
x
MUMPS
x
UMFPACK
x
x
x
x
CuDSS
x
x
Apple Accellerate
x
bottom of page