Changelog
This page summarizes user-visible changes.
Current public status
Section titled “Current public status”The recommended starting point remains the uniform Cartesian Yee RF/FDTD lane. Non-default lanes such as non-uniform mesh are documented through their support and evidence envelopes, not presented as the default path.
Unreleased
Section titled “Unreleased”- Differentiable
forward(...)objectives are now safe to wrap in an outerjax.jit: bothjax.jit(loss)andjax.jit(jax.grad(loss))overforward(eps_override=...)are regression-locked against the eager path. This fixes a tracer crash in material assembly without changing eager results. optimize(...)gained default-off robustness knobs for difficult proxy losses:n_starts,best_iterate,step_clamp, andseed. The default single-start Adam path remains byte-identical.add_lumped_rlc(...)elements now participate in the differentiable uniformforward(...)lane. Useforward(rlc_values_override={...})when R/L/C values themselves are scalar design variables; this is still a lumped circuit element, not aZ0-referenced port.- Waveguide S-matrix extraction now emits a soft advisory for passive
normalize=Falseresults whose column power is above the documented single-run over-unity envelope but below the hard unreliability limit. The physics and hard pass/fail thresholds are unchanged. - RCS and inverse-design docs now pin recent footguns: RCS validation is monostatic-only unless additional evidence is supplied, and a finite-difference gradient check does not prove an empty observation window is physically meaningful.
- A standalone real multi-device witness (
scripts/diagnostics/distributed_witness/multigpu_witness.py) now compares single-device and sharded PEC/CPML/lumped-port runs on machines with two or more JAX devices; it is a distributed-runner identity check, not a new physics-validation envelope. - AD memory-planning docs now tag each artifact with an evidence class — static estimate, conservative budget-fit plan, or explainability breakdown — so a planning estimate is never read as a runtime profiler measurement, a peak-memory guarantee, or RF validation evidence. The compiled-executable check reports the JAX compiler’s memory estimate, not a runtime peak.
- Differentiable-design guidance was tightened: it separates JAX-traced objectives and finite-difference gradient checks from the final port/resonance/far-field physics validation.
- Non-uniform mesh guidance now frames graded-z meshes as a bounded workflow for thin layered structures, stating the unsupported combinations and the caller’s validation responsibilities up front.
v1.6.7 — July 2026
Section titled “v1.6.7 — July 2026”- Open-domain oblique RCS is available through
compute_rcs(theta_inc != 0)for its documented uniform-grid,ez-polarized Method-B TFSF envelope; unsupported combinations fail explicitly. - The opt-in plane-wave design lane adds complex-Bloch TFSF in
run(), uniformforward()support, differentiablemu_r_override, andcompute_rcs_jax. rfx.MeshShapeimports voxelized STL, OBJ, and PLY geometry; STEP support is available with thecadextra. Mesh import is not differentiable.rfx.interopcan emit a validated design document and a runnable openEMS script for representable simulations.run(until_decay=..., radiated_flux_box=...)can stop on radiated-energy flux, and MSL extraction now resolves automatic probe offsets against both documented clearances. Returned MSL S-matrices enforce passivity by default while retaining raw results inS_raw.
v1.6.6 — June 2026
Section titled “v1.6.6 — June 2026”- Maintenance-only release: a behavior-preserving rectangular-waveguide mode-solver refactor and shipped-documentation hygiene. There was no public API or user-visible behavior change.
v1.6.5 — June 2026
Section titled “v1.6.5 — June 2026”- Validation reporting is stricter: a promoted port-family result now requires magnitude evidence, a phase-consistency witness, an AD-vs-finite-difference check where gradients are part of the claim, and committed (reproducible) artifacts.
- Port-family support wording is clearer: users should match each source or port family to its documented calculator and evidence envelope instead of treating any S-parameter helper as universal.
compute_msl_s_matrixnow reports a positive characteristic impedance on both ports. This fixes reported metadata while leaving the S-parameter calculation invariant.- Non-uniform mesh accuracy coverage now includes an analytic gated cavity case whose resonance frequency depends on the graded axis.
- Public guides and support pages were tightened around maintained workflows, validation boundaries, and device-count-adaptive test behavior.
v1.6.4 — June 2026
Section titled “v1.6.4 — June 2026”- Rectangular waveguide-port evidence now covers WR-band empty-guide, PEC-short, and dielectric-slab cases with analytic and external-reference comparisons.
preflight()andpreflight_sparameters()now expose coded report objects for automation while preserving older list/string behavior.- Run/forward results, S-matrix calculators, sweeps, and optimizers now surface finite-data, passivity, setup, and NaN-gradient issues earlier.
compute_coaxial_line_reflection(...)is the current coaxial line-reflection path inside its documented transmission-line envelope.compute_waveguide_s_matrix(checkpoint_segments=...)adds segmented checkpointing for uniform waveguide AD-heavy runs.- Finite-size flux monitors are regression-locked against the matching full-plane integrand window; the old finite-size instability caveat is superseded.
- The directivity objective gained a log-ratio option for sign-correct gradients when design variables change total radiated power.
Documentation direction
Section titled “Documentation direction”- Current examples are routed through maintained paths:
validation/crossval/05_patch_antenna.py,validation/crossval/11_waveguide_port_wr90.py,examples/tutorials/nonuniform_patch_demo.py, andexamples/inverse_design/multilayer_ar_coating.py. - S-parameter documentation matches the calculator to the port family: lumped/wire, MSL, waveguide, or bounded coaxial line reflection.
v1.6 line
Section titled “v1.6 line”- Advanced the differentiable design loops and validation-boundary reporting.
- Added feature-boundary wording so repository code outside the documented support scope is not presented as the default public path.
- Improved port and observable APIs for RF workflows.
v1.5 line
Section titled “v1.5 line”- Expanded the public guide structure for examples, API surfaces, and validation/support boundaries.
- Added RF examples and clearer routing for patch, waveguide, and microstrip workflows.
Earlier releases
Section titled “Earlier releases”Earlier releases introduced the core JAX FDTD solver, material/geometry helpers, sources, probes, ports, far-field utilities, and inverse-design workflows. See the Git history and package releases for full implementation detail.