Results and Observables
Result is the object returned by Simulation.run().
Primary fields
Section titled “Primary fields”| Field | Meaning | Public use |
|---|---|---|
state | solver state / checkpoint payload | restart and debugging |
time_series | recorded probe values over time | ringdown, transient response, Harminv |
s_params | lumped/wire port S-matrix | matching, filters, de-embedding |
freqs | frequency axis for frequency-domain outputs | pair with S-parameter and DFT outputs |
ntff_data | near-to-far-field accumulation | radiation patterns where documented |
dft_planes | frequency-domain plane observables | slices and field maps |
flux_monitors | plane flux accumulations | transmission / reflection analysis |
waveguide_sparams | per-port waveguide diagnostics | waveguide workflows |
snapshots | saved field snapshots | visualization and post-processing |
grid | mesh metadata | reproducibility checks |
dt | timestep | time-axis conversion |
S-parameter result schemas
Section titled “S-parameter result schemas”| Calculator | Result object | Public status |
|---|---|---|
run(compute_s_params=True) with lumped/wire add_port(...) | Result.s_params, Result.freqs | recommended path for the matching port family |
forward(port_s11_freqs=...) with lumped/wire add_port(...) | ForwardResult.s_params, ForwardResult.freqs | differentiable S11 vectors, not a full multi-port matrix |
compute_msl_s_matrix(...) | MSLSMatrixResult | specialized microstrip-line workflow |
compute_waveguide_s_matrix(...) | WaveguideSMatrixResult | rectangular waveguide workflow |
run(...) with a single waveguide port | Result.waveguide_sparams[name] | diagnostic per-port output |
Sources, TFSF, probes, DFT planes, flux monitors, coaxial ports, and Floquet ports do not automatically imply a promoted high-level S-matrix workflow.
Observable builders that feed Result
Section titled “Observable builders that feed Result”| Builder | Result field | Typical use |
|---|---|---|
add_probe(...) / add_vector_probe(...) | time_series | transient response, ringdown, local field traces |
add_dft_plane_probe(...) | dft_planes | frequency-domain field slices |
add_flux_monitor(...) | flux_monitors | reflection / transmission bookkeeping |
add_ntff_box(...) | ntff_data, ntff_box | far-field accumulation |
Resonance extraction
Section titled “Resonance extraction”Result.find_resonances() runs Harminv-style mode extraction on a probe time series.
result = sim.run(n_steps=8000)modes = result.find_resonances(freq_range=(1.5e9, 3.5e9))Use this on a clean probe signal when you want a resonance estimate that is less dependent on port calibration than S-parameters.
Port-observable helpers
Section titled “Port-observable helpers”rfx.validation provides helper functions for checking S-matrix-like arrays for shape, finite values, frequency metadata, port names, and caller-selected passivity / reciprocity limits.
from rfx import validate_port_smatrix, assert_port_smatrix_valid
report = validate_port_smatrix(result, check_passivity=True, passivity_tol=0.02)print(report.summary())These helpers are useful for regression checks. They do not by themselves turn an experimental workflow into the recommended default lane.
Claims-bearing observables
Section titled “Claims-bearing observables”For public docs, describe observables in simple terms:
time_seriesand Harminv are the recommended resonance path.- lumped/wire, MSL, and waveguide S-parameter workflows each have their own calculator.
- NTFF/far-field outputs should be used where the relevant guide documents the workflow.
- Other fields are real and useful, but should be treated as analysis surfaces until their support status is explicit.