EdgeFEM
- C++20
- Python
- Eigen
- Gmsh
- pybind11
Problem
Between quick analytical scripts and a five-figure commercial solver, there is not much for someone who wants to prototype RF and metasurface designs in code. Researchers either oversimplify or pay for a license they only partly use.
Approach
EdgeFEM is a finite-element electromagnetic solver written in C++20 with Python bindings. It uses Nédélec edge elements with PML and absorbing boundary conditions and handles dispersive materials, covering roughly 100 kHz to 110 GHz. It computes S-parameters and radiation patterns, and the C++ core keeps it fast while pybind11 makes it scriptable from Python.
Result
It fills the gap between a throwaway script and commercial software, and it is the solver the Agentic Phased Array Builder calls as a tool. The code, build, and examples are on GitHub.