Auto mode and quality
Auto mode sizes an entire FDTD run from one quality value and the geometry: the mesh, the CFS-CPML absorber, the air margins, the ring-down criterion, and the output-capture bins. You set the frequency band and a quality level, and the deriver reads the stackup and the copper to produce every solver parameter with a traceable reason for each one.
Auto versus advanced
Auto mode derives dx, dy, dz, PML depth, per-face air margins, ring-down, and the convergence targets from a single quality slider plus the measured geometry, and never coarsens the mesh to make a run fit: if it will not fit, the run gate refuses it with a reason. Advanced mode sets the same parameters by hand. The mode toggle lives at the top of the Simulate tab.
Frequency band
The Frequency Range card takes the band two ways. Centre + BW enters a centre frequency and a full bandwidth, the default. F min / F max enters the two band edges directly. The button pair switches between them, and both write the same stored band, so a value typed one way updates the readout in the other.
The band is stored in Hz and shown in GHz, and the CLI flags take MHz, covered on FDTD tips. A non-positive or inverted band is refused downstream rather than repaired: auto derivation needs f_max > f_min > 0 and the run gate blocks a project without a valid band. f_max sets the mesh cell size (finer at higher frequency), and f_min feeds the pulse and the absorber sizing. The radiation-pattern and surface-current readouts report their frequency resolution as the band span divided by the number of capture points.
The quality slider
Quality is a continuous value from 0.0 to 3.0 with four named stops: Low, Medium, High, and Very High at 0, 1, 2, 3. The value interpolates between the stops, so 1.5 is halfway between Medium and High. One value drives every accuracy knob at once:
- Cells across the narrowest measured conductor width and gap on each in-plane axis, and cells per wavelength.
- Cells through the thinnest dielectric (the dz resolution).
- CFS-CPML absorber depth, floored at a per-axis cell count.
- The energy ring-down threshold that ends the run.
- The air-margin cell counts on every face.
- Radiation-pattern, surface-current, and field-FFT frequency-bin counts.
- The convergence-study thresholds and pass count.
Raising quality refines the mesh, deepens the absorber, tightens ring-down, and adds capture bins together. It never changes the physics setup in a way that depends on which outputs are enabled: toggling the radiation-pattern export does not move a resonance.
Per-axis derivation
Each in-plane axis is sized on its own measured copper. For an axis, the cell is the finest of: the guided wavelength at f_max over the cells-per-wavelength count (guided by the largest stackup permittivity, lambda / sqrt(eps_r)), the narrowest measured width on that axis over the width-cell count, the narrowest measured gap over the gap-cell count, and edge fringing from the thinnest dielectric height. A cross-axis feature guard then bounds an axis that carries no measured feature of its own by the finest cell any measured feature on the other axis demands, so a notch invisible to a scan along one axis still resolves. dz is the through-substrate rule: the thinnest dielectric over the dielectric-cell count, capped by the free-space cell. The estimate and derived panels expose which rule set each axis.
Minimum feature per axis
The Min feature X/Y/Z fields set a resolution floor per axis, each independent. On X and Y the value is both a floor and a measurement threshold: set it, and the mesh refines that axis to resolve it, while measured copper below the value does not drive the mesh and is reported as a warning naming the feature, its location, and the consequence. Left at 0, an in-plane axis takes no feature-size constraint: measured copper only warns, and the cell stays at the cells-per-wavelength and dielectric baseline. Z is a pure floor with no threshold behavior, and stackup layers are always resolved regardless. Below the fields, a Measured minimum line reports the narrowest measured feature per axis, and Use suggested copies the values in: X and Y from the measured copper, Z from the thinnest dielectric layer.
The derived-settings summary
The Derived Settings panel reports the full result: the per-axis base cell and what drove it, the resolved mesh dimensions with cell count and VRAM, the per-face air margins, the PML depth in cells, the ring-down threshold and runtime estimate, and the enabled outputs with their bin counts. A Constraint Traceability block lists one line per derived value naming the rule behind it, with the mesh-scale driver marked. When the probe measured a feature the mesh does not resolve, a Mesh Feature Findings block quotes it, and a Per-term Mesh Cost block reports the mesh each measured term would produce alone.
A footer under the panel reads the quality name, the total cells, the VRAM, and the runtime cost relative to a Low-quality run. The CLI mirrors it:
rayrf estimate --project patch.rfsim --quality mediumestimate derives the same mesh and prints the cell count, memory, boundary sizing, ring-down, runtime cost, the measured per-axis suggestion, and the same advisory warnings, without launching the solver. --quality accepts a name or a number in 0 to 3.
Convergence study
The Perform Convergence Study checkbox, which writes auto_convergence_enabled, runs the solver several times with an increasingly fine mesh until the tracked resonance dips stabilize, instead of a single pass. The frequency-shift and depth thresholds follow the quality level, and each pass refines the mesh by a fixed factor up to a pass cap. This costs several full runs. The threshold, refine-factor, and pass-cap fields are in the settings reference.