rfx is a 3-D finite-difference time-domain (FDTD) electromagnetic simulator built in JAX. These docs focus on maintained user workflows with explicit support boundaries.
Supported workflows
Start with the uniform Cartesian Yee FDTD solver. The table summarizes the documented workflows and their limits:
| Configuration | Documented use |
|---|---|
| Uniform Yee RF workflows | recommended default for tutorials, examples, probes, Harminv, selected S-parameter calculations, and far-field calculations |
| Rectangular waveguide S-matrices | validated within the documented rectangular-guide geometry, mesh, and frequency limits |
| Lumped, wire, and microstrip-line port workflows | available through their matching calculators; validation scope follows the support matrix |
| Coaxial line reflection | float32 precision, nonperiodic 3D second-order uniform Yee grid, CPML on all six boundary faces with positive thickness on both z faces, cpml_axes="z", and exactly one face="top" coaxial port; see Sources and Ports for the self-contained calculator limits |
| Differentiable design loops | use proxy objectives, gradient checks, and documented validation before treating a design result as evidence |
| Studio, CLI, and MCP experiments | versioned local CPU runs, append-only revisions, replay bundles, and server-approved MCP actions; see the guide for the current UI scope |
If a capability is not listed here or on the Support Boundaries page, treat it as outside the documented public support scope until that page lists it.
Why rfx
| Feature | Detail |
|---|---|
| GPU acceleration | JAX/JIT execution for large 3-D grids |
| Differentiable workflows | jax.grad through selected JAX-traced objectives; validate the final RF observable within its documented limits |
| RF workflow tools | materials, sources, probes, ports, S-parameter helpers, Harminv, far-field utilities |
| Recommended examples | the ordered tutorials under examples/tutorials/ (start at examples/README.md), plus the inverse-design examples |
| Documented limits | support follows the stated geometry, mesh, frequency, and calculator constraints, not every importable symbol |
Quick install
pip install rfx-fdtdGPU support depends on your JAX/CUDA environment:
pip install "jax[cuda12]" rfx-fdtdMinimal example
from rfx import Box, GaussianPulse, Simulation
sim = Simulation( freq_max=5e9, domain=(0.14, 0.06, 0.05), dx=2e-3, boundary="cpml", cpml_layers=8,)sim.add_material("slab", eps_r=2.2, sigma=0.01)sim.add(Box((0.07, 0.018, 0.018), (0.09, 0.042, 0.032)), material="slab")sim.add_source( (0.03, 0.03, 0.025), "ez", waveform=GaussianPulse(f0=3e9, bandwidth=0.8), amplitude_kind="current", # amperes; required from 1.9, the default from 2.0)sim.add_probe((0.11, 0.03, 0.025), "ez")
preflight = sim.preflight()print(preflight.format())preflight.raise_for_failure()
result = sim.run(n_steps=1200)print(result.time_series.shape)This records a dielectric pulse response without making a resonance or Q claim. Resolve any preflight warning introduced by model changes. Use the First Patch tutorial for a patch model that passes preflight and the checks required before reporting resonance or Q.
Documentation by topic
Getting Started
- Installation — Python/JAX install, GPU notes, dev setup
- Quick Start — first simulation with the current high-level API
- Your First Patch Antenna — build a model, run a short check, and learn what is required before reporting RF results
- Studio, CLI, and MCP Experiments — local UI, versioned CPU runs, replay, and MCP approvals
Modeling & Setup
- Simulation API —
Simulation,Result,auto_configure, ports, NTFF, and design helpers - Materials & Geometry — library materials, Debye/Lorentz, CSG shapes, PCB stackup
- Sources & Ports — point sources, lumped/wire ports, microstrip-line ports, waveguide ports, and coaxial-line reflection for exactly one
face="top"port within its stated limits - Probes & S-Parameters — DFT probes, S-matrix helpers, Harminv, de-embedding, exports
- Memory Reduction — reduce FDTD/AD memory while preserving validation boundaries
- ADI Solver (experimental) — unconditionally stable ADI-FDTD for stiff meshes, its timestep-vs-accuracy trade, and what is validated
- Waveguide Ports — rectangular waveguide modal workflows
Analysis & Validation
- Cross-Validation & Accuracy — which page carries which kind of validation evidence
- Benchmarks — quantitative benchmark summary
- Convergence Study — mesh refinement workflow
- Far-Field & RCS — NTFF radiation patterns and scattering workflows
- Visualization & Analysis — plotting, exports, post-processing
Design & Optimization
- Autodiff and Adjoint Background — Meep-informed gradient concepts for microwave engineers
- Inverse Design — autodiff-driven optimization with documented proxy objectives
- Gradient Behavior — where gradients are usually well behaved vs noisy
- Parametric Sweeps — sequential sweep and
jax.vmapdesign-space exploration - Patch Antenna Design — rectangular patch workflow
Secondary hubs
- Examples — recommended public runnable paths
- Validation — public support and validation overview
- Gallery — examples with their RF evidence and limits stated on each page
- API — curated public API contract
