tidy3d.EMESimulation.mode_simulations

tidy3d.EMESimulation.mode_simulations#

property EMESimulation.mode_simulations#

One ModeSimulation per EME cell, at full mode count.

Call .run_local() on each returned simulation and pass the results to propagate():

mode_data = [ms.run_local() for ms in sim.mode_simulations]
smatrix = sim.propagate(mode_data)

The returned tuple is in canonical EME cell order. Each simulation shares the parent geometry and grid specification, with the mode plane and mode spec set per cell. Modes are always solved at the full (untruncated) count; sweep-dependent truncation is applied at the S-matrix computation stage.

All simulations use direction="+" and colocate=False. Direction is irrelevant for EME (modes are bidirectional); colocation is handled internally by the overlap integrals.

Bent anisotropic media in bend_medium_frame="global" are not supported by the local path because subpixel averaging is applied before the bend rotation and does not yet handle fully anisotropic tensors. Use bend_medium_frame="co_rotating" or the remote backend path instead.

Return type:

tuple[ModeSimulation, …]