Skip to content

flex_rf.tidy3d.MicrowaveTerminalSource

Type: class Base(s): AbstractModeSource

Injects current source to excite a specific terminal mode.

from tidy3d import GaussianPulse, AxisAlignedCurrentIntegralSpec, CustomImpedanceSpec
pulse = GaussianPulse(freq0=10e9, fwidth=1e9)
# Define impedance spec for terminal
current_spec = AxisAlignedCurrentIntegralSpec(
center=(0, 0, 0), size=(2, 1, 0), sign="+"
)
impedance_spec = CustomImpedanceSpec(current_spec=current_spec)
# Create terminal mode spec
terminal_spec = MicrowaveTerminalModeSpec(
num_modes=1,
impedance_specs={"port1": impedance_spec}
)
# Create terminal source
terminal_source = MicrowaveTerminalSource(
size=(10, 10, 0),
source_time=pulse,
mode_spec=terminal_spec,
terminal_label="port1",
direction='+'
)
size [TracedSize]

Size in x, y, and z directions.

source_time [SourceTimeType]

Specification of the source time-dependence.

direction [Direction]

Specifies propagation in the positive or negative direction of the injection axis.

name [str | None] = None

Optional name for the source.

center [TracedCoordinate] = (0.0, 0.0, 0.0)

Center of object in x, y, and z.

num_freqs [int] = 1

Number of points used to approximate the frequency dependence of the injected field. For ‘chebyshev’, a Chebyshev interpolation is used with ‘num_freqs’ terms (max 20). For ‘pole_residue’, the mode solver samples at ‘num_freqs’ uniform frequencies and fits ceil((num_freqs - 1) / 3) poles; higher values provide denser sampling and more poles for the fit (max 50).

broadband_method [Literal['chebyshev', 'pole_residue']] = 'chebyshev'

Method for representing the frequency dependence of the injected field. ‘chebyshev’ uses Chebyshev polynomial interpolation (default). ‘pole_residue’ uses a pole-residue (vector fitting) decomposition with auxiliary differential equation (ADE) time stepping. The pole-residue method can be more accurate for highly dispersive modes and uses fewer broadband terms than frequency samples.

use_colocated_integration [bool] = True

If True (default), source power normalization uses fields interpolated to grid cell boundaries (colocated). If False, uses fields at native Yee grid positions (non-colocated). Should match the use_colocated_integration setting on monitors for consistent power normalization. Experimental feature that can give improved accuracy by avoiding interpolation of fields to Yee cell positions for integration.

frame [PECFrame | None] = None

Add a thin frame around the source during the FDTD run to improve the injection quality. The frame is positioned along the primal grid lines so that it aligns with the boundaries of the mode solver used to obtain the source profile.

mode_spec [MicrowaveTerminalModeSpec] = ...

Specification for terminal modes with explicit impedance definitions. Defines how voltage, current, and impedance are computed for each terminal.

terminal_label [str] = ...

String identifier for the terminal to excite. Must match the label of a terminal (single-ended or differential pair).