Benchmarks on real hardware.
One head-to-head test case: an 82.8M-cell FDTD mesh stepped 1,000,000 times. RayRF on GPU, RayRF on CPU, and openEMS all solve the same setup. Bars show FDTD cell updates per second. Longer is faster. Cell updates per second is the measured quantity; the wall-clock times are that rate carried out to 1,000,000 timesteps, not a run of that length.
Note, measured-vs-simulated S-parameter validation comparisons can be found on the Validation page.
Setup details
Both engines update the mesh at the same active cell count on a baseline patch antenna case. Note, typical FDTD runs use a dynamic end condition (energy ringdown), but for this benchmark we set a fixed runtime of 5,000 timesteps, measured the throughput, and extrapolated to 1,000,000 timesteps. Throughput does not change measurably for either engine beyond 1,000 timesteps, so extrapolation is accurate.
Hardware: AMD Ryzen 9 9950X with 64 GB DDR5 6000 RAM, XMP and PBO enabled. NVIDIA RTX 5090. Software: RayRF v1.1.14, openEMS 0.0.36. Test case: 5.8 GHz rectangular patch reference, 1,000,000 timesteps. Run 2026-07-28.
Built for PCB RF simulation.
Faster results at a fraction of the cost. Validated against real measurements.
* CST/HFSS not benchmarked as they do not permit public comparisons of their software by competitors.