Head to head, on real hardware.
One head-to-head test case, run on the same workstation: a 46.8M-cell FDTD mesh stepped 5,000 times. RayRF on GPU, RayRF on CPU, and openEMS all solve the identical setup. Bars show FDTD cell updates per second. Longer is faster.
Looking for measured-vs-simulated S-parameter comparisons? Those live on the Validation page.
Setup detail
The two engines build their meshes independently, so the active cell counts differ by 0.46% (212,321 cells) on the same geometry. openEMS actually has fewer cells than RayRF here, so if anything the comparison runs slightly against RayRF, which is updating more cells per timestep. Throughput is computed against each engine's own cell count, so the per-engine MCell/s numbers are directly comparable.
Hardware: AMD Ryzen 9 9950X, NVIDIA RTX 5070 Ti, 32 GB RAM, Windows 11 (CUDA driver from NVIDIA Studio 580.xx series). Software: RayRF v1.0.0, openEMS 0.0.36 (CPU SSE build). Test case: 5.8 GHz rectangular patch reference, 5x mesh scale, 5,000 timesteps. Run 2026-05-08.
Built for PCB RF simulation.
Faster results at a fraction of the cost. Validated against measurements, with a live editor.
* CST/HFSS not benchmarked as they do not permit public comparisons of their software. Ironic.
Stop waiting for your simulator.
Start designing at the speed of thought.
Windows and Linux. No card required.