directional_coupler

photonforge.abstract.directional_coupler(*, coupling_ratio=0.5, propagation_length=0.0, cross_phase=-90.0, insertion_loss=0.0, isolation=0.0, reflection=0.0, n_eff=2.4, n_group=None, reference_frequency=C_0 / 1.55)[source]

Abstract directional coupler.

Based on photonforge.DirectionalCouplerModel. The transmission and cross-port amplitudes are derived from the coupling ratio and insertion loss:

\[ \begin{align}\begin{aligned}t &= a \sqrt{1 - \kappa}\\c &= a \sqrt{\kappa}\, e^{j\theta}\end{aligned}\end{align} \]

in which a = 10^(-IL/20) and IL is the insertion loss.

Parameters:
  • coupling_ratio (Annotated[float, maximum=1, minimum=0]) – Fraction of input power coupled to the cross port.

  • propagation_length (Annotated[float, minimum=0, units='μm']) – Extra physical length contributing to phase delay.

  • cross_phase (Annotated[float, units='°']) – Relative phase on the cross port.

  • insertion_loss (Annotated[float, minimum=0, units='dB']) – Total excess loss, including reflection and isolation contributions.

  • isolation (complex) – Complex leakage amplitude to the isolated port.

  • reflection (complex) – Complex reflection amplitude back into the input ports.

  • n_eff (complex) – Effective index used for phase accumulation.

  • n_group (float | None) – Group index. If None, the value of n_eff is used.

  • reference_frequency (Annotated[float, minimum=0, units='Hz']) – Reference frequency for dispersion.

Return type:

Component