Skip to content

Cross-Validation and Accuracy

rfx validation is easiest to read as a layered evidence story:

  1. Published benchmark scripts for the core RF cases
  2. Cross-solver checks against Meep and OpenEMS
  3. Workflow validation for advanced examples and GPU regression scripts

Use those layers in that order when making public claims: benchmark first, cross-solver second, workflow validation third.


These are the current public-facing numbers to quote first. Each row maps to a script under examples/40_accuracy_validation/.

StructureScriptReferenceError
Patch antenna resonanceexamples/40_accuracy_validation/01_patch_balanis.pyBalanis Ch. 141.97%
WR-90 TE10 cutoffexamples/40_accuracy_validation/02_waveguide_te10.pyAnalytical0.60%
Dielectric cavity TM110examples/40_accuracy_validation/03_cavity_tm110.pyAnalytical0.016%
Microstrip characteristic impedanceexamples/40_accuracy_validation/04_microstrip_z0.pyHammerstad-Jensen0.47%
Coupled-line filterexamples/40_accuracy_validation/05_coupled_filter.pyPozar Ch. 822.5% (closed-form limitation)
  • The cavity, waveguide, and microstrip numbers are the strongest numerical anchors.
  • The coupled-line filter discrepancy comes from the closed-form reference, so treat it as a limitation in the formula rather than evidence of solver instability.
  • Patch resonance is good public evidence, but feed and port calibration still deserve more context than a cavity-style benchmark.

2. Cross-solver checks against Meep and OpenEMS

Section titled “2. Cross-solver checks against Meep and OpenEMS”

The strongest independent checks live in the test suite:

  • tests/test_meep_crossval.py — PEC cavity TM110 vs analytical and Meep.
  • tests/test_meep_crossval_patch.py — dielectric-loaded cavity vs Meep.
  • tests/test_crossval_comprehensive.py — multi-case comparisons against Meep and OpenEMS.

Use these comparisons when you want to justify the solver core rather than a single RF design workflow.

Benchmark familyEvidenceWhat it proves
PEC cavity resonancetests/test_meep_crossval.py, tests/test_crossval_comprehensive.pyThe solver matches the analytical cavity resonance and stays tightly aligned with Meep.
Dielectric-loaded cavity resonancestests/test_meep_crossval_patch.py, tests/test_crossval_comprehensive.pyThe dielectric-loaded cases stay within the documented cross-solver tolerance.
WR-90 cutofftests/test_crossval_comprehensive.pyThe cutoff case is essentially exact at the documented resolution.
Lumped-port sanity checkstests/test_crossval_comprehensive.pyThe port model preserves the expected magnitude and phase behavior.

The public summary in README.md currently quotes 0.000–0.007% agreement on cavities and waveguides. Keep that number paired with the exact benchmark family it describes.


The advanced examples are useful, but they are not the same as the core benchmark set.

  • examples/50_advanced/ contains research-style workflows such as bandwidth optimization, inverse design, matching, coupling, lensing, and material characterization.
  • examples/50_advanced/gpu_validation/ contains regression checks for those workflows on accelerated runs.

Use these examples to show that an end-to-end workflow remains stable. Do not use them as the primary numerical anchor for solver accuracy.


Script / areaPurpose
examples/40_accuracy_validation/run_all.pyRuns the core published benchmark set
examples/50_advanced/gpu_validation/run_gpu_validation.pyRuns the advanced workflow regression checks
tests/test_crossval_comprehensive.pyCompact reference for the strongest cross-solver assertions
docs/public/guide/changelog.mdxPublic summary of current headline results

For the strongest public messaging, lead with the published benchmark table, then cite Meep/OpenEMS agreement as independent confirmation, and finally use the advanced examples as workflow evidence.