This page summarizes the public support scope for user-facing rfx workflows.
Status legend
| Status | Meaning |
|---|---|
| recommended default | best place to start for public examples and ordinary RF workflows |
| limited | usable only within the stated geometry, mesh, frequency, or calculator limits |
| outside documented scope | available code may exist, but public claims require a guide and support-matrix entry |
| unsupported | should fail clearly rather than degrade silently |
Recommended configuration
| Dimension | Recommended subset |
|---|---|
| grid / runner | uniform Cartesian Yee |
| precision | float32 default; float64 and mixed are uniform-single-device only, with the documented CPML residual-floor caveat for mixed |
| boundaries | PEC, CPML, and UPML within its documented limits |
| sources | point/current, lumped port, wire port, specialized microstrip-line port, rectangular waveguide port |
| observables | probes, flux, Harminv resonance, selected S-parameter workflows, documented far-field workflows |
| materials | isotropic linear, conductive, documented dispersive subsets, and patterned one-cell surface-impedance sheets only within their stated lane restrictions |
| workflows | cavity, waveguide, patch-style resonance, simple scattering, de-embedding, selected differentiable proxy objectives |
| non-uniform profiles | feature-specific limited or experimental scope; use the Non-Uniform Mesh guide for axis and calculator restrictions |
S-parameter APIs
| Primitive | Calculation API | Public status |
|---|---|---|
lumped/wire add_port(...) | run(compute_s_params=True) | documented calculator for the matching port family; use only within its stated validation limits |
lumped/wire add_port(...) | forward(port_s11_freqs=...) | differentiable S11 vectors on the uniform single-device configuration |
add_msl_port(...) | compute_msl_s_matrix() | specialized microstrip-line workflow; Laplace/quasi-TEM directions +x, -x, +y, and -y; eigenmode remains x-only and outside the public support envelope |
add_waveguide_port(...) | compute_waveguide_s_matrix() | rectangular waveguide workflow, limited. Differentiation through eps_override/sigma_override runs on normalize=False and normalize="flux" only; normalize=True is host-assembled and raises NotImplementedError for a traced override. Multimode (n_modes>1) is host-assembled and outside the differentiable chain. S is a modal voltage-wave ratio referenced to each port’s own discrete modal impedance, so it is a power-wave S only when all ports share one cross-section. Magnitude evidence for uniform single-mode guides is broader than phase, junction, and nonuniform evidence, Chain battery: chain-closed (v1.8) for uniform single-mode S on the normalize=False and normalize="flux" lanes. Contract criteria 1 and 3(a) are read under JAX_ENABLE_X64 on the flux lane, so a float32 gradient pipeline there is outside the declaration. Chain-closed is not supported — this row stays limited. The full row, including the battery verdict and the JAX_ENABLE_X64 dtype rule, is in docs/guides/support_matrix.md (Rectangular-waveguide S-matrix) and docs/guides/sparameter_support_matrix.md. |
add_coaxial_port(...) | compute_coaxial_line_reflection(...) | precision="float32"; nonperiodic 3D second-order uniform Yee grid; CPML on all six boundary faces with positive thickness on both z faces; cpml_axes="z"; exactly one face="top" coaxial port; see Sources and Ports for rejected registrations and accepted arguments |
| sources, TFSF, probes, flux monitors | not port calculators | field/flux/time observables |
Repository code outside the public support scope
Some repository code exists only for backward compatibility or internal testing. Treat it as supported public API only when a public guide documents the workflow and the support matrix lists it.
Studio, CLI, and MCP results
These tools record and reproduce local runs. A valid spec, completed run, passing replay, or comparison report does not validate electromagnetic accuracy. Apply the documented limits for the selected mesh, source, port, and observable, and perform the required convergence or reference comparison. Studio plots only the result types listed in Studio, CLI, and MCP Experiments; other artifacts may still be available through the CLI, API, MCP, or replay bundle. MCP operations that change data or start costly work require server-side approval.
Unsupported combinations
Unsupported means the run or the request must fail rather than return a number.
These four are named in the nonuniform-mesh classification table of
docs/guides/support_matrix.md:
| Combination | Required failure |
|---|---|
| Periodic/Floquet port + nonuniform mesh | “Preflight or the calculation must fail.” |
boundary="upml" + nonuniform mesh | “The run must fail. The non-uniform runner has no UPML implementation — its absorber dispatch keys on the CPML layer count and never reads the boundary type — so this combination was accepted and silently ran CPML while sim._boundary still reported upml (issue #680). Use boundary='cpml' on a graded mesh.” |
| Lumped-port S-parameters + nonuniform mesh | “The S-parameter request must fail.” |
| Coaxial port + nonuniform mesh | “The request must fail.” |
Calling a calculator with the wrong port family, or reading a field probe or flux monitor as an impedance-defined port, is unsupported for the same reason: neither has a port impedance or an S-matrix reference plane.
Practical rule
If a workflow is not in the recommended configuration or a stated limited configuration in these tables, the linked feature guide, or the support matrices, present it as outside the documented public support scope. A successful preflight or completed run does not expand that scope.
Artifact and report exports
Touchstone files, plots, HDF5 snapshots, CSV sweep tables, and JSON manifests preserve what a run produced, but they do not establish that the underlying calculation is supported or accurate. Public reports should include the port/source family, support status, command, git SHA, and pass/fail metric.
