Table of Contents

Probes (2D FDTD)

A probe records one field component at a fixed grid location. It observes the simulation without injecting a value, producing a time history instead of a full spatial image.

add_probe(i, j, component) returns an identifier used to retrieve the results:

const auto id = sim.add_probe(160, 128, fdtd::TMz::Component::Ez);
sim.run(400);
const auto values = sim.probe_data(id);
const auto times = sim.probe_times(id);

Probes must be registered before the first run. Their records continue across subsequent runs, allowing a simulation to advance in smaller pieces without losing the earlier measurements.

Electric and magnetic records have different timestamps. After the first step, an $E_z$ record corresponds to $\Delta t$, while an $H_x$ or $H_y$ record corresponds to $\Delta t/2$. probe_times() includes this offset from time stepping.

The driver records $E_z$ with --probe I,J and writes each trace to probe_<k>.csv. Probe traces are useful for measuring pulse arrival, checking reflected signals, or comparing backends without storing every grid sample at every step.