tidy3d.EMESimulation.propagate

tidy3d.EMESimulation.propagate#

EMESimulation.propagate(mode_data)[source]#

Propagate modes through the device to compute the full S-matrix.

One-shot helper around compute_overlaps() and propagate_from_overlaps(). If you plan to run several sweeps against the same modal basis (e.g. coarse length scan, then zoom in), call compute_overlaps() once and propagate_from_overlaps() per sweep instead — overlaps are sweep-invariant under the supported sweep types, so propagate would redo that work each time.

Supports EMELengthSweep, EMEModeSweep, and EMEPeriodicitySweep. EMEFreqSweep is not supported; specify target frequencies in EMESimulation.freqs instead.

To override constraint, normalize, or sweep_spec, use sim.updated_copy(...) before calling.

Parameters:

mode_data (Sequence[ModeSimulationData | ModeSolverData]) – One mode result per EME cell, in cell order. Typically [ms.run_local() for ms in sim.mode_simulations].

Return type:

EMESMatrixDataset